Changeset 32312 in spip-zone


Ignore:
Timestamp:
Oct 23, 2009, 8:46:01 PM (11 years ago)
Author:
marcimat@…
Message:
  • On rend «interfaces» dépendant de saisies pour simplifier le formulaire qui vera certainement bientôt de nouveaux champs.
  • Début d'un essai d'exploration des saisies du plugin saisies, avec un define. (non fonctionnel)
Location:
_plugins_/champs_extras2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/champs_extras2/core/inc/cextras_gerer.php

    r32308 r32312  
    33
    44include_spip('inc/cextras');
     5
     6// mettre 'true' pour utiliser
     7// les saisies du plugin SAISIES
     8// et non celles de 'extra-saisies/'
     9// (experimental)
     10define('_CHAMPS_EXTRAS_SAISIES_EXTERNES', false);
    511
    612// retourne la liste des objets valides utilisables par le plugin
     
    3238}
    3339
     40
     41// formater pour les boucles pour 'type'=>'nom'
     42function cextras_objets_valides_boucle_pour(){
     43        $objets = array();
     44        foreach(cextras_objets_valides() as $objet) {
     45                $objets[$objet['type']] = $objet['nom'];
     46        }
     47        return $objets;
     48}
     49
     50
    3451// retourne la liste des types de formulaires de saisie
    3552// utilisables par les champs extras
     
    3754function cextras_types_formulaires(){
    3855        $types = array();
    39         foreach(find_all_in_path('extra-saisies/','.*\.html$') as $saisie) {
     56       
     57        if (_CHAMPS_EXTRAS_SAISIES_EXTERNES) {
     58                // plugin saisies (attention au chemin "/saisies/saisies/_base.html")
     59                $saisies = find_all_in_path('saisies/','/([^_/]{1}[^/]*)\.html$');
     60        } else { // saisies de ce plugin
     61                $saisies = find_all_in_path('extra-saisies/','.*\.html$');
     62        }
     63       
     64        foreach($saisies as $saisie) {
    4065                $type = basename($saisie,'.html');
    41                 $types[$type] = array(
    42                         'nom' => _T('cextras:type', array('type' => $type))
    43                 );
     66                $types[$type] = _T('cextras:type', array('type' => $type));
    4467        }
    4568        return $types;
  • _plugins_/champs_extras2/extensions/interface/formulaires/editer_champ_extra.html

    r32146 r32312  
    77                <input type='hidden' name='extra_id' value='#ENV{extra_id}' />
    88                <ul>
    9                 #SET{fl,iextras}
    10                 #SET{name,champ}
    11                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    12                 #SET{explications,#GET{fl}|concat{:caracteres_autorises_champ}|_T}
    13                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    14                 #SET{obli,obligatoire}
    15                 #SET{disabled,#ENV{new}|non}
    16             <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    17                 <label for="#GET{name}">#GET{label}</label>
    18                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    19                                 [<p class="explication">(#GET{explications})</p>]
    20                                 <input type='text' class='text' name='#GET{name}' id='#GET{name}' value="#ENV{#GET{name}}"[ (#GET{disabled})disabled='disabled'] />
    21                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    22             </li>
    23                 #SET{name,table}
    24                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    25                 #SET{explications,''}
    26                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    27                 #SET{obli,obligatoire}
    28                 #SET{disabled,#ENV{new}|non}
    29                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    30                 <label for="#GET{name}">#GET{label}</label>
    31                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    32                                 [<p class="explication">(#GET{explications})</p>]
    33                                 <select name='#GET{name}' id='#GET{name}'[ (#GET{disabled})disabled='disabled']>
    34                                         <BOUCLE_liste_objet(POUR){tableau (#VAL|cextras_objets_valides)}>
    35                                         <option value='[(#VALEUR|table_valeur{type})]'[ (#ENV{#GET{name}}|=={[(#VALEUR|table_valeur{type})]}|oui)selected='selected']>[(#VALEUR|table_valeur{nom})]</option>
    36                                         </BOUCLE_liste_objet>
    37                                 </select>
    38                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    39                 </li>
    40                 #SET{name,label}
    41                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    42                 #SET{explications,#GET{fl}|concat{:precisions_pour_label}|_T}
    43                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    44                 #SET{obli,obligatoire}
    45                 #SET{disabled,''}
    46                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    47                 <label for="#GET{name}">#GET{label}</label>
    48                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    49                                 [<p class="explication">(#GET{explications})</p>]
    50                                 <input type='text' class='text' name='#GET{name}' id='#GET{name}' value="#ENV{#GET{name}}" [ (#GET{disabled})disabled='disabled']/>
    51                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    52                 </li>
    53                 #SET{name,precisions}
    54                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    55                 #SET{explications,#GET{fl}|concat{:precisions_pour_precisions}|_T}
    56                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    57                 #SET{obli,''}
    58                 #SET{disabled,''}
    59                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    60                 <label for="#GET{name}">#GET{label}</label>
    61                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    62                                 [<p class="explication">(#GET{explications})</p>]
    63                                 <input type='text' class='text' name='#GET{name}' id='#GET{name}' value="#ENV{#GET{name}}" [ (#GET{disabled})disabled='disabled']/>
    64                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    65                 </li>
    66                 #SET{name,obligatoire}
    67                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    68                 #SET{explications,''}
    69                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    70                 #SET{obli,obligatoire}
    71                 #SET{disabled,''}
    72                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    73                 <label for="#GET{name}">#GET{label}</label>
    74                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    75                                 [<p class="explication">(#GET{explications})</p>]
    76                                 <div class="choix">
    77                                         <input type='radio' class='radio' name='#GET{name}' id='#GET{name}_oui'[ (#ENV{#GET{name}}|oui)checked='checked'][ (#GET{disabled})disabled='disabled'] value='oui' />
    78                                         <label for="#GET{name}_oui"><:item_oui:></label>                       
    79                                 </div>
    80                                 <div class="choix">
    81                                         <input type='radio' class='radio' name='#GET{name}' id='#GET{name}_non'[ (#ENV{#GET{name}}|non)checked='checked'][ (#GET{disabled})disabled='disabled'] value='' />
    82                                         <label for="#GET{name}_non"><:item_non:></label>                       
    83                                 </div>
    84                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    85                 </li>
    86                 #SET{name,rechercher}
    87                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    88                 #SET{explications,#GET{fl}|concat{:precisions_pour_rechercher}|_T}
    89                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    90                 #SET{obli,''}
    91                 #SET{disabled,''}
    92                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    93                 <label for="#GET{name}">#GET{label}</label>
    94                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    95                                 [<p class="explication">(#GET{explications})</p>]
    96                                 <div class="choix">
    97                                         <input type='radio' class='radio' name='#GET{name}' id='#GET{name}_oui'[ (#ENV{#GET{name}}|oui)checked='checked'][ (#GET{disabled})disabled='disabled'] value='oui' />
    98                                         <label for="#GET{name}_oui"><:item_oui:></label>                       
    99                                 </div>
    100                                 <div class="choix">
    101                                         <input type='radio' class='radio' name='#GET{name}' id='#GET{name}_non'[ (#ENV{#GET{name}}|non)checked='checked'][ (#GET{disabled})disabled='disabled'] value='' />
    102                                         <label for="#GET{name}_non"><:item_non:></label>                       
    103                                 </div>
    104                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    105                 </li>
    106                 #SET{name,type}
    107                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    108                 #SET{explications,#GET{fl}|concat{:precisions_pour_type}|_T}
    109                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    110                 #SET{obli,obligatoire}
    111                 #SET{disabled,''}
    112                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    113                 <label for="#GET{name}">#GET{label}</label>
    114                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    115                                 [<p class="explication">(#GET{explications})</p>]
    116                                 <select name='#GET{name}' id='#GET{name}'[ (#GET{disabled})disabled='disabled']>
    117                                         <BOUCLE_liste_types(POUR){tableau (#VAL|cextras_types_formulaires)}>
    118                                         <option value='#CLE'[ (#ENV{#GET{name}}|=={#CLE}|oui)selected='selected']>[(#VALEUR|table_valeur{nom})]</option>
    119                                         </BOUCLE_liste_types>
    120                                 </select>
    121                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    122                 </li>
    123                 #SET{name,enum}
    124                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    125                 #SET{explications,#GET{fl}|concat{:precisions_pour_enum}|_T}
    126                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    127                 #SET{obli,''}
    128                 #SET{disabled,''}
    129                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    130                 <label for="#GET{name}">#GET{label}</label>
    131                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    132                                 [<p class="explication">(#GET{explications})</p>]
    133                                 <textarea name="#GET{name}"
    134                                         [(#GET{disabled})disabled='disabled']>
    135 [(#ENV{#GET{name}}|sinon{',-vide-
     9                #SET{disable,#ENV{new}|?{'',oui}}
     10               
     11                [(#SAISIE{input,champ,
     12                        label=<:iextras:label_champ:>,
     13                        explication=<:iextras:caracteres_autorises_champ:>,
     14                        obligatoire=oui,
     15                        disable_avec_post=#GET{disable}})]
     16       
     17                [(#SAISIE{selection,table,
     18                        label=<:iextras:label_table:>,
     19                        obligatoire=oui,
     20                        disable_avec_post=#GET{disable},
     21                        datas=[(#VAL|cextras_objets_valides_boucle_pour)]})]
     22
     23                [(#SAISIE{input,label,
     24                        label=<:iextras:label_label:>,
     25                        explication=<:iextras:precisions_pour_label:>,
     26                        obligatoire=oui})]
     27
     28                [(#SAISIE{input,precisions,
     29                        label=<:iextras:label_precisions:>,
     30                        explication=<:iextras:precisions_pour_precisions:>})]
     31
     32                [(#SAISIE{oui_non,obligatoire,
     33                        label=<:iextras:label_obligatoire:>,
     34                        obligatoire=oui})]
     35
     36                [(#SAISIE{oui_non,rechercher,
     37                        label=<:iextras:label_rechercher:>,
     38                        explication=<:iextras:precisions_pour_rechercher:>})]
     39
     40                [(#SAISIE{selection,type,
     41                        label=<:iextras:label_type:>,
     42                        obligatoire=oui,
     43                        explication=<:iextras:precisions_pour_type:>,
     44                        datas=[(#VAL|cextras_types_formulaires)]})]
     45
     46                #SET{defaut,",-vide-
    136471,valeur 1
    137 2,valeur 2'})]</textarea>
    138                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    139                 </li>
    140                 #SET{name,sql}
    141                 #SET{label,#GET{fl}|concat{':label_',#GET{name}}|_T}
    142                 #SET{explications,''}
    143                 #SET{obli,obligatoire}
    144                 #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    145                 #SET{disabled,#ENV{new}|non}
    146                 <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    147                 <label for="#GET{name}">#GET{label}</label>
    148                                 [<span class='erreur_message'>(#GET{erreurs})</span>]
    149                                 [<p class="explication">(#GET{explications})</p>]
    150                                 <input type='text' class='text' name='#GET{name}' id='#GET{name}' value="#ENV{#GET{name}}"[ (#GET{disabled})disabled='disabled']/>
    151                                 [(#GET{disabled}|oui)<input type='hidden' name='#GET{name}' value="#ENV{#GET{name}}" />]
    152                 </li>
    153                                
     482,valeur 2"}
     49                [(#SAISIE{textarea,enum,
     50                        label=<:iextras:label_enum:>,
     51                        explication=<:iextras:precisions_pour_enum:>,
     52                        rows=3,
     53                        defaut=#GET{defaut}})]
     54
     55                [(#SAISIE{input,sql,
     56                        label=<:iextras:label_sql:>,
     57                        obligatoire=oui,
     58                        disable_avec_post=#GET{disable}})]
     59
    15460                </ul>
    15561                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
  • _plugins_/champs_extras2/extensions/interface/formulaires/editer_champ_extra.php

    r32146 r32312  
    1818        // valeur par defaut tout de meme sur sql et pour saisie
    1919        if (!$valeurs['sql']) $valeurs['sql'] = "text NOT NULL DEFAULT ''";
    20         if (!$valeurs['type']) $valeurs['type'] = "ligne";
     20        if (!$valeurs['type']) {
     21                $valeurs['type'] = _CHAMPS_EXTRAS_SAISIES_EXTERNES ? "input" : "ligne";
     22        }
    2123       
    2224        // si un extra est demande (pour edition)
  • _plugins_/champs_extras2/extensions/interface/plugin.xml

    r32231 r32312  
    33        <auteur>Matthieu Marcillaud, Fil</auteur>
    44        <licence>GNU/GPL</licence>
    5         <version>0.8.1</version>
     5        <version>0.9.0</version>
    66        <icon>images/iextras-64.png</icon>
    77        <description>
     
    1212        <necessite id="cextras" version="[0.8.3;]" />
    1313        <necessite id="spip_bonux" version="[1.2;]" />
     14        <necessite id="saisies" version="[1.6.0;]" />
     15       
    1416        <pipeline>
    1517                <nom>declarer_champs_extras</nom>
Note: See TracChangeset for help on using the changeset viewer.