Carnet Wiki

Insérer Modèles Carnet de développement

SPIP-Contrib :: Carnet Wiki :: Recherche :

Insérer Modèles Carnet de développement

On décrit les formulaires à l’aide d’un fichier .yaml à placer dans le répertoire modeles/ avec la syntaxe suivante :

nom: 'nom du formulaire'
logo: 'chemin relatif d une icône'
icone_barre: 'nom d une icone 16x16 pour le porte-plume et présente dans le répertoire icones_barre'
parametres: un tableau de saisies

Le paramètre modele est obligatoire et doit obligatoirement être renseigné (éventuellement sous forme d’un hidden).

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 :

  1. nom: '<:formidable:modele_nom_formulaire:>'
  2. logo: 'images/formulaire-24.png'
  3. icone_barre: 'formulaire.png'
  4. parametres:
  5. -
  6. saisie: 'hidden'
  7. options:
  8. nom: 'modele'
  9. defaut: 'formulaire'
  10. -
  11. saisie: 'hidden'
  12. options:
  13. nom: 'variante'
  14. defaut: 'formidable'
  15. -
  16. saisie: 'formulaire_formidable'
  17. options:
  18. nom: 'id'
  19. label: '<:formidable:modele_label_formulaire_formidable:>'
  20. cacher_option_intro: 'oui'

Télécharger

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 modèles media pour un exemple.

À faire

Porte-plume

Le porte plume ne s’actualise pas rapidement. Si votre bouton n’apparait pas, pensez à vider le répertoire /local/