Changeset 49131 in spip-zone


Ignore:
Timestamp:
Jun 28, 2011, 12:05:19 PM (10 years ago)
Author:
marcimat@…
Message:

Utiliser les fonctions de saisies pour générer le formulaire de configuration d'un champs extras.

Il reste la vue d'un champ sur un objet à reprendre.

Location:
_plugins_/champs_extras
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/champs_extras/core/trunk/inc/cextras.php

    r49107 r49131  
    88
    99        var $saisie      = ''; // type de saisie (input)
    10         var $label       = ''; // label du champ. Code de langue (monplug:mon_label)
    11         var $obligatoire = false; // champ obligatoire ? 'oui'/true
     10
    1211        var $saisie_parametres = array();
    1312                /*
    1413                    // peut indiquer tout parametre d'une #SAISIE, tel que :
     14                        label       = ''; // label du champ. Code de langue (monplug:mon_label)
     15                        obligatoire = false; // champ obligatoire ? 'oui'/true
    1516                        explication => '', // message d'explication !
    1617                        attention => '',   // message d'attention !
  • _plugins_/champs_extras/interface/trunk/formulaires/editer_champ_extra.html

    r49107 r49131  
    1111                        <h3 class='legend'><:iextras:legend_declaration:></h3>
    1212                        <ul>
     13                       
    1314                        [(#SAISIE{input,champ,
    1415                                label=<:iextras:label_champ:>,
     
    2223                                disable_avec_post=#GET{disable},
    2324                                datas=[(#VAL|cextras_objets_valides_boucle_pour)]})]
    24 
     25[(#REM)
    2526                        [(#SAISIE{input,label,
    2627                                label=<:iextras:label_label:>,
    2728                                explication=<:iextras:precisions_pour_label:>,
    2829                                obligatoire=oui})]
     30]
     31
    2932                        [(#SAISIE{selection,saisie,
    3033                                label=<:iextras:label_saisie:>,
     
    3235                                explication=<:iextras:precisions_pour_saisie:>,
    3336                                datas=[(#VAL|cextras_types_formulaires)]})]
    34                                
     37
     38</ul>
     39[(#GENERER_SAISIES{#ENV{_saisies_defs}})]
     40
     41[(#REM)                 
    3542                        #SET{defaut,",-vide-
    36431,valeur 1
     
    5158                                label=<:iextras:label_obligatoire:>,
    5259                                obligatoire=oui})]
     60]
     61
     62                                       
     63                        <li class='fieldset'>
     64                                <fieldset>
     65                                        <h3 class='legend'><:iextras:legend_options_techniques:></h3>
     66                                        <ul>
     67                                        [(#SAISIE{radio,traitements,
     68                                                label=<:iextras:label_traitements:>,
     69                                                explication=<:iextras:precisions_pour_traitements:>,
     70                                                datas=#ARRAY{
     71                                                        '',<:iextras:radio_traitements_aucun:>,
     72                                                        '_TRAITEMENT_TYPO',<:iextras:radio_traitements_typo:>,
     73                                                        '_TRAITEMENT_RACCOURCIS',<:iextras:radio_traitements_raccourcis:>}})]
     74                                       
     75                                        [(#SAISIE{oui_non,rechercher,
     76                                                label=<:iextras:label_rechercher:>,
     77                                                explication=<:iextras:precisions_pour_rechercher:>})]
    5378                               
    54                         [(#SAISIE{oui_non,rechercher,
    55                                 label=<:iextras:label_rechercher:>,
    56                                 explication=<:iextras:precisions_pour_rechercher:>})]
     79                                        [(#SAISIE{input,sql,
     80                                                label=<:iextras:label_sql:>,
     81                                                obligatoire=oui,
     82                                                disable_avec_post=#GET{disable}})]
     83                                        </ul>
     84                                <fieldset>                             
     85                        </li>
    5786
    58                         [(#SAISIE{input,sql,
    59                                 label=<:iextras:label_sql:>,
    60                                 obligatoire=oui,
    61                                 disable_avec_post=#GET{disable}})]
     87[(#REM)
    6288
    63                         [(#SAISIE{radio,traitements,
    64                                 label=<:iextras:label_traitements:>,
    65                                 explication=<:iextras:precisions_pour_traitements:>,
    66                                 datas=#ARRAY{
    67                                         '',<:iextras:radio_traitements_aucun:>,
    68                                         '_TRAITEMENT_TYPO',<:iextras:radio_traitements_typo:>,
    69                                         '_TRAITEMENT_RACCOURCIS',<:iextras:radio_traitements_raccourcis:>}})]
    7089                       
    7190                        </ul>
     
    94113                        </ul>
    95114                </fieldset>     
     115]
    96116                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    97117                <!--extra-->
  • _plugins_/champs_extras/interface/trunk/formulaires/editer_champ_extra.php

    r49107 r49131  
    1616                'redirect' => $redirect,
    1717        ));
     18       
    1819        // valeur par defaut tout de meme sur sql et pour saisie
    19         if (!$valeurs['sql']) $valeurs['sql'] = "text NOT NULL DEFAULT ''";
     20        if (!$valeurs['sql']) {
     21                $valeurs['sql'] = "text NOT NULL DEFAULT ''";
     22        }
    2023
    2124        if (!$valeurs['saisie']) {
    2225                $valeurs['saisie'] = "input";
     26        }
     27       
     28        if ($new) {
     29                // donnees des options de la saisie, pour #GENERER_SAISIES
     30                $s = saisies_charger_infos( $valeurs['saisie'] );
     31                $valeurs['_saisies_defs']    = $s['options'];
     32
     33                // liste des champs (d'option) à interpreter et capturer pour CVT
     34                $valeurs = array_merge($valeurs, saisies_lister_valeurs_defaut( $valeurs['_saisies_defs'] ));
    2335        }
    2436       
     
    2840                $extra = iextra_get_extra($extra_id);
    2941                // si l'identifiant n'est pas trouve, c'est que le champ n'existe plus
    30                 // une ancienne url d'un marque page ?
    3142                if (!$extra) return false;
    32                
     43
     44                // donnees des options de la saisie, pour #GENERER_SAISIES
     45                $s = saisies_charger_infos( $extra->saisie );
     46                $valeurs['_saisies_defs']    = $s['options'];
     47
     48                // liste des champs (d'option) à interpreter et capturer pour CVT
     49                $valeurs = array_merge($valeurs, saisies_lister_valeurs_defaut( $valeurs['_saisies_defs'] ));
     50                               
    3351                $valeurs = array_merge($valeurs, $extra->toArray());
    3452
    3553                // chaque saisie_parametres devient un parametre a charger
    3654                $valeurs = array_merge($valeurs, $valeurs['saisie_parametres']);
     55                unset ($valeurs['saisie_parametres']);
    3756        }
     57
    3858        return $valeurs;
    3959}
     
    5070       
    5171        // pas de champ vide
    52         foreach(array('champ', 'table', 'saisie', 'label', 'sql') as $c) {
     72        foreach( array('champ', 'table', 'saisie', 'sql') as $c) {
    5373                if (!$extra[$c]) {
    5474                        $erreurs[$c] = _T('iextras:veuillez_renseigner_ce_champ');
     
    6383        }
    6484       
     85        // erreurs des options de saisies
     86        // donnees des options de la saisie
     87        $saisies_definitions = saisies_charger_infos( $valeurs['saisie'] );
     88        $erreurs = array_merge($erreurs, saisies_verifier( $saisies_definitions['options'] ));
     89       
    6590        // si nouveau champ, ou modification du nom du champ
    6691        // verifier qu'un champ homonyme
     
    7499        }
    75100        if ($new or $verifier) {       
    76                 $table = table_objet_sql($extra['table']);
    77                 $desc = sql_showtable($table);
     101                $desc = sql_showtable($extra['table']);
    78102                if (isset($desc['field'][$champ])) {
    79103                        $erreurs['champ'] = _T('iextras:champ_deja_existant');
     
    89113        $new = ($extra_id == 'new') ? ' ': '';
    90114               
    91         // recuperer les valeurs postees
     115        // recuperer les valeurs postees (de base)
    92116        $extra = iextras_post_formulaire();
    93117
    94         // cextra 1.4.0 : on separe les parametres des saisies
    95         // dans un tableau specifique
     118        // recuperer les valeurs postees des options de la saisie
     119        $description_saisie = saisies_charger_infos( $extra['saisie'] );
     120        $champs = saisies_lister_champs( $description_saisie['options'] );
    96121        $extra['saisie_parametres'] = array();
    97         foreach (array('explication', 'attention', 'class', 'li_class', 'datas') as $p) {
    98                 $extra['saisie_parametres'][$p] = $extra[$p];
     122        foreach ($champs as $p) {
     123                $extra['saisie_parametres'][$p] = _request($p);
    99124                unset($extra[$p]);
    100125        }
     
    152177
    153178// recuperer les valeurs postees par le formulaire
     179// des saisies (hors options fournies par le yaml de la saisie)
    154180function iextras_post_formulaire() {
    155181        $extra = array();
    156182        foreach(array(
    157                 'champ', 'table', 'saisie',
    158                 'label', 'sql',
    159                 'traitements',
    160                 'obligatoire',
    161                 'datas',
    162                 'rechercher',
    163                 'explication', 'attention', 'class', 'li_class'
     183                'champ', 'table', 'saisie', 'sql',
     184                'traitements', 'rechercher'
    164185        ) as $c) {
    165186                $extra[$c] = _request($c);
  • _plugins_/champs_extras/interface/trunk/prive/objets/contenu/champs_extras.html

    r49107 r49131  
    1313                        <li class='item'>
    1414                                [(#VALEUR{champ})]
    15                                 [<small>&mdash; (#VALEUR{label})</small>]
     15                                [<small>&mdash; (#VALEUR{saisie_parametres/label})</small>]
    1616                                [(<:iextras:info_saisie:> <tt>(#VALEUR{saisie})</tt>)]
    1717                                <ul class="actions">
Note: See TracChangeset for help on using the changeset viewer.