Les paramètres communs

Une partie des réglages d'un bloc ne dépend pas de son type : le nom, l'affichage conditionnel, l'ancre, la répétition. Dans le schéma, ils viennent de fragments communs que chaque type de bloc inclut. Ils sont décrits une seule fois, ici, et les fiches d'objets ne listent que ce qui est propre à chaque bloc.

FragmentSection du panneauBlocs concernés
Identification blocNameParamètresLes 28 blocs
Affichage displayAffichage conditionnelLes 28 blocs
Ancre anchorAncreTous, sauf la zone de modèle
Répétition repeatParamètresAccordéon, Carrousel, Conteneur
Balise d'aide helperBalise d'aideBouton uniquement
Style cssOnglet StyleLes 28 blocs — voir Le style : cube CSS et Tailwind

Identification

Le nom du bloc est le seul réglage obligatoire. Contrairement aux autres, il n'est pas rangé dans properties mais dans un vrai champ de la table, blockName : c'est par lui que vous désignez le bloc depuis 4D et depuis le JavaScript, par exemple pour le recharger. Choisissez-le parlant et unique dans la page.

L'identifiant est émis tel quel comme attribut id de l'élément HTML. Il sert à viser le bloc depuis du CSS ou du JavaScript à vous.

ParamètreComment ça se règleÀ quoi ça sertParticularités
Nom du bloc
blockName
text (text)—obligatoire
Identifiant (id HTML)
id
text (text)—attribut HTML

Affichage

Six réglages décident si le bloc apparaît, et sous quelle forme. Ils répondent à des questions différentes, et on les confond souvent.

Le droit d'accès requis

Un bloc qui porte un droit d'accès requis n'est pas généré pour un visiteur qui ne possède pas ce droit, ou qui n'est pas connecté. Le droit est vérifié une seconde fois à la réception des données d'un formulaire : un champ protégé par un droit ne peut pas être enregistré par quelqu'un qui ne l'a pas, même s'il a fabriqué la requête lui-même.

L'affichage sous condition

L'affichage sous condition est une formule 4D, évaluée côté serveur au moment du rendu, avec tout le contexte de la page : l'entité courante, la session, les variables. Elle peut donc exprimer une vraie règle métier, et pas seulement comparer un champ. Si la formule provoque une erreur, une alerte l'indique et le bloc est traité comme si la condition était fausse.

Quand la condition est fausse, l'effet choisi s'applique :

  • Ne rien faire : le bloc s'affiche normalement ;
  • Désactiver : le bloc est rendu, ses champs et boutons sont grisés ;
  • Masquer le bloc : le bloc est rendu, puis caché. Son contenu est donc envoyé au navigateur ;
  • Non chargé : le bloc n'est pas généré du tout. Rien ne part vers le navigateur.

Masquer n'est pas protéger. Un bloc masqué est présent dans la page, simplement invisible. Pour tout ce qui ne doit pas atteindre un visiteur non autorisé, utilisez Non chargé ou un droit d'accès, jamais un masquage.

En mode édition, un bloc masqué ou non chargé reste visible, signalé par un badge : sinon, vous ne pourriez plus atteindre un bloc caché par sa propre règle.

Les champs à remplir

La liste des champs à remplir rend le bloc dépendant d'autres champs du formulaire, désignés par leur nom et séparés par |. Tant que l'un d'eux est vide, l'effet s'applique : les champs et boutons du bloc sont désactivés, ou le bloc est masqué. La vérification a lieu dans le navigateur, chaque fois qu'un champ change de valeur : pour une saisie, au moment où l'on quitte le champ. Malgré son nom technique linked, ce n'est pas une relation entre tables.

Basé sur la sélection de la listbox

Ce réglage figure dans le panneau, mais aucun code du composant ne le lit dans cette version : il n'a pas d'effet.

