[SPIP Zone] Retour sur saisies

Dans la documentation du plugin en ligne : http://www.spip-contrib.net/Saisies il est indiqué que la description d'une saisie sous forme d'un tableau PHP est un tableau avec deux entrées 'type' et 'options'.

Ca ne marche pas avec la balise #GENERER_SAISIES. En regardant le code de inclure/generer_saisies.html, il apparait que le tableau PHP l'entrée 'type' doit en réalité s'appeler 'saisie'. Et là, la balise fonctionne.

Il faudrait peut-être mettre à jour la doc ?

Cordialement

joseph

Le 03/04/2010 18:43, Joseph a écrit :

Dans la documentation du plugin en ligne :
Saisies - SPIP-Contrib il est indiqué que la description
d'une saisie sous forme d'un tableau PHP est un tableau avec deux
entrées 'type' et 'options'.

Ca ne marche pas avec la balise #GENERER_SAISIES. En regardant le code
de inclure/generer_saisies.html, il apparait que le tableau PHP l'entrée
'type' doit en réalité s'appeler 'saisie'. Et là, la balise fonctionne.

Il faudrait peut-être mettre à jour la doc ?

Cordialement

joseph

La doc comporte les points suivants :
- La balise #GENERER_SAISIES a comme argument un tableau de toutes LES saisies
- Chaque saisie est un tableau (avec type et options, donc)
- *Chaque ligne* du tableau est une saisie
- Il y a un exemple complet montrant bien un tableau de *plusieurs* saisies où chaque ligne est elle-même un autre tableau

array(
   // une saisie
   array(
     'type' => 'input',
     'options' => array(...)
   ),
   // une autre saisie
   array(
     'type' => 'radios',
     'options' => array(...)
   )
)

Si ce n'est pas clair, c'est ça qu'il faudrait reformuler.

--
RastaPopoulos

Le 03/04/2010 18:01, RastaPopoulos a écrit :

- Il y a un exemple complet montrant bien un tableau de *plusieurs*
saisies où chaque ligne est elle-même un autre tableau

