Infos

Fil RSSYannick Pavard

Archives

Gestion des conditionnelles dans un flexform, c’est possible !

Posté par Yannick Pavard le 3 janvier 2008

C’est en installant l’extension “mm_forum” dernièrement, que je suis resté stupéfait devant une petite fonctionnalité offerte par les flexform de TYPO3. Je veux parler ici du fichier flexform_ds.xml (ou flexform_pi1.xml) que l’on retrouve dans les extensions TYPO3 (d’ailleurs ce qui suit s’applique aussi à la configuration de votre TCA)

Ce fichier XML contient toutes les informations qui permettent à un plugin de vous afficher tous les champs de configuration. Ainsi quand on installe le plugin “tt_news” ou “mm_forum” sur une page, on a plusieurs paramètres à sélectionner et des champs à remplir.

Je vous mets ici un aperçu du plugin de forum “mm_forum” comme exemple :

Comme vous pouvez le voir sur cette capture d’écran, le plugin offre la possibilité de choisir le type d’affichage souhaité (Liste des dernières interventions, liste des intervenants, etc ..)

Ensuite, quand vous avez sélectionné une de ces options, il faut penser à sauvegarder l’enregistrement en tant que tel. À ce moment-la (cela dépend de votre choix), vous allez avoir de nouvelles options qui vont s’offrir à vous (prenez Liste des intervenants par exemple). Vous obtiendrez juste en dessous, la liste des champs que vous voulez afficher dans la liste des intervenants.

Personnellement, c’est bien la première fois, que je vois une configuration comme celle-ci, j’ai donc décidé de chercher dans le fichier flexform_ds_pi1.xml de l’extension) et j’ai découvert deux choses intéressantes

Condition sur l’affichage d’un champ

Lorsque chaque champ est déclaré dans le fichier XML, on retrouve à la fin, une ligne qui permet de gérer une condition sur l’affichage ou non du champ, que voici :

<displayCond>FIELD:code:=:USERLIST</displayCond>

Cette ligne, décide ou non de l’affichage du champ en fonction du code sélectionné dans le menu déroulant (voir capture ci-dessus). Ainsi, chaque champ va s’afficher ou rester caché en fonction du choix de l’administrateur, cela permet de ne pas tout afficher en premier, mais cela ne s’effectue que si l’on pense à sauvegarder l’enregistrement après chaque choix ;-(

Ajouter une description à un onglet

Enfin deuxième chose d’intéressant que j’ai trouvé, c’est la possibilité d’ajouter une description en dessous de chaque onglet en ajoutant cette ligne :

<sheetDescription>LLL:EXT:mm_forum/locallang.xml:flex.general.desc</sheetDescription>

Enfin voilà, c’est vrai que ces explications peuvent paraitre un peu confuses, mais elles s’adressent avant tout aux développeurs d’extensions. D’ailleurs, je vous invite à lire cette page sur le wiki de TYPO3 pour en savoir davantage sur les flexform :

wiki.typo3.org/index.php/Extension_Development,_using_Flexforms

Partagez ce billet avec :
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Technorati
  • Wikio FR
  • YahooMyWeb

Catégorie(s) : CMS/SGC

Tag(s) : , , ,

Pas de commentaire

Pas encore de commentaire.

Laisser un commentaire

Flux RSS des commentaires de cet article. TrackBack URI