Changeset 107303 in spip-zone


Ignore:
Timestamp:
Nov 3, 2017, 12:09:36 PM (22 months ago)
Author:
rastapopoulos@…
Message:

Formatage, dont correction d'un fichier où il y a eu cassage de nos PSR par un commit de Teddy #délation.

Location:
_plugins_/saisies/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/trunk/formulaires/construire_formulaire.php

    r107294 r107303  
    7878
    7979        // Pas d'erreur si l'on ne demande rien
    80         if (!($nom_ou_id = $configurer_saisie  = _request('configurer_saisie')
    81                 or $nom_ou_id = $enregistrer_saisie = _request('enregistrer_saisie'))) {
     80        if (
     81                !($nom_ou_id = $configurer_saisie  = _request('configurer_saisie')
     82                or $nom_ou_id = $enregistrer_saisie = _request('enregistrer_saisie'))
     83        ) {
    8284                return $erreurs;
    8385        }
     
    9294                $saisies_actuelles = saisies_lister_par_identifiant($formulaire_actuel);
    9395                $nom = $saisies_actuelles[$nom_ou_id]['options']['nom'];
    94         } else {
     96        }
     97        else {
    9598                $saisies_actuelles = saisies_lister_par_nom($formulaire_actuel);
    9699                $nom = $nom_ou_id;
     
    128131
    129132        // S'il y a l'option adéquat, on ajoute le champ pour modifier le nom
    130         if (isset($options['modifier_nom']) and $options['modifier_nom']
    131                 and $chemin_nom = saisies_chercher($formulaire_config, "saisie_modifiee_${nom}[options][description]", true)) {
     133        if (
     134                isset($options['modifier_nom']) and $options['modifier_nom']
     135                and $chemin_nom = saisies_chercher($formulaire_config, "saisie_modifiee_${nom}[options][description]", true)
     136        ) {
    132137                $chemin_nom[] = 'saisies';
    133138                $chemin_nom[] = '0';
     
    162167                include_spip('inc/verifier');
    163168                $liste_verifications = verifier_lister_disponibles();
     169               
    164170                // La vérification fichiers ne sert que pour la saisie fichiers, et réciproquement, cette saisies n'utilise que cette vérification
    165171                if ($saisie['saisie'] == 'fichiers') {
     
    213219                $verif_options = array_merge(array($saisie_liste_verif), $verif_options);
    214220        }
    215 
    216 
     221       
    217222        // Permettre d'intégrer des saisies et fieldset au formulaire de configuration.
    218223        // Si des vérifications sont à faire, elles seront prises en compte
     
    234239                // On cherche les erreurs de la configuration
    235240                $vraies_erreurs = saisies_verifier($formulaire_config);
     241               
    236242                // Si on autorise à modifier le nom ET qu'il doit être unique : on vérifie
    237243                if (isset($options['modifier_nom']) and $options['modifier_nom']
     
    242248                        }
    243249                }
     250               
    244251                // On regarde s'il a été demandé un type de vérif
    245252                if (isset($saisie_modifiee['verifier']['type'])
     
    336343                        $saisie = array_replace_recursive($saisie, $defaut);
    337344                }
     345               
    338346                $formulaire_actuel = saisies_inserer($formulaire_actuel, $saisie);
    339347        }
     
    411419        }
    412420}
     421
    413422// À utiliser avec un array_walk_recursive()
    414423// Applique une transformation à la valeur de tous les champs "afficher_si" d'un formulaire, y compris loin dans l'arbo
     
    426435        // On cherche si ya un formulaire de config
    427436        $formulaire_config = isset($env['erreurs']['configurer_'.$nom]) ? $env['erreurs']['configurer_'.$nom] : '';
     437       
    428438        // On ajoute une classe
    429439        if (!isset($saisie['options']['conteneur_class'])) {
     
    558568                );
    559569        }
     570       
    560571        // On génère le HTML de la saisie
    561572        $html = saisies_generer_html($saisie, $env);
     573       
    562574        return $html;
    563575}
     
    584596        include_spip('inclure/configurer_saisie_fonctions');
    585597
    586                 //le groupe de saisies
    587                 $saisies_charger_infos = saisies_charger_infos($saisie, $saisies_repertoire = 'saisies/groupes');
    588 
    589                 //le tableau est-il en options ou en saisies ?
    590                 $classique_yaml=count($saisies_charger_infos['options']);
    591                 $formidable_yaml=count($saisies_charger_infos['saisies']);
    592                 if ($classique_yaml>0) {
    593                         $champ_options = 'options';
    594                 }
    595                 if ($formidable_yaml>0) {
    596                         $champ_options = 'saisies';
    597                 }
    598 
    599                 //les champs du groupe
    600                 foreach ($saisies_charger_infos[$champ_options] as $info_saisie) {
    601                         unset($info_saisie['identifiant']);
    602                         $saisies_disponibles = saisies_lister_disponibles();
    603                         $construire_nom = $info_saisie[$champ_options]['nom'] ? $info_saisie[$champ_options]['nom'] : $info_saisie['saisie'];
    604                         $nom = $info_saisie[$champ_options]['nom'] = saisies_generer_nom($formulaire_actuel, $construire_nom);
    605 
    606                         $formulaire_actuel = saisies_inserer($formulaire_actuel, $info_saisie);
    607                 }
    608                 return $formulaire_actuel;
    609 }
     598        //le groupe de saisies
     599        $saisies_charger_infos = saisies_charger_infos($saisie, $saisies_repertoire = 'saisies/groupes');
     600
     601        //le tableau est-il en options ou en saisies ?
     602        $classique_yaml=count($saisies_charger_infos['options']);
     603        $formidable_yaml=count($saisies_charger_infos['saisies']);
     604        if ($classique_yaml>0) {
     605                $champ_options = 'options';
     606        }
     607        if ($formidable_yaml>0) {
     608                $champ_options = 'saisies';
     609        }
     610
     611        //les champs du groupe
     612        foreach ($saisies_charger_infos[$champ_options] as $info_saisie) {
     613                unset($info_saisie['identifiant']);
     614                $saisies_disponibles = saisies_lister_disponibles();
     615                $construire_nom = $info_saisie[$champ_options]['nom'] ? $info_saisie[$champ_options]['nom'] : $info_saisie['saisie'];
     616                $nom = $info_saisie[$champ_options]['nom'] = saisies_generer_nom($formulaire_actuel, $construire_nom);
     617
     618                $formulaire_actuel = saisies_inserer($formulaire_actuel, $info_saisie);
     619        }
     620       
     621        return $formulaire_actuel;
     622}
  • _plugins_/saisies/trunk/inc/saisies.php

    r103834 r107303  
    1212}
    1313
    14 /*
    15  * Une librairie pour manipuler ou obtenir des infos sur un tableau de saisies
    16  *
    17  * saisies_lister_par_nom()
    18  * saisies_lister_champs()
    19  * saisies_lister_valeurs_defaut()
    20  * saisies_charger_champs()
    21  * saisies_chercher()
    22  * saisies_supprimer()
    23  * saisies_inserer()
    24  * saisies_deplacer()
    25  * saisies_modifier()
    26  * saisies_verifier()
    27  * saisies_comparer()
    28  * saisies_generer_html()
    29  * saisies_generer_vue()
    30  * saisies_generer_nom()
    31  * saisies_inserer_html()
    32  * saisies_lister_disponibles()
    33  * saisies_autonomes()
    34  */
    35 
    3614// Différentes méthodes pour trouver les saisies
    3715include_spip('inc/saisies_lister');
     
    5129 */
    5230function saisies_chercher_formulaire($form, $args) {
    53         if ($fonction_saisies = charger_fonction('saisies', 'formulaires/'.$form, true)
     31        if (
     32                $fonction_saisies = charger_fonction('saisies', 'formulaires/'.$form, true)
    5433                and $saisies = call_user_func_array($fonction_saisies, $args)
    5534                and is_array($saisies)
     
    9776                                }
    9877                        }
    99                 } elseif (is_array($id_ou_nom_ou_chemin)) {
     78                }
     79                elseif (is_array($id_ou_nom_ou_chemin)) {
    10080                        $chemin = $id_ou_nom_ou_chemin;
    10181                        $saisie = $saisies;
     82                       
    10283                        // On vérifie l'existence quand même
    10384                        foreach ($chemin as $cle) {
     
    10889                                }
    10990                        }
     91                       
    11092                        // Si c'est une vraie saisie
    11193                        if ($saisie['saisie'] and $saisie['options']['nom']) {
     
    153135                return array();
    154136        }
     137       
    155138        foreach ($saisies as $k => $saisie) {
    156139                $saisies[$k] = saisie_identifier($saisie, $regenerer);
    157140        }
     141       
    158142        return $saisies;
    159143}
     
    177161                $saisie['saisies'] = saisies_identifier($saisie['saisies'], $regenerer);
    178162        }
     163       
    179164        return $saisie;
    180165}
     
    203188                $file = (($saisie['saisie'] == 'input' and isset($saisie['options']['type']) and $saisie['options']['type'] == 'file') or $saisie['saisie'] == 'fichiers');
    204189                $verifier = isset($saisie['verifier']) ? $saisie['verifier'] : false;
     190               
    205191                // Cas de la saisie 'fichiers':
    206192                if ($saisie['saisie'] == 'fichiers') {
     
    223209                                $valeur = null;
    224210                        }
    225                 } else { // tout type de saisie, sauf fichiers
     211                }
     212                // Tout type de saisie, sauf fichiers
     213                else {
    226214                        // Si le nom du champ est un tableau indexé, il faut parser !
    227215                        if (preg_match('/([\w]+)((\[[\w]+\])+)/', $champ, $separe)) {
     
    237225                        }
    238226                }
     227               
    239228                // Pour la saisie "destinataires" il faut filtrer si jamais on a mis un premier choix vide
    240229                if ($saisie['saisie'] == 'destinataires') {
    241230                        $valeur = array_filter($valeur);
    242231                }
     232               
    243233                // On regarde d'abord si le champ est obligatoire
    244                 if ($obligatoire
     234                if (
     235                        $obligatoire
    245236                        and $obligatoire != 'non'
    246237                        and (
     
    261252                // On continue seulement si ya pas d'erreur d'obligation et qu'il y a une demande de verif
    262253                if ((!isset($erreurs[$champ]) or !$erreurs[$champ]) and is_array($verifier) and $verif_fonction) {
    263                         if ($verifier['type'] == 'fichiers') { // si on fait une vérification de type fichiers, il n'y a pas vraiment de normalisation, mais un retour d'erreur fichiers par fichiers
     254                        // Si on fait une vérification de type fichiers, il n'y a pas vraiment de normalisation, mais un retour d'erreur fichiers par fichiers
     255                        if ($verifier['type'] == 'fichiers') {
    264256                                $normaliser = array();
    265257                        } else {
    266258                                $normaliser = null;
    267259                        }
     260                       
    268261                        // Si le champ n'est pas valide par rapport au test demandé, on ajoute l'erreur
    269262                        $options = isset($verifier['options']) ? $verifier['options'] : array();
     
    275268                                }
    276269
     270                        }
    277271                        // S'il n'y a pas d'erreur et que la variable de normalisation a été remplie, on l'injecte dans le POST
    278                         } elseif (!is_null($normaliser) and $verifier['type'] != 'fichiers') {
     272                        elseif (!is_null($normaliser) and $verifier['type'] != 'fichiers') {
    279273                                set_request($champ, $normaliser);
    280274                        }
    281275                }
    282276        }
     277       
    283278        // Last but not least, on passe nos résultats à un pipeline
    284279        $erreurs = pipeline(
     
    292287                )
    293288        );
     289       
    294290        return $erreurs;
    295291}
     
    302298function saisies_aplatir_tableau($tab) {
    303299        $nouveau_tab = array();
     300       
    304301        foreach ($tab as $entree => $contenu) {
    305302                if (is_array($contenu)) {
     
    311308                }
    312309        }
     310       
    313311        return $nouveau_tab;
    314312}
     
    339337                $tableau = array();
    340338                $soustab = false;
     339               
    341340                // On découpe d'abord en lignes
    342341                $lignes = explode($separateur, $chaine);
     
    377376                }
    378377                return $tableau;
    379         } elseif (is_array($chaine)) {
     378        }
     379        elseif (is_array($chaine)) {
    380380                // Si c'est déjà un tableau on lui applique _T_ou_typo (qui fonctionne de manière récursive avant de le renvoyer
    381381                return _T_ou_typo($chaine, 'multi');
    382         } else {
     382        }
     383        else {
    383384                return array();
    384385        }
     
    400401                $chaine = '';
    401402                $avant_est_tableau = false;
     403               
    402404                foreach ($tableau as $cle => $valeur) {
    403405                        if (is_array($valeur)) {
     
    418420
    419421                return $chaine;
    420         } elseif (is_string($tableau)) {
     422        }
     423        elseif (is_string($tableau)) {
    421424                // Si c'est déjà une chaine on la renvoie telle quelle
    422425                return $tableau;
    423         } else {
     426        }
     427        else {
    424428                return '';
    425429        }
     
    472476                $data = saisies_chaine2tableau($data) ;
    473477        }
     478       
    474479        $choix_theorique = array_keys($data);
    475480        $choix_alternatif = array_values(array_diff($valeur, $choix_theorique));
     
    525530 * @return boolean
    526531 */
    527 
    528532function saisies_afficher_si($saisies) {
    529533        $saisies = saisies_lister_par_nom($saisies, true);
     534       
    530535        // Dès qu'il y a au moins une option afficher_si, on l'active
    531536        foreach ($saisies as $saisie) {
     
    534539                }
    535540        }
     541       
    536542        return false;
    537543}
     
    546552function saisies_afficher_si_remplissage($saisies) {
    547553        $saisies = saisies_lister_par_nom($saisies, true);
     554       
    548555        // Dès qu'il y a au moins une option afficher_si_remplissage, on l'active
    549556        foreach ($saisies as $saisie) {
     
    552559                }
    553560        }
     561       
    554562        return false;
    555563}
  • _plugins_/saisies/trunk/inc/saisies_lister.php

    r106152 r107303  
    99// Sécurité
    1010if (!defined('_ECRIRE_INC_VERSION')) {
    11     return;
     11        return;
    1212}
    1313
     
    2121 * @return array Un tableau avec uniquement les saisies
    2222 */
    23 function saisies_lister_par_identifiant($contenu, $avec_conteneur = true)
    24 {
    25     $saisies = array();
    26 
    27     if (is_array($contenu)) {
    28         foreach ($contenu as $ligne) {
    29             if (is_array($ligne)) {
    30                 $enfants_presents = (isset($ligne['saisies']) and is_array($ligne['saisies']));
    31                 if (array_key_exists('saisie', $ligne) and (!$enfants_presents or $avec_conteneur)) {
    32                     $saisies[$ligne['identifiant']] = $ligne;
    33                 }
    34                 if ($enfants_presents) {
    35                     $saisies = array_merge($saisies, saisies_lister_par_identifiant($ligne['saisies']));
    36                 }
    37             }
    38         }
    39     }
    40 
    41     return $saisies;
     23function saisies_lister_par_identifiant($contenu, $avec_conteneur = true) {
     24        $saisies = array();
     25
     26        if (is_array($contenu)) {
     27                foreach ($contenu as $ligne) {
     28                        if (is_array($ligne)) {
     29                                $enfants_presents = (isset($ligne['saisies']) and is_array($ligne['saisies']));
     30                                if (array_key_exists('saisie', $ligne) and (!$enfants_presents or $avec_conteneur)) {
     31                                        $saisies[$ligne['identifiant']] = $ligne;
     32                                }
     33                                if ($enfants_presents) {
     34                                        $saisies = array_merge($saisies, saisies_lister_par_identifiant($ligne['saisies']));
     35                                }
     36                        }
     37                }
     38        }
     39
     40        return $saisies;
    4241}
    4342
     
    5150 * @return array Un tableau avec uniquement les saisies
    5251 */
    53 function saisies_lister_par_nom($contenu, $avec_conteneur = true)
    54 {
    55     $saisies = array();
    56 
    57     if (is_array($contenu)) {
    58         foreach ($contenu as $ligne) {
    59             if (is_array($ligne)) {
    60                 if (array_key_exists('saisie', $ligne)
    61                     and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
    62                     and isset($ligne['options'])) {
    63                     $saisies[$ligne['options']['nom']] = $ligne;
    64                 }
    65                 if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
    66                     $saisies = array_merge($saisies, saisies_lister_par_nom($ligne['saisies']));
    67                 }
    68             }
    69         }
    70     }
    71 
    72     return $saisies;
     52function saisies_lister_par_nom($contenu, $avec_conteneur = true) {
     53        $saisies = array();
     54
     55        if (is_array($contenu)) {
     56                foreach ($contenu as $ligne) {
     57                        if (is_array($ligne)) {
     58                                if (
     59                                        array_key_exists('saisie', $ligne)
     60                                        and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
     61                                        and isset($ligne['options'])
     62                                ) {
     63                                        $saisies[$ligne['options']['nom']] = $ligne;
     64                                }
     65                                if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
     66                                        $saisies = array_merge($saisies, saisies_lister_par_nom($ligne['saisies']));
     67                                }
     68                        }
     69                }
     70        }
     71
     72        return $saisies;
    7373}
    7474
     
    8484 * @return liste de ces saisies triees par nom ayant une option X définie
    8585 */
    86 function saisies_lister_avec_option($option, $saisies, $tri = 'nom')
    87 {
    88     $saisies_option = array();
    89     // tri par nom si ce n'est pas le cas
    90     $s = array_keys($saisies);
    91     if (is_int(array_shift($s))) {
    92         $trier = 'saisies_lister_par_'.$tri;
    93         $saisies = $trier($saisies);
    94     }
    95     foreach ($saisies as $nom_ou_id => $saisie) {
    96         if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
    97             $saisies_option[$nom_ou_id] = $saisie;
    98         }
    99     }
    100 
    101     return $saisies_option;
     86function saisies_lister_avec_option($option, $saisies, $tri = 'nom') {
     87        $saisies_option = array();
     88       
     89        // tri par nom si ce n'est pas le cas
     90        $s = array_keys($saisies);
     91        if (is_int(array_shift($s))) {
     92                $trier = 'saisies_lister_par_'.$tri;
     93                $saisies = $trier($saisies);
     94        }
     95       
     96        foreach ($saisies as $nom_ou_id => $saisie) {
     97                if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
     98                        $saisies_option[$nom_ou_id] = $saisie;
     99                }
     100        }
     101
     102        return $saisies_option;
    102103}
    103104
     
    110111 * @return liste de ces saisies triees par nom ayant une option sql définie
    111112 */
    112 function saisies_lister_avec_sql($saisies, $tri = 'nom')
    113 {
    114     return saisies_lister_avec_option('sql', $saisies, $tri);
     113function saisies_lister_avec_sql($saisies, $tri = 'nom') {
     114        return saisies_lister_avec_option('sql', $saisies, $tri);
    115115}
    116116
     
    126126 * @return liste de ces saisies triees par nom
    127127 */
    128 function saisies_lister_avec_type($saisies, $type, $tri = 'nom')
    129 {
    130     $saisies_type = array();
    131     // tri par nom si ce n'est pas le cas
    132     $s = array_keys($saisies);
    133     if (is_int(array_shift($s))) {
    134         $trier = 'saisies_lister_par_'.$tri;
    135         $saisies = $trier($saisies);
    136     }
    137     foreach ($saisies as $nom_ou_id => $saisie) {
    138         if ($saisie['saisie'] == $type) {
    139             $saisies_type[$nom_ou_id] = $saisie;
    140         }
    141     }
    142 
    143     return $saisies_type;
     128function saisies_lister_avec_type($saisies, $type, $tri = 'nom') {
     129        $saisies_type = array();
     130       
     131        // tri par nom si ce n'est pas le cas
     132        $s = array_keys($saisies);
     133        if (is_int(array_shift($s))) {
     134                $trier = 'saisies_lister_par_'.$tri;
     135                $saisies = $trier($saisies);
     136        }
     137       
     138        foreach ($saisies as $nom_ou_id => $saisie) {
     139                if ($saisie['saisie'] == $type) {
     140                        $saisies_type[$nom_ou_id] = $saisie;
     141                }
     142        }
     143
     144        return $saisies_type;
    144145}
    145146
     
    153154 * @return array Un tableau avec uniquement les saisies
    154155 */
    155 function saisies_lister_par_type($contenu)
    156 {
    157     $saisies = array();
    158 
    159     if (is_array($contenu)) {
    160         foreach ($contenu as $ligne) {
    161             if (is_array($ligne)) {
    162                 if (array_key_exists('saisie', $ligne) and (!is_array($ligne['saisies']))) {
    163                     $saisies[ $ligne['saisie'] ][ $ligne['options']['nom'] ] = $ligne;
    164                 }
    165                 if (is_array($ligne['saisies'])) {
    166                     $saisies = array_merge_recursive($saisies, saisies_lister_par_type($ligne['saisies']));
    167                 }
    168             }
    169         }
    170     }
    171 
    172     return $saisies;
     156function saisies_lister_par_type($contenu) {
     157        $saisies = array();
     158
     159        if (is_array($contenu)) {
     160                foreach ($contenu as $ligne) {
     161                        if (is_array($ligne)) {
     162                                if (array_key_exists('saisie', $ligne) and (!is_array($ligne['saisies']))) {
     163                                        $saisies[ $ligne['saisie'] ][ $ligne['options']['nom'] ] = $ligne;
     164                                }
     165                                if (is_array($ligne['saisies'])) {
     166                                        $saisies = array_merge_recursive($saisies, saisies_lister_par_type($ligne['saisies']));
     167                                }
     168                        }
     169                }
     170        }
     171
     172        return $saisies;
    173173}
    174174
     
    182182 * @return array Un tableau listant les noms des champs
    183183 */
    184 function saisies_lister_champs($contenu, $avec_conteneur = true)
    185 {
    186     $saisies = saisies_lister_par_nom($contenu, $avec_conteneur);
    187 
    188     return array_keys($saisies);
     184function saisies_lister_champs($contenu, $avec_conteneur = true) {
     185        $saisies = saisies_lister_par_nom($contenu, $avec_conteneur);
     186
     187        return array_keys($saisies);
    189188}
    190189
     
    198197 * @return array Un tableau de contexte
    199198 */
    200 function saisies_charger_champs($contenu)
    201 {
    202     // array_fill_keys est disponible uniquement avec PHP >= 5.2.0
    203     // return array_fill_keys(saisies_lister_champs($contenu, false), '');
    204     $champs = array();
    205     foreach (saisies_lister_champs($contenu, false) as $champ) {
    206         $champs[$champ] = '';
    207     }
    208 
    209     return $champs;
     199function saisies_charger_champs($contenu) {
     200        // array_fill_keys est disponible uniquement avec PHP >= 5.2.0
     201        // return array_fill_keys(saisies_lister_champs($contenu, false), '');
     202        $champs = array();
     203        foreach (saisies_lister_champs($contenu, false) as $champ) {
     204                $champs[$champ] = '';
     205        }
     206
     207        return $champs;
    210208}
    211209
     
    218216 * @return array Un tableau renvoyant la valeur par défaut de chaque champs
    219217 */
    220 function saisies_lister_valeurs_defaut($contenu)
    221 {
    222     $contenu = saisies_lister_par_nom($contenu, false);
    223     $defauts = array();
    224     foreach ($contenu as $nom => $saisie) {
    225         // Si le nom du champ est un tableau indexé, il faut parser !
    226         if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
    227             $nom = $separe[1];
    228             // Dans ce cas on ne récupère que le nom,
    229             // la valeur par défaut du tableau devra être renseigné autre part
    230             $defauts[$nom] = array();
    231         } else {
    232             $defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
    233         }
    234     }
    235 
    236     return $defauts;
     218function saisies_lister_valeurs_defaut($contenu) {
     219        $contenu = saisies_lister_par_nom($contenu, false);
     220        $defauts = array();
     221       
     222        foreach ($contenu as $nom => $saisie) {
     223                // Si le nom du champ est un tableau indexé, il faut parser !
     224                if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
     225                        $nom = $separe[1];
     226                        // Dans ce cas on ne récupère que le nom,
     227                        // la valeur par défaut du tableau devra être renseigné autre part
     228                        $defauts[$nom] = array();
     229                }
     230                else {
     231                        $defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
     232                }
     233        }
     234
     235        return $defauts;
    237236}
    238237
     
    247246 * @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
    248247 */
    249 function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true, $tri = 'nom')
    250 {
    251     $trier = "saisies_lister_par_$tri";
    252     $saisies_anciennes = $trier($saisies_anciennes, $avec_conteneur);
    253     $saisies_nouvelles = $trier($saisies_nouvelles, $avec_conteneur);
    254 
    255     // Les saisies supprimées sont celles qui restent dans les anciennes quand on a enlevé toutes les nouvelles
    256     $saisies_supprimees = array_diff_key($saisies_anciennes, $saisies_nouvelles);
    257     // Les saisies ajoutées, c'est le contraire
    258     $saisies_ajoutees = array_diff_key($saisies_nouvelles, $saisies_anciennes);
    259     // Il reste alors les saisies qui ont le même nom
    260     $saisies_restantes = array_intersect_key($saisies_anciennes, $saisies_nouvelles);
    261     // Dans celles-ci, celles qui sont modifiées sont celles dont la valeurs est différentes
    262     $saisies_modifiees = array_udiff(array_diff_key($saisies_nouvelles, $saisies_ajoutees), $saisies_restantes, 'saisies_comparer_rappel');
    263     #$saisies_modifiees = array_udiff($saisies_nouvelles, $saisies_restantes, 'saisies_comparer_rappel');
    264     // Et enfin les saisies qui ont le même nom et la même valeur
    265     $saisies_identiques = array_diff_key($saisies_restantes, $saisies_modifiees);
    266 
    267     return array(
    268         'supprimees' => $saisies_supprimees,
    269         'ajoutees' => $saisies_ajoutees,
    270         'modifiees' => $saisies_modifiees,
    271         'identiques' => $saisies_identiques,
    272     );
     248function saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true, $tri = 'nom') {
     249        $trier = "saisies_lister_par_$tri";
     250        $saisies_anciennes = $trier($saisies_anciennes, $avec_conteneur);
     251        $saisies_nouvelles = $trier($saisies_nouvelles, $avec_conteneur);
     252
     253        // Les saisies supprimées sont celles qui restent dans les anciennes quand on a enlevé toutes les nouvelles
     254        $saisies_supprimees = array_diff_key($saisies_anciennes, $saisies_nouvelles);
     255        // Les saisies ajoutées, c'est le contraire
     256        $saisies_ajoutees = array_diff_key($saisies_nouvelles, $saisies_anciennes);
     257        // Il reste alors les saisies qui ont le même nom
     258        $saisies_restantes = array_intersect_key($saisies_anciennes, $saisies_nouvelles);
     259        // Dans celles-ci, celles qui sont modifiées sont celles dont la valeurs est différentes
     260        $saisies_modifiees = array_udiff(array_diff_key($saisies_nouvelles, $saisies_ajoutees), $saisies_restantes, 'saisies_comparer_rappel');
     261        #$saisies_modifiees = array_udiff($saisies_nouvelles, $saisies_restantes, 'saisies_comparer_rappel');
     262        // Et enfin les saisies qui ont le même nom et la même valeur
     263        $saisies_identiques = array_diff_key($saisies_restantes, $saisies_modifiees);
     264
     265        return array(
     266                'supprimees' => $saisies_supprimees,
     267                'ajoutees' => $saisies_ajoutees,
     268                'modifiees' => $saisies_modifiees,
     269                'identiques' => $saisies_identiques,
     270        );
    273271}
    274272
     
    281279 * @return int Retourne 0 si les saisies sont identiques, 1 sinon.
    282280 */
    283 function saisies_comparer_rappel($a, $b)
    284 {
    285     if ($a === $b) {
    286         return 0;
    287     } else {
    288         return 1;
    289     }
     281function saisies_comparer_rappel($a, $b) {
     282        if ($a === $b) {
     283                return 0;
     284        } else {
     285                return 1;
     286        }
    290287}
    291288
     
    303300 * @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
    304301 */
    305 function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true)
    306 {
    307     return saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur, 'identifiant');
     302function saisies_comparer_par_identifiant($saisies_anciennes, $saisies_nouvelles, $avec_conteneur = true) {
     303        return saisies_comparer($saisies_anciennes, $saisies_nouvelles, $avec_conteneur, 'identifiant');
    308304}
    309305
     
    313309 * @return array Un tableau listant des saisies et leurs options
    314310 */
    315 function saisies_lister_disponibles($saisies_repertoire = 'saisies')
    316 {
    317     static $saisies = null;
    318 
    319     if (is_null($saisies)) {
    320         $saisies = array();
    321         $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
    322 
    323         if (count($liste)) {
    324             foreach ($liste as $fichier => $chemin) {
    325                 $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
    326                 $dossier = str_replace($fichier, '', $chemin);
    327 
    328                 // On ne garde que les saisies qui ont bien le HTML avec !
    329                 if (file_exists("$dossier$type_saisie.html")
    330                     and (
    331                         is_array($saisie = saisies_charger_infos($type_saisie))
    332                     )
    333                 ) {
    334                     $saisies[$type_saisie] = $saisie;
    335                 }
    336             }
    337         }
    338     }
    339 
    340     return $saisies;
     311function saisies_lister_disponibles($saisies_repertoire = 'saisies') {
     312        static $saisies = null;
     313
     314        if (is_null($saisies)) {
     315                $saisies = array();
     316                $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
     317
     318                if (count($liste)) {
     319                        foreach ($liste as $fichier => $chemin) {
     320                                $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
     321                                $dossier = str_replace($fichier, '', $chemin);
     322
     323                                // On ne garde que les saisies qui ont bien le HTML avec !
     324                                if (
     325                                        file_exists("$dossier$type_saisie.html")
     326                                        and (
     327                                                is_array($saisie = saisies_charger_infos($type_saisie))
     328                                        )
     329                                ) {
     330                                        $saisies[$type_saisie] = $saisie;
     331                                }
     332                        }
     333                }
     334        }
     335
     336        return $saisies;
    341337}
    342338
     
    346342 * @return array Un tableau listant des saisies et leurs options
    347343 */
    348 function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies')
    349 {
    350     static $saisies = null;
    351 
    352     if (is_null($saisies)) {
    353         $saisies = array();
    354         $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
    355 
    356         if (count($liste)) {
    357             foreach ($liste as $fichier => $chemin) {
    358                 $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
    359                 $dossier = str_replace($fichier, '', $chemin);
    360                 // On ne garde que les saisies qui ont bien le HTML avec !
    361                 if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
    362                     $saisies[$type_saisie] = $saisie;
    363                 }
    364             }
    365         }
    366     }
    367 
    368     return $saisies;
     344function saisies_groupes_lister_disponibles($saisies_repertoire = 'saisies') {
     345        static $saisies = null;
     346
     347        if (is_null($saisies)) {
     348                $saisies = array();
     349                $liste = find_all_in_path("$saisies_repertoire/", '.+[.]yaml$');
     350
     351                if (count($liste)) {
     352                        foreach ($liste as $fichier => $chemin) {
     353                                $type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
     354                                $dossier = str_replace($fichier, '', $chemin);
     355                               
     356                                if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
     357                                        $saisies[$type_saisie] = $saisie;
     358                                }
     359                        }
     360                }
     361        }
     362
     363        return $saisies;
    369364}
    370365
     
    374369 * @return array Un tableau listant des saisies et leurs options
    375370 */
    376 function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies')
    377 {
    378     $saisies = array();
    379     $saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
    380     foreach ($saisies_disponibles as $type => $saisie) {
    381         if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
    382             $saisies[$type] = $saisie;
    383         }
    384     }
    385 
    386     return $saisies;
     371function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies') {
     372        $saisies = array();
     373        $saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
     374       
     375        foreach ($saisies_disponibles as $type => $saisie) {
     376                if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
     377                        $saisies[$type] = $saisie;
     378                }
     379        }
     380
     381        return $saisies;
    387382}
    388383
     
    394389 * @return array Un tableau contenant le YAML décodé
    395390 */
    396 function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies')
    397 {
    398     if (defined('_DIR_PLUGIN_YAML')) {
    399         include_spip('inc/yaml');
    400         $fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
    401         $saisie = yaml_decode_file($fichier);
    402         if (is_array($saisie)) {
    403             $saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
    404                 ? _T_ou_typo($saisie['titre']) : $type_saisie;
    405             $saisie['description'] = (isset($saisie['description']) and $saisie['description'])
    406                 ? _T_ou_typo($saisie['description']) : '';
    407             $saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
    408                 ? find_in_path($saisie['icone']) : '';
    409         }
    410     } else {
    411         $saisie = array();
    412     }
    413 
    414     return $saisie;
     391function saisies_charger_infos($type_saisie, $saisies_repertoire = 'saisies') {
     392        if (defined('_DIR_PLUGIN_YAML')) {
     393                include_spip('inc/yaml');
     394                $fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
     395                $saisie = yaml_decode_file($fichier);
     396               
     397                if (is_array($saisie)) {
     398                        $saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
     399                                ? _T_ou_typo($saisie['titre']) : $type_saisie;
     400                        $saisie['description'] = (isset($saisie['description']) and $saisie['description'])
     401                                ? _T_ou_typo($saisie['description']) : '';
     402                        $saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
     403                                ? find_in_path($saisie['icone']) : '';
     404                }
     405        }
     406        else {
     407                $saisie = array();
     408        }
     409
     410        return $saisie;
    415411}
    416412
     
    420416 * @return array Retourne un tableau contenant les types de saisies qui ne doivent pas utiliser le _base.html commun
    421417 */
    422 function saisies_autonomes()
    423 {
    424     $saisies_autonomes = pipeline(
    425         'saisies_autonomes',
    426         array(
    427             'fieldset',
    428             'hidden',
    429             'destinataires',
    430             'explication',
    431         )
    432     );
    433 
    434     return $saisies_autonomes;
    435 }
     418function saisies_autonomes() {
     419        $saisies_autonomes = pipeline(
     420                'saisies_autonomes',
     421                array(
     422                        'fieldset',
     423                        'hidden',
     424                        'destinataires',
     425                        'explication',
     426                )
     427        );
     428
     429        return $saisies_autonomes;
     430}
Note: See TracChangeset for help on using the changeset viewer.