Re: Spip4 et formulaires
Maïeul Rouquette <[email protected]> Fri, 14 May 2021 10:44:07 +0200
| Newsgroups | gmane.comp.web.spip.user |
|---|---|
| Message-ID | <[email protected]> |
Le 14.05.21 =E0 10:34, Jean-Christophe Villeneuve a =E9crit=A0:
> Oui, le principe parait simple mais ce sont les diff=E9rentes saisies =
> possibles qui m'int=E9ressent.
> Et l'exemple sur la page =
> https://contrib.spip.net/Formulaire-de-configuration-avec-le-plugin-Saisi=
es =
> est trop simpliste pour comprendre vraiment.
> =
> Imaginons que je veuille un formulaire avec juste 3 boutons radio
> =
> J'ai donc
> =
> * un formulaire plus g=E9n=E9ral qui appelle ce formulaire avec
> =
> =A0=A0=A0 <div class=3D"ajax">
> =A0=A0=A0 =A0=A0=A0 #FORMULAIRE_CONFIGURER_ESCAL_FAVICON
> =A0=A0=A0 </div>
> =
> * un fichier configurer_escal_favicon.html vide
> * un fichier configurer_escal_favicon.php avec
> =
> =
> =
> <?php
> if (!defined('_ECRIRE_INC_VERSION')) return;
> =
> function formulaires_configurer_escal_favicon_saisies_dist(){
> =A0=A0=A0 // $saisies est un tableau d=E9crivant les saisies =E0 affiche=
r dans le =
> formulaire de configuration
> =A0=A0=A0 $saisies =3D array(
> =A0=A0=A0 =A0=A0=A0 array(
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'saisie' =3D> 'radio',
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'options' =3D> array(
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'nom' =3D> 'Option1',
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'label' =3D> '<:escal:favicon_ch=
oix1:>'
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 )
> =A0=A0=A0 =A0=A0=A0 )
> =A0=A0=A0 =A0=A0=A0 array(
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'saisie' =3D> 'radio',
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'options' =3D> array(
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'nom' =3D> 'Option2',
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'label' =3D> '<:escal:favicon_ch=
oix2:>'
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 )
> =A0=A0=A0 =A0=A0=A0 )
> =A0=A0=A0 =A0=A0=A0 array(
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'saisie' =3D> 'radio',
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'options' =3D> array(
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'nom' =3D> 'Option3',
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 'label' =3D> '<:escal:favicon_ch=
oix3:>'
> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 )
> =A0=A0=A0 =A0=A0=A0 )
> =A0=A0=A0 );
> =A0=A0=A0 return $saisies;
> }
> =
> =
> Et ... rien ne s'affiche.
> Et ensuite comment s'enregistre le choix fait dans la base donn=E9es ?
> =
> JC
> =
> =
l=E0 tu a cr=E9=E9 3 saisies radio comprenant chacune 0 bouton radios, et n=
on =
pas 1 saisie radio comprenant 3 boutons (je sais pas si tu a deja =
manipul=E9 formidable ou l'interface graphique des champs extra, mais tu =
vois que quand tu veux ajouter des boutons radio tu choisi une seule =
fois "boutons radio", et ensuite tu pr=E9cise le contenu).
Ce qu'il te faut c'est une saisie radio avec le detail des choix dans data
quelque chose comme
array(
'saisie' =3D> 'radio',
'options' =3D> array(
'nom' =3D> 'favicon',
'data' =3D> array(
'Option1' =3D> '<:escal:favicon_choix1:>',
'Option1' =3D> '<:escal:favicon_choix2:>',
'Option3' =3D> '<:escal:favicon_choix3:>',
)
)
)
Ensuite une fois que la personne aura choisi le formulaire, la valeur =
choisie (donc soit Option1, soit Option2, soit Option3) sera disponible =
via #CONFIG{escal_favicon/favicon} (ou lire_config('escal_favicon/favicon').
La liste des saisies disponibles en standard avec les diff=E9rentes =
options se trouve ici https://contrib.spip.net/Reference-des-saisies
Par CONTRE, il ne faut pas faire un formulaire qui appelle un =
formulaire. Les formulaires imbriqu=E9s, c'est pas une bonne id=E9e.
- Soit tu fais une une page qui appelle plusieurs formulaires
- Soit, sans doute le plus simple, y compris pour l'user, tu fais un =
formulaire global avec toutes les options possible.