ParamètreComment ça se règleÀ quoi ça sertParticularités
Liste des champs à remplir
linked
textarea (text)—attribut HTML
Effet
effect
checkbox (enum)—défaut : none, none, disabled, hidden
Droit d'accès requis
userRightNeeded
select (text)—contrôle de sécurité
Basé sur la sélection de la listbox
isBasedOnListboxSelection
toggle (boolean)—défaut : non
affichage sous condition
conditionalDisplay
text (text)—accepte du 4D
Effet si non rempli
effectForConditionalDisplay
checkbox (enum)Ce qui arrive au bloc quand la condition est fausse : grisé, retiré de l'affichage, ou pas généré du tout. En mode dev le bloc reste visible, signalé par un badge.défaut : none, none, disabled, hidden, notLoaded

Ancre

Une ancre donne au bloc un point d'arrivée dans la page. Elle est émise comme identifiant HTML, ce qui permet d'y conduire par un lien #ancre. Elle accepte une expression 4D.

Les ancres servent surtout au menu d'ancres : un bloc Menu réglé pour cela liste les blocs ancrés de la page. Les ancres de premier niveau y apparaissent triées par leur ordre ; une ancre qui déclare une ancre parente se range sous elle. Les deux réglages n'apparaissent qu'une fois l'ancre saisie.

ParamètreComment ça se règleÀ quoi ça sertParticularités
Ancre
data-anchor
text (text)—accepte du 4D, attribut HTML
Ancre parente
data-anchorParent
select (text)—attribut HTML
Ordre de l'ancre
anchorOrder
number (integer)—

Répétition

La répétition rend le bloc une fois par élément d'une collection : c'est le « pour chaque » de la page. Elle se pose sur le bloc qui doit se répéter, en pratique un conteneur, et ses enfants suivent.

  • La fonction de répétition est une expression 4D qui renvoie une collection ou une sélection d'entités. Des parenthèses vides () y reçoivent la valeur du contexte courant.
  • Le nom de clé de répétition est le nom de la variable qui reçoit l'élément courant à chaque tour. Sans nom, c'est vv_RepeatData.
  • L'id d'itération est une expression 4D qui donne à chaque tour un identifiant propre. Sur une sélection d'entités, la clé primaire joue déjà ce rôle. Sur une simple collection, sans id d'itération, le numéro du tour sert de clé : pensez-y dès que les blocs répétés contiennent des champs à enregistrer.
  • Répéter en dev : en mode édition, seule la première itération est rendue par défaut, pour garder la page légère. Cochez-le pour voir toutes les itérations.

Le nom technique de ce dernier réglage, vb_noRepeatInDev, dit le contraire de ce qu'il fait : coché, la répétition est rendue en mode édition. Fiez-vous au libellé du panneau.

Répéter un bloc répète aussi ses identifiants HTML. Si vous écrivez du JavaScript dans un bloc répété, ne visez pas un élément par un identifiant nu : le clic agirait toujours sur la première itération.

ParamètreComment ça se règleÀ quoi ça sertParticularités
Répéter
vb_Repeat
toggle (boolean)—défaut : non
Fonction de répétition
vt_RepeatFunctionToExecute
text (text)—accepte du 4D
Nom de clé de répétition
vt_RepeatKeyname
text (text)—
Id d'itération
vt_RepeatIdIteration
text (text)—accepte du 4D
Répéter en dev
vb_noRepeatInDev
toggle (boolean)—défaut : non

Balise d'aide

Propre au bouton : un texte d'introduction guidée (traduisible) et le numéro de son étape. Ils alimentent la visite guidée de la page (bibliothèque intro.js), qui démarre au clic sur un lien dont l'adresse contient help.

ParamètreComment ça se règleÀ quoi ça sertParticularités
Introduction guidée
vt_Intro
text (text)—traduisible
Étape d'introduction
vl_IntroStep
number (integer)—

Le style

Les 28 blocs incluent aussi le style. Les cibles (les parties du bloc que l'on peut styler) sont propres à chaque type et figurent sur chaque fiche. Le fonctionnement, lui, est commun : il est décrit dans Le style : cube CSS et Tailwind.

Les tableaux de cette page sont produits automatiquement depuis le schéma du bloc. Si la page et le panneau divergent, c'est le schéma qui fait foi.