[SPIP Zone] Normalisation d'un saisie

Hello

La verification/normalisation d'une saisie a été initiée par Marcimat http://zone.spip.org/trac/spip-zone/changeset/57473

Mais comment la mettre en oeuvre au niveau des plugins utilisateurs, Saisies, Noizetier... Est-ce qu'il faut simplement modifier leur fonctions de verification, comme dans champs_extras ? Si oui, du coup faut rajouter un necessite de verifier avec la bonne version ?

--
Yffic Cloarec
Le Fourneau, Centre national des arts de la rue [en Bretagne]
http://www.lefourneau.com / http://www.cliclarue.info

En fait ce que je ne cerne pas bien c'est que, si on modifie la fonction saisies_verifier (Connexion · GitLab) pour rajouter la normalisation, ca va planter pour ceux qui "updatent" Saisies sans "updater" Verifier, donc ca va raler...
Et est-ce une rupture de compat (comment changer le numero de version) ?

function saisies_verifier($formulaire, $saisies_masquees_nulles=true){
...
         // On continue seulement si ya pas d'erreur d'obligation et qu'il y a une demande de verif
         if (!$erreurs[$champ] and is_array($verifier) and $verif_fonction){
             $normaliser = null;
             // Si le champ n'est pas valide par rapport au test demandé, on ajoute l'erreur
             if ($erreur_eventuelle = $verif_fonction($valeur, $verifier['type'], $verifier['options'], $normaliser)) {
                 $erreurs[$champ] = $erreur_eventuelle;
             } elseif (!is_null($normaliser)) {
                 set_request($champ, $normaliser);
             }
         }
     }
     return $erreurs;
}

Le 03/04/2012 10:08, RastaPopoulos a écrit :

Le 03/04/2012 09:49, Yffic a écrit :

Mais comment la mettre en oeuvre au niveau des plugins utilisateurs,
Saisies, Noizetier... Est-ce qu'il faut simplement modifier leur
fonctions de verification, comme dans champs_extras ? Si oui, du coup
faut rajouter un necessite de verifier avec la bonne version ?

On peut utiliser Saisies *sans* Vérifier, tant qu'on ne déclare pas le tableau de vérification dans le tableau de l'API.

Les fonctions de Vérifier ne sont appelées que si tu déclares la clé 'verifier' => array('type' => 'couleur', 'options' => array(...))

Donc c'est juste une utilisation, pas une nécessité.

Par contre pour le constructeur de formulaires là ça utilise Vérifier oui. Mais pareil que pour l'API : comme ce n'est qu'un outil, c'est plus aux plugins qui utilise le constructeur ou l'API en général (Formidable, Champs Extras, ou autre) de nécessiter Vérifier en plus de Saisies.

--
Yffic Cloarec
Le Fourneau, Centre national des arts de la rue [en Bretagne]
http://www.lefourneau.com / http://www.cliclarue.info

Le 03/04/2012 10:47, Yffic a écrit :

ca va planter pour ceux qui "updatent" Saisies sans "updater" Verifier,
donc ca va raler...

Ben non, comme tu sembles le montrer juste après dans ton code, il faut justement essayer de modifier Saisies pour que ça n'utilise cette nouvelle fonctionnalité que si elle est présente. Donc si $normaliser reste à null, il n'y a effectivement rien à faire.

Peut-être que je me trompe, mais il ne me semble pas que PHP génère une erreur si on ajoute un paramètre supplémentaire à une fonction qui ne le prévoit pas dans sa signature.

function truc(param1, param2){}
puis
truc(bli, bla, blo)
=> pas d'erreur

--
RastaPopoulos

Le 03/04/2012 11:35, RastaPopoulos a écrit :

Le 03/04/2012 11:27, Yffic a écrit :

Ca ne genere pas d'erreur mais un warning :
echo (abs(-4, "plop"));

Ça me fait pareil que toi pour abs() qui est une fonction fournie par PHP mais si MOI je crée une fonction ça ne le fait pas, j'ai aucun warning.

J'ai fait :
function addition($a,$b){ return $a+$b; }
echo addition(1, 2, 'plop');
=> ça affiche "3" et pas d'erreur

Je ne sais pas quel comportement doit-on espérer. Si ça ne fait ça qu'avec les fonctions du noyau PHP ou quoi...

En fait ca doit etre normal vu qu'on peut définir une fonction sans préciser le nombre d'arguments et les recuperer ensuite avec func_num_args et func_get_args() : PHP: func_num_args - Manual

Donc a priori je dois pouvoir faire les modifs des fonctions verifier de Saisies et Noizetier sans que ca plante tout si Verifier n'est pas a jour...

--
Yffic Cloarec
Le Fourneau, Centre national des arts de la rue [en Bretagne]
http://www.lefourneau.com / http://www.cliclarue.info