On décrit le formulaire permettant de saisir les arguments d’un modèle monmodele
à l’aide d’un fichier YAML à placer dans le répertoire modeles/
.
Dans les cas simples, ce fichier YAML aura le même nom que le modele HTML, mais ce ne sera pas nécessairement le cas puisque différentes configurations d’un même fichier HTML peuvent être décrites par différents fichiers YAML.
Ce fichier YAML a la syntaxe suivante :
nom: 'nom du formulaire'
icone_barre: 'nom d une icone 16x16 et le formulaire latérel'
parametres: un tableau de saisies
Parmi les paramètres, celui de nom modele est obligatoire et doit obligatoirement être renseigné (éventuellement sous forme d’un hidden).
icone_barre
va rechercher dans l’ordre :
- dans le dossier icones_barre
- dans le dossier images
du thème courant, en choisissant automatiquement la version svg si disponible
- dans le chemin.
Quatre noms de paramètres, id_modele, variante, classe et align, sont facultatifs et d’un usage spécifique. En effet, le formulaire produira le code suivant : <modeleid_modele|variante|classe|align|param1=valeur1|param2=valeur2>
.
Un exemple simple, pour l’insertion d’un formulaire formidable :
nom: '<:formidable:modele_nom_formulaire:>'
icone_barre: 'formulaire-24.png'
parametres:
-
saisie: 'hidden'
options:
nom: 'modele'
defaut: 'formulaire'
-
saisie: 'hidden'
options:
nom: 'variante'
defaut: 'formidable'
-
saisie: 'formulaire_formidable'
options:
nom: 'id'
label: '<:formidable:modele_label_formulaire_formidable:>'
cacher_option_intro: 'oui'
Valeur par défaut calculée dynamiquement
Pour chaque saisie, il est possible d’utiliser la syntaxe suivante : fonction:function_php_arbitraire
pour l’options defaut
.
Cela peut servir notamment pour utiliser une valeur de configuration :
saisie: 'input'
options:
nom: 'id'
label: 'monlabel'
defaut: 'fonction:lire_config("monplugin/maconfig")'
Ou bien de récuperer un l’identifiant de l’objet courant.
saisie: 'input'
options:
nom: 'id'
label: 'monlabel'
defaut: 'fonction:_request("id_xx")'
Personnaliser les traitements
Dans certains cas de modèles complexes (voir par exemple les modèles media), il peut être pertinent de personnaliser les traitements. Auquel cas, au début du fichier YAML de description du modèle, on précisera le nom d’une fonction à utiliser pour le traitement sous la forme traiter: 'ma_fonction'
.
Ensuite, on définira la fonction formulaires_ma_fonction_dist
dans le fichier PHP formulaires/ma_fonction.php
. Cette fonction prendra un unique argument $champs
contenant la liste des champs du modèle et renverra le code d’insertion du modèle. Voir les sources des modèles media pour un exemple.
Porte-plume
Le porte plume ne s’actualise pas rapidement. Si votre bouton n’apparait pas, pensez à vider le répertoire /local/
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |