[(#REM) Un modèle pour générer une FAQ ou un lexique à partir d'un fichier CSV. Ce modèle necessite les itérateurs (en plugin pour SPIP 2, inclus dans SPIP 3) Le modèle s'utilise de la façon suivante: où: - "XX" est l'id de la FAQ - "url" est l'URL du fichier CSV (TODO: permettre d'utiliser directement des id_document) - "lexique" existe alors un sommaire de type A|B|E|X|Z est généré et des titres sont placés entre les définitions à chaque changement de lettre - "niveau" si ce n'est pas spécifié les intertitres sont de niveau 3 (comme ceux de SPIP), sinon, ils prennent la valeur niveau. - "ex" désigne le nom de la colonne des exemples utilisés. si ex=truc la colonne utilisée sera ex_truc Le fichier CSV doit être construit de la manière suivante (ordre des colonnes indifférent): |{{ dt }}|{{ dd }}|{{ lettre }}|{{ ancre }}|{{ ex_* }}| | un mot | une déf | U | | SPIP est un joli mot | | autre mot | autre déf | A | ancre alternative | | où: - les colonnes dd et dt sont indispensables (si pas de dt: pas de définition du tout) - lettre est facultatif, mais necessaire si on veut un sommaire - ancre est facultatif, mais utile si on veut avoir des ancres bien précises pour certains mots. Sinon les ancres sont générées automagiquement: le dt est repris avec les espaces transformés en "_". ex.: un Mot -> un_Mot - ex_* est facultative. Il peut y en avir plusieurs ex_cas1, ex_cas2, etc. Elle contient des exemples qui ne s'affichent que si le paramètre ex est rempli par la valeur correspondante Le plugin commence par une boucle étrange dont le seul but est de vérifier la présence des itérateurs (cette astuce ne fonctione que s'il y a au moins un admin !) ]#SET{alea, #EVAL{rand()}} #SET{test,truc} [(#PLUGIN{Iterateurs}|oui) [(#SET{test,0minirezo})] ] 0}{si #ENV{lexique}|oui}>[ (#VALEUR{lettre}|trim|unique{lettre_pagin_#GET{alea}}|utf_8_to_unicode) | ] [(#ENV{lexique}|non)
] 0}> [ [(#ENV{lexique}|oui) [[(#COMPTEUR_BOUCLE|>{1}|oui)
] (#VALEUR{lettre}|trim|unique{lettre_faq_#GET{alea}}|utf_8_to_unicode)
] ]
(#VALEUR{dt}|trim|utf_8_to_unicode)
[(#VALEUR{dd}|trim|utf_8_to_unicode|propre)] [
(#VALEUR{[ex_(#ENV{ex})]}|trim|utf_8_to_unicode|propre)
]
]
#FILTRE{trim}