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.