Changeset 97269 in spip-zone


Ignore:
Timestamp:
May 7, 2016, 12:40:16 PM (4 years ago)
Author:
marcimat@…
Message:

Utiliser le nouveau pipeline du plugin saisies, permettant de modifier directement
le formulaire de configuration d'une saisie dans le constructeur de formulaire.

Cela permet de prendre réellement en compte les vérifications qui sont ajoutées en même temps
que de nouvelles saisies / onglets de saisies.

Effectivement avant cela, si on ne renseignait pas, par exemple le champ obligatoire 'Définition SQL',
aucune erreur n'était générée !

En plus cela enlève un peu de code et simplifie ; la vie est belle :)

Location:
_plugins_/champs_extras_interface/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/champs_extras_interface/trunk/inc/iextras.php

    r92804 r97269  
    6969 * @return array
    7070**/
    71 function iextras_formulaire_verifier($flux) {
    72         if ($flux['args']['form'] == 'construire_formulaire'
    73         AND strpos($flux['args']['args'][0], 'champs_extras_')===0
    74         AND $nom_ou_id = _request('configurer_saisie') ) {
    75 
    76                 // On ajoute le préfixe devant l'identifiant
    77                 $identifiant = 'constructeur_formulaire_'.$flux['args']['args'][0];
    78                 // On récupère le formulaire à son état actuel
    79                 $formulaire_actuel = session_get($identifiant);
    80 
    81                 if ($nom_ou_id[0] == '@') {
    82                         $saisies_actuelles = saisies_lister_par_identifiant($formulaire_actuel);
    83                         $name = $saisies_actuelles[$nom_ou_id]['options']['nom'];
    84                 } else {
    85                         $saisies_actuelles = saisies_lister_par_nom($formulaire_actuel);
    86                         $name = $nom_ou_id;
    87                 }
    88 
    89                 // saisie inexistante => on sort
    90                 if (!isset($saisies_actuelles[$nom_ou_id])) {
    91                         return $flux;
    92                 }
    93 
    94                 $nom = 'configurer_' . $name;
    95                 $table = substr($flux['args']['args'][0], strlen('champs_extras_'));
    96 
     71function iextras_saisies_construire_formulaire_config($flux) {
     72
     73        if (strpos($flux['args']['identifiant'], 'constructeur_formulaire_champs_extras_') === 0) {
     74                $table = substr($flux['args']['identifiant'], strlen('constructeur_formulaire_champs_extras_'));
     75                $name  = $flux['args']['nom'];
     76                $formulaire_actuel = $flux['data'];
     77                $type_saisie = $flux['args']['saisie']['saisie'];
    9778
    9879                // on ajoute le fieldset de restrictions de champs
     
    154135
    155136
    156                 $flux['data'][$nom] = saisies_inserer($flux['data'][$nom], array(
     137                $flux['data'] = saisies_inserer($flux['data'], array(
    157138                        'saisie' => 'fieldset',
    158139                        'options' => array(
     
    165146
    166147
    167                 // on récupère les informations de la saisie
     148                // On récupère les informations de la saisie
    168149                // pour savoir si c'est un champs éditable (il a une ligne SQL)
    169                 // et dans ce cas, on ajoute les options techniques
    170                 $type_saisie = $saisies_actuelles[$nom_ou_id]['saisie'];
     150                // et dans ce cas :
     151                //
     152                // - on modifie le type de vérification du nom du champ (regexp > nom_champ_extra)
     153                //   Cette vérification crée une erreur si le nom est déjà utilisé par SPIP ou un plugin, et si c'est un mot clé SQL
     154                //
     155                // - on ajoute les options techniques
    171156                $saisies_sql = saisies_lister_disponibles_sql();
    172157
    173158                if (isset($saisies_sql[$type_saisie])) {
    174159
     160                        // Ajout de l'onglet Technique
    175161                        // liste 'type_de_saisie' => 'Titre de la saisie'
    176162                        $liste_saisies = array();
     
    180166
    181167                        $sql = $saisies_sql[$type_saisie]['defaut']['options']['sql'];
    182                         $flux['data'][$nom] = saisies_inserer($flux['data'][$nom], array(
     168                        $flux['data'] = saisies_inserer($flux['data'], array(
    183169
    184170                                'saisie' => 'fieldset',
     
    254240                }
    255241        }
     242
    256243        return $flux;
    257244}
  • _plugins_/champs_extras_interface/trunk/paquet.xml

    r95435 r97269  
    22        prefix="iextras"
    33        categorie="outil"
    4         version="3.3.5"
     4        version="3.4.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
     
    2020
    2121        <pipeline nom="autoriser" inclure="inc/iextras_autoriser.php" />
    22         <pipeline nom="formulaire_verifier" inclure="inc/iextras.php" />
     22        <pipeline nom="saisies_construire_formulaire_config" inclure="inc/iextras.php" />
    2323
    2424        <necessite nom="cextras" compatibilite="[3.5.2;]" />
    25         <necessite nom="saisies" compatibilite="[2.0.3;]" />
     25        <necessite nom="saisies" compatibilite="[2.7.0;]" />
    2626        <necessite nom="verifier" compatibilite="[1.0.5;]" />
    2727        <necessite nom="yaml" compatibilite="[1.5.2;]" />
Note: See TracChangeset for help on using the changeset viewer.