Changeset 49141 in spip-zone


Ignore:
Timestamp:
Jun 28, 2011, 8:24:51 PM (10 years ago)
Author:
marcimat@…
Message:

La vue des champs extras passe aussi par saisies.

Location:
_plugins_/champs_extras
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/champs_extras/core/trunk/cextras_pipelines.php

    r49119 r49141  
    2222}
    2323
    24 
    25 // Calcule des elements pour le contexte de compilation
    26 // des squelettes de champs extras
    27 // en fonction des parametres donnes dans la classe ChampExtra
    28 function cextras_creer_contexte($c, $contexte_flux, $prefixe='') {
    29         $contexte = array();
    30         $nom_champ = $prefixe . $c->champ;
    31         $contexte['champ_extra'] = $nom_champ;
    32         $contexte['label_extra'] = _T($c->label);
    33         $contexte['precisions_extra'] = _T($c->precisions);
    34         if (isset($c->saisie_parametres['explication']) and $c->saisie_parametres['explication'])
    35                 $contexte['precisions_extra'] = _T($c->saisie_parametres['explication']);
    36         $contexte['obligatoire_extra'] = $c->obligatoire ? 'obligatoire' : '';
    37         $contexte['verifier_extra'] = $c->verifier;
    38         $contexte['verifier_options_extra'] = $c->verifier_options;
    39         $contexte['valeur_extra'] = $contexte_flux[$nom_champ];
    40         $contexte['enum_extra'] = $c->enum;
    41         $contexte['class_extra'] = $c->saisie_parametres['class']; // class CSS sur les champs (input, textarea, ...)
    42         // ajouter 'erreur_extra' dans le contexte s'il y a une erreur sur le champ
    43         if (isset($contexte_flux['erreurs'])
    44         and is_array($contexte_flux['erreurs'])
    45         and array_key_exists($nom_champ, $contexte_flux['erreurs'])) {
    46                 $contexte['erreur_extra'] = $contexte_flux['erreurs'][$nom_champ];
    47         }
    48 
    49         return array_merge($contexte_flux, $contexte);
    50 }
    5124
    5225
     
    261234                $contexte = cextra_quete_valeurs_extras($extras, $flux['args']['type'], $flux['args']['id_objet']);
    262235                $contexte = array_merge($flux['args']['contexte'], $contexte);
     236               
     237                $saisies = $valeurs = array();
     238               
     239                // on cree un tableau de saisie a partir de la liste des
     240                // champs extras dont on peut voir l'affichage
    263241                foreach ($extras as $c) {
    264242
     
    271249                                'contexte' => $contexte)))
    272250                        {
    273 
    274                                 $contexte = cextras_creer_contexte($c, $contexte);
    275 
    276                                 // calculer le bon squelette et l'ajouter
    277                                 if (!find_in_path(($f = 'saisies-vues/' . $c->saisie) . '.html')) {
    278                                         $flux['data'] .= recuperer_fond('prive/squelettes/saisie_vue_absente', array(
    279                                                 'saisie' => $c->saisie,
    280                                                 'valeur' => $contexte[$c->champ],
    281                                         ));
    282                                         extras_log("Vue de saisie non trouvee pour $c->saisie", true);
    283                                 } else {
    284                                         $contexte['valeur'] = $contexte[$c->champ];
    285                                         // ajouter les listes d'éléments possibles
    286                                         if (isset($c->saisie_parametres['datas']) and $c->saisie_parametres['datas']) {
    287                                                 $contexte['datas'] = cextras_data_array($c->saisie_parametres['datas']);
    288                                         }
    289 
    290                                         // lorsqu'on a 'datas', c'est qu'on est dans une liste de choix.
    291                                         // Champs Extra les stocke separes par des virgule.
    292                                         if ($contexte['datas']) {
    293                                                 // n'appliquer que si la saisie en a besoin !
    294                                                 $desc_saisies = saisies_lister_par_nom( saisies_charger_infos($c->saisie) );
    295                                                 if ($desc_saisies['datas']) {
    296                                                         $contexte['valeur'] = explode(',', $contexte['valeur']);
    297                                                 }       
    298                                         }
    299                                        
    300                                         $extra = recuperer_fond($f, $contexte);
    301                                         $extra = '<div class="champ ' . $c->champ.'">
    302                                                 <div class="label_extra">' . _T($c->label) . '</div>' . $extra . '</div>';
    303                                        
    304                                         $flux['data'] .= "\n".$extra;
    305                                 }
    306                         }
    307                 }
     251                                $options = $c->saisie_parametres;
     252                                $options['nom'] = $c-> champ;
     253                                $saisies[] = array('saisie' => $c->saisie, 'options' => $options);
     254                                # saisies_charger_infos($c->saisie);
     255                               
     256                                $valeurs[$c->champ] = $contexte[$c->champ];
     257                               
     258                        }
     259                }
     260
     261                $flux['data'] .= recuperer_fond('inclure/voir_saisies', array_merge($contexte, array(
     262                                        'saisies' => $saisies,
     263                                        'valeurs' => $valeurs,
     264                )));
     265
    308266        }
    309267        return $flux;
  • _plugins_/champs_extras/interface/trunk/formulaires/editer_champ_extra.html

    r49131 r49141  
    88
    99                #SET{disable,#ENV{new}|?{'',oui}}
    10                 <fieldset>
    11                         <h3 class='legend'><:iextras:legend_declaration:></h3>
    12                         <ul>
     10                <ul>
     11                        <li class='fieldset'>
     12                                <fieldset>
     13                                        <h3 class='legend'><:iextras:legend_declaration:></h3>
     14                                        <ul>
     15                                                [(#SAISIE{input,champ,
     16                                                        label=<:iextras:label_champ:>,
     17                                                        explication=<:iextras:caracteres_autorises_champ:>,
     18                                                        obligatoire=oui,
     19                                                        disable_avec_post=#GET{disable}})]
     20
     21                                                [(#SAISIE{selection,table,
     22                                                        label=<:iextras:label_table:>,
     23                                                        obligatoire=oui,
     24                                                        disable_avec_post=#GET{disable},
     25                                                        datas=[(#VAL|cextras_objets_valides_boucle_pour)]})]
     26
     27                                                [(#SAISIE{selection,saisie,
     28                                                        label=<:iextras:label_saisie:>,
     29                                                        obligatoire=oui,
     30                                                        explication=<:iextras:precisions_pour_saisie:>,
     31                                                        datas=[(#VAL|cextras_types_formulaires)]})]     
     32                                        </ul>
     33                                </fieldset>
     34                        </li>
    1335                       
    14                         [(#SAISIE{input,champ,
    15                                 label=<:iextras:label_champ:>,
    16                                 explication=<:iextras:caracteres_autorises_champ:>,
    17                                 obligatoire=oui,
    18                                 disable_avec_post=#GET{disable}})]
    19 
    20                         [(#SAISIE{selection,table,
    21                                 label=<:iextras:label_table:>,
    22                                 obligatoire=oui,
    23                                 disable_avec_post=#GET{disable},
    24                                 datas=[(#VAL|cextras_objets_valides_boucle_pour)]})]
    25 [(#REM)
    26                         [(#SAISIE{input,label,
    27                                 label=<:iextras:label_label:>,
    28                                 explication=<:iextras:precisions_pour_label:>,
    29                                 obligatoire=oui})]
    30 ]
    31 
    32                         [(#SAISIE{selection,saisie,
    33                                 label=<:iextras:label_saisie:>,
    34                                 obligatoire=oui,
    35                                 explication=<:iextras:precisions_pour_saisie:>,
    36                                 datas=[(#VAL|cextras_types_formulaires)]})]
    37 
    38 </ul>
    39 [(#GENERER_SAISIES{#ENV{_saisies_defs}})]
    40 
    41 [(#REM)                 
    42                         #SET{defaut,",-vide-
    43 1,valeur 1
    44 2,valeur 2"}
    45                         [(#SAISIE{textarea,datas,
    46                                 label=<:iextras:label_datas:>,
    47                                 explication=<:iextras:precisions_pour_datas:>,
    48                                 rows=3,
    49                                 defaut=#GET{defaut}})]
    50 
    51                         </ul>
    52                 </fieldset>
    53                
    54                 <fieldset>
    55                         <h3 class='legend'><:iextras:legend_options_techniques:></h3>   
    56                         <ul>
    57                         [(#SAISIE{oui_non,obligatoire,
    58                                 label=<:iextras:label_obligatoire:>,
    59                                 obligatoire=oui})]
    60 ]
    61 
    62                                        
     36                        [(#GENERER_SAISIES{#ENV{_saisies_defs}})]
     37                       
    6338                        <li class='fieldset'>
    6439                                <fieldset>
     
    8257                                                disable_avec_post=#GET{disable}})]
    8358                                        </ul>
    84                                 <fieldset>                             
     59                                </fieldset>                             
    8560                        </li>
     61                </ul>
    8662
    87 [(#REM)
    88 
    89                        
    90                         </ul>
    91                 </fieldset>
    92                
    93                 <fieldset>
    94                         <h3 class='legend'><:iextras:legend_options_saisies:></h3>     
    95                         <ul>
    96                         [(#SAISIE{input,explication,
    97                                 label=<:iextras:label_explication:>,
    98                                 explication=<:iextras:precisions_pour_explication:>})]
    99 
    100 
    101                         [(#SAISIE{input,attention,
    102                                 label=<:iextras:label_attention:>,
    103                                 explication=<:iextras:precisions_pour_attention:>})]
    104                                
    105                         [(#SAISIE{input,li_class,
    106                                 label=<:iextras:label_li_class:>,
    107                                 explication=<:iextras:precisions_pour_li_class:>})]
    108 
    109                         [(#SAISIE{input,class,
    110                                 label=<:iextras:label_class:>,
    111                                 explication=<:iextras:precisions_pour_class:>})]
    112 
    113                         </ul>
    114                 </fieldset>     
    115 ]
    11663                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    11764                <!--extra-->
Note: See TracChangeset for help on using the changeset viewer.