Changeset 118193 in spip-zone


Ignore:
Timestamp:
Oct 17, 2019, 11:35:50 PM (5 weeks ago)
Author:
Charles Razack
Message:

Ne pas oublier la vérif des saisies supplémentaires (le noizetier ne vérifie que celles du yaml) + commentaires plus clairs + up z

Location:
_plugins_/noizetier_extra/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier_extra/trunk

    • Property subgit:lock:b42f0ef927b13e06dec362c1f99c49391b7d4dfa deleted
    • Property subgit:lock:dac87de79b6913b12a55946fbd894897008357c6 set to 2019-10-18T01:36:03.456
  • _plugins_/noizetier_extra/trunk/noizetier_extra_pipelines.php

    r118158 r118193  
    8383                        }
    8484
    85                         // Saisie à valeur simple ou multiple ?
     85                        // Saisie à valeur unique ou multiple ?
    8686                        // On prend l'option explicite, sinon on compte le nombre.
    8787                        // Nb : pas 100% fiable :(
     
    121121        if (
    122122                $flux['args']['form'] == 'editer_noisette'
     123                and !$flux['data'] // pas d'erreur
    123124                and $id_noisette = $flux['args']['args'][0]
    124125                and $type_noisette = _request('type_noisette')
     
    127128        ) {
    128129
    129                 // Récupérer les classes attribuées
    130                 $classes_noisette = trim(_request('conteneur_css').' '. _request('css'));
    131                 $classes_noisette = explode(' ', $classes_noisette);
    132                 $classes_noisette = array_filter($classes_noisette);
     130                // Vérifier d'abord les erreurs des saisies extras
     131                // (le noizetier ne vérifie que celles déclarées dans le yaml).
     132                include_spip('inc/saisies');
     133                if (!$erreurs = saisies_verifier($saisies_classes)) {
    133134
    134                 // Gibolinage des classes : on ajoute les valeurs postées
    135                 // dans les saisies de classe au champ contenant les classes.
    136                 foreach ($saisies_classes as $saisie) {
    137                         $type_saisie = $saisie['saisie'];
    138                         $champ = $saisie['options']['nom'];
     135                        // Récupérer les classes attribuées
     136                        $classes_noisette = trim(_request('conteneur_css').' '. _request('css'));
     137                        $classes_noisette = explode(' ', $classes_noisette);
     138                        $classes_noisette = array_filter($classes_noisette);
    139139
    140                         // Nettoyage : on retire d'abord toutes les classes qui font partie
    141                         // des valeurs acceptables de la saisie.
    142                         $classes_champ = array();
    143                         if (include_spip("saisies/$type_saisie")) {
    144                                 $verifier_valeurs_acceptables = $type_saisie.'_valeurs_acceptables';
    145                                 if (function_exists($verifier_valeurs_acceptables)) {
    146                                         foreach ($classes_noisette as $classe) {
    147                                                 if ($verifier_valeurs_acceptables($classe, $saisie)) {
    148                                                         $classes_champ[] = $classe;
     140                        // On met à jour la liste des classes attribuées
     141                        // en fonction des valeurs postées dans les saisies extras.
     142                        foreach ($saisies_classes as $saisie) {
     143                                $type_saisie = $saisie['saisie'];
     144                                $champ = $saisie['options']['nom'];
     145
     146                                // D'abord on nettoie en retirant toutes les valeurs possibles de la saisie.
     147                                $classes_champ = array();
     148                                if (include_spip("saisies/$type_saisie")) {
     149                                        $verifier_valeurs_acceptables = $type_saisie.'_valeurs_acceptables';
     150                                        if (function_exists($verifier_valeurs_acceptables)) {
     151                                                foreach ($classes_noisette as $classe) {
     152                                                        if ($verifier_valeurs_acceptables($classe, $saisie)) {
     153                                                                $classes_champ[] = $classe;
     154                                                        }
    149155                                                }
    150156                                        }
    151157                                }
    152                         }
    153                         $classes_noisette = array_diff($classes_noisette, $classes_champ);
     158                                $classes_noisette = array_diff($classes_noisette, $classes_champ);
    154159
    155                         // Puis on ajoute la valeur postée
    156                         if (!is_null($valeur = _request($champ))) {
    157                                 if (is_array($valeur)) {
    158                                         $classes_noisette = array_merge($classes_noisette, $valeur);
    159                                 } else {
    160                                         $classes_noisette[] = $valeur;
     160                                // Puis on ajoute la valeur postée
     161                                if (!is_null($valeur = _request($champ))) {
     162                                        if (is_array($valeur)) {
     163                                                $classes_noisette = array_merge($classes_noisette, $valeur);
     164                                        } else {
     165                                                $classes_noisette[] = $valeur;
     166                                        }
    161167                                }
    162168                        }
     169
     170                        // On met à jour le champ contenant les classes.
     171                        $classes_noisette = implode(' ', array_unique($classes_noisette));
     172                        set_request('css', $classes_noisette);
     173                        set_request('conteneur_css', $classes_noisette);
     174
     175                } else {
     176                        $flux = $erreurs;
    163177                }
    164178
    165                 // Mise à jour du champ
    166                 $classes_noisette = implode(' ', array_unique($classes_noisette));
    167                 set_request('css', $classes_noisette);
    168                 set_request('conteneur_css', $classes_noisette);
    169 
    170                 // var_dump($classes_noisette);
    171                 // $flux['message_erreur'] = 'Stop : debug';
     179                //var_dump($classes_noisette);
     180                // $flux['message_erreur'] = 'Debug noizetier_extra';
    172181        }
    173182
  • _plugins_/noizetier_extra/trunk/paquet.xml

    r118158 r118193  
    22        prefix="noizetier_extra"
    33        categorie="maintenance"
    4         version="0.1.5"
     4        version="0.1.6"
    55        etat="experimental"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.