array(
// une saisie
array(
'type' => 'input',
'options' => array(...)
),
// une autre saisie
array(
'type' => 'radios',
'options' => array(...)
)

Si ce n'est pas clair, c'est ça qu'il faudrait reformuler.

J'ai fait un essai d'appel de la balise #GENERER_SAISIES avec un tableau de ce type (dernière version svn de saisies) et la balise n'a rien produit.

Si je lui passe le tableau suivant (type remplacé par saisie) :

array(
   // une saisie
   array(
     'saisie' => 'input',
     'options' => array(...)
   ),
   // une autre saisie
   array(
     'saisie' => 'radios',
     'options' => array(...)
   )
)

La balise génère bien l'ensemble des saisies.
Si je regarde le contenu du fichier inclure/generer_saisies.html je vois :

<BOUCLE_contenu(POUR){tableau #ENV{saisies}}>
[(#VAL{saisie}|array_key_exists{#VALEUR}|oui)
[(#VALEUR|saisies_generer_html{#ENV**|unserialize})]
]
</BOUCLE_contenu>

Autrement dit, il vérifie la présence d'une clé saisie et non d'une clé type.

Cordialement

Joseph

Je vais me cacher.

(Corrigé.)

--
RastaPopoulos

Le 03/04/2010 20:12, RastaPopoulos a écrit :

Je vais me cacher.

(Corrigé.)

Merci. je viens d'ajouter au noiZetier la possibilité de décrire une noisette en YAML, les paramètres étant alors décrit sous la forme d'un tableau de saisies. Je dois dire que l'usage de YAML conjointement avec saisies est bluffant.

Joseph

Le 06/04/2010 14:25, Joseph a écrit :

Je dois dire que l'usage de YAML conjointement avec
saisies est bluffant.

Héhé.

Oui, on peut désormais très très rapidement décrire des options, même avec des saisies complexes, pas juste des input text.

Et y compris en décrivant les vérification à faire, si tu utilises le plugin Vérifier. Ce n'est pas encore documenté mais il y a une fonction de l'API : saisies_verifier($le_tableau) et hop ça vérifie tout en une fois.

--
RastaPopoulos

Le 06/04/2010 14:39, RastaPopoulos a écrit :

Le 06/04/2010 14:25, Joseph a écrit :

Je dois dire que l'usage de YAML conjointement avec
saisies est bluffant.

Héhé.

Oui, on peut désormais très très rapidement décrire des options, même
avec des saisies complexes, pas juste des input text.

Et y compris en décrivant les vérification à faire, si tu utilises le
plugin Vérifier. Ce n'est pas encore documenté mais il y a une fonction
de l'API : saisies_verifier($le_tableau) et hop ça vérifie tout en une
fois.

Cela suppose t il, pour disposer de $le_tableau, de constituer le formulaire
à partir d’un tableau PHP ?
(et alors ce n’est pas utilisable pour un formulaire déclaré en HTML
par une succession de saisies)

JLuc

Le 06/04/2010 21:29, JLuc a écrit :

Cela suppose t il, pour disposer de $le_tableau, de constituer le
formulaire
à partir d’un tableau PHP ?
(et alors ce n’est pas utilisable pour un formulaire déclaré en HTML
par une succession de saisies)

Ben oui.

--
RastaPopoulos

Le 06/04/2010 12:39, RastaPopoulos a écrit :

Oui, on peut désormais très très rapidement décrire des options, même
avec des saisies complexes, pas juste des input text.

Et y compris en décrivant les vérification à faire, si tu utilises le
plugin Vérifier. Ce n'est pas encore documenté mais il y a une fonction
de l'API : saisies_verifier($le_tableau) et hop ça vérifie tout en une
fois.

Y a-t-il une norme pour décrire les vérifications à faire dans le tableau des saisies ?

Cordialement

Joseph

Le 07/04/2010 13:12, Joseph a écrit :

Y a-t-il une norme pour décrire les vérifications à faire dans le
tableau des saisies ?

Oui bien sûr, ça doit être documenté en même temps que l'API évidemment.

Tu peux en voir un exemple dans les descriptions de Saisies, par exemple les options "size", "rows", etc doivent être des entiers.

Ça donne (pour une seule saisie)
-
   saisie: 'input'
   options:
     les: options
   verifier:
     type: 'entier'
     options:
       min: 0
       max: 100

--
RastaPopoulos

Le 07/04/2010 13:12, Joseph a écrit :

l'API : saisies_verifier($le_tableau) et hop ça vérifie tout en une
fois.
Y a-t-il une norme pour décrire les vérifications à faire dans le
tableau des saisies ?

De l'examen du code, il me semble qu'il faut déclarer les saisies
avec leur vérification comme ça par exemple :

$saisie_age = array(
    'saisie' => 'input',
    'options' => array(
      'nom' => 'age',
  'label' => 'Votre age',
  'size' => 2,
         'verifier' =>
    array (type, entier, options => array (max=>7, min=>7)));

et $le_tableau rassemble toutes les saisies :
$le_tableau = array ($saisie_age, ...)
comme indiqué dans Saisies - SPIP-Contrib

J'ai commencé une page de notes sur les saisies
(et de préparation d'une future éventuelle nouvelle page de doc)
et t'invite (et tout le monde) à la trouver et compléter
au fur et à mesure des découvertes :
http://www.spip-contrib.net/Doc-Saisies-complementaire

JLuc

Le 07/04/2010 14:07, JLuc a écrit :

Le 07/04/2010 13:12, Joseph a écrit :

l'API : saisies_verifier($le_tableau) et hop ça vérifie tout en une
fois.
Y a-t-il une norme pour décrire les vérifications à faire dans le
tableau des saisies ?

De l'examen du code, il me semble qu'il faut déclarer les saisies
avec leur vérification comme ça par exemple :

$saisie_age = array(
'saisie' => 'input',
'options' => array(
'nom' => 'age',
'label' => 'Votre age',
'size' => 2,
'verifier' =>
array (type, entier, options => array (max=>7, min=>7)));

D'aprés le mail de Rastapopoulos, c'est plutôt

$saisie_age = array(
    'saisie' => 'input',
    'options' => array(
        'nom' => 'age',
        'label' => 'Votre age',
        'size' => 2)
    'verifier' =>
        array (type, entier, options => array (max=>7, min=>7));

et $le_tableau rassemble toutes les saisies :
$le_tableau = array ($saisie_age, ...)
comme indiqué dans Saisies - SPIP-Contrib

J'ai commencé une page de notes sur les saisies
(et de préparation d'une future éventuelle nouvelle page de doc)
et t'invite (et tout le monde) à la trouver et compléter
au fur et à mesure des découvertes :
Saisies : Doc complémentaire

JLuc

Le 07/04/2010 12:04, RastaPopoulos a écrit :

Ça donne (pour une seule saisie)
-
saisie: 'input'
options:
les: options
verifier:
type: 'entier'
options:
min: 0
max: 100

Génial, je vais voir si je peux intégrer ça dans le noiZetier (ce soir ou demain si j'ai le temps).

Cordialement

joseph