Bonjour tout le monde !
J’ai un squelette atelier.html qui appelle un formulaire formidable comme ceci :
#SET{idform, #ENV{form}}
[...]
<BOUCLE_formulaire(FORMULAIRES){id_formulaire=#GET{idform}}>
<h2>#TITRE</h2>
#FORMULAIRE_FORMIDABLE{#GET{idform}}
</BOUCLE_formulaire>
<div class="info">
<p>L'identifiant du formulaire n'est pas valide ou l'atelier est plein.</p>
<p>Pour plus d'informations, contactez moi.</p>
</div>
<//B_formulaire>
Aucun problème si j’appelle le squelette de cette manière https://site.fr/spip.php?page=atelier&form=5
Par contre si je l’appelle comme ceci https://site.fr/spip.php?page=atelier&form=identifiant_du_formulaire
Le formulaire ne s’affiche pas et j’ai le texte de non-exécution de la boucle qui s’affiche.
Je suppose que c’est évidement la ligne <BOUCLE_formulaire(FORMULAIRES){id_formulaire=#GET{idform}}> qui pose problème.
En gardant la même structure je pourrais convertir l’identifiant textuel du formulaire dans son numéro pour avoir des URL explicites ?
pour retrouver l’identifiant numerique d’un formulaire a partir de son identifiant textuel, utiliser le filtre formidable_id_formulaire, qu’il faut charger en ajoutant un include_spip('formulaires/formidable'); dans un fichier _fonctions.php
Remarque : si tu passes un argument qui a le bon nom (id_formulaire et identifiant) à l’inclusion, il n’est pas nécessaire de passer par l’étape #SET puis #GET (cette étape n’est pas nécessaire) et tu peux écrire directement
<BOUCLE_formulaire(FORMULAIRES){id_formulaire}>
ou
<BOUCLE_formulaire(FORMULAIRES){identifiant}>
Et si VRAIMENT (mais il se pourrait bien que ce soit une faute de conception dans ce cas…) tu dois parfois passer des id_ numériques et parfois des identifiants textuels, alors arrange toi pour les passer à l’inclusion avec le bon nom, et la boucle suivante devrait alors fonctionner :