Changeset 30250 in spip-zone for _plugins_/saisies


Ignore:
Timestamp:
Jul 27, 2009, 12:04:16 AM (12 years ago)
Author:
marcimat@…
Message:

Des saisies géniales basées sur le sélecteur de rubrique/article de Bonux développé par Cédric.

Ces saisies «selecteur_article», «selecteur_rubrique» et «selecteur_rubrique_article» permettent respectivement (en fonction du paramètre «multiple») de selectionner :

  • un ou plusieurs articles
  • une ou plusieurs rubriques
  • un article ou rubrique, ou plusieurs articles ou rubriques.

Par défaut la sélection est unique ; ajouter «multiple=oui» pour une selection multiple.

Attention :

  • ce qu'envoient ces sélecteurs ne sont pas directement une liste d'identifiants mais un tableau de mixtures «objet|id_objet». Une fonction de SPIP Bonux «picker_selected» permet d'extraire les id_objet par type d'objet :
    // php
    $array_ids = picker_selected(_request('champ'), 'article');
    // spip
    [(#CHAMP|picker_selected{article})]
    
  • de la même manière, la valeur que reçoit ce selecteur doit être un tableau formé comme ce qui est soumis.
    $vals = array('article|3', 'article|5', 'article|2');
    

Exemple avec CFG :

<!-- autoriser=configurer -->
<!-- refus=<:cfg:refus_configuration_administrateur:> -->
<!-- nom=mpp -->
#CACHE{0}
<div class="formulaire_spip formulaire_configurer_mpp">

[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
	
<form method="post" action="#ENV{action}">
<div>
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
	[(#SAISIE{selecteur_article,article_une,
		label=<:plugin:article_en_une:>})] 
		
	[(#SAISIE{selecteur_article,articles_zoom,
		multiple=1,
		label=<:plugin:articles_en_zoom:>})] 
</ul>
<p class="boutons">
	<input type="reset" value="<:reset:>" class="reset" />
	<input type="submit" name="_cfg_ok" value="<:cfg:ok:>" class="submit" />
</p>
</div>
</form>
</div>

On utilise alors le résultat de cette configuration dans un squelette :

<BOUCLE_une(ARTICLES){id_article IN (#CONFIG{mpp/article_une}|picker_selected{article})}>
#TITRE<br />
</BOUCLE_une>
<hr />
<BOUCLE_zoom(ARTICLES){id_article IN (#CONFIG{mpp/articles_zoom}|picker_selected{article})}>
#TITRE<br />
</BOUCLE_zoom>
Location:
_plugins_/saisies
Files:
3 added
15 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/plugin.xml

    r30150 r30250  
    33    <auteur>Matthieu Marcillaud</auteur>
    44    <licence>&#169; 2009 GNU/GPL</licence>
    5     <version>1.1</version>
     5    <version>1.2</version>
    66    <etat>experimental</etat>
    77   
     
    1010    balise #SAISIE. Le HTML g&eacute;n&eacute;r&eacute; est compatible avec la nomenclature des formulaires
    1111    propos&eacute; par SPIP 2.0 et avec le plugin de configuration CFG.
     12   
     13    Un certain nombre de saisies utilisent pour fonctionner d'autres extensions.
     14    SPIP Bonux est ainsi indispensable pour les s&eacute;lecteurs ou les listes d'&eacute;l&eacute;ments
    1215    </description>
    1316   
  • _plugins_/saisies/saisies/_base.html

    r29925 r30250  
    1919    [(#SAISIE{input, couleur_foncee,
    2020                label=<:spa:couleur_foncee:>,
    21                 size=7
    22         })]
     21                size=7})]
    2322
    2423]
    25 
    2624[(#ENV{nom}|oui)
    2725#SET{erreurs,#ENV**{erreurs}|table_valeur{#ENV{nom}}}
    2826#SET{obligatoire,#ENV{obligatoire}|et{#ENV{obligatoire}|!={non}}|?{obligatoire,''}}
    29 <li class="editer_[(#ENV{nom})][ (#GET{obligatoire})][ (#GET{erreurs}|oui)erreur]">
     27#SET{li_class,#ENV{type_saisie}|substr{0,9}|=={selecteur}|?{selecteur_item,''}}
     28<li class="editer_[(#ENV{nom})][ (#GET{obligatoire})][ (#GET{erreurs}|oui)erreur][ (#GET{li_class})]">
    3029        <label for="champ_#ENV{nom}">[(#ENV*{label}|sinon{#ENV{nom}})][<span class='obligatoire'>(#GET{obligatoire}|et{#ENV{info_obligatoire}})#ENV*{info_obligatoire}</span>]</label>
    3130        [<span class='erreur_message'>(#GET{erreurs})</span>]
  • _plugins_/saisies/saisies/case.html

    r29925 r30250  
    1111                label=<:plugin:afficher_liste:>,
    1212                label_case=<:plugin:activer:>,
    13                 explication=<:plugin:explication_afficher_liste:>
    14         })]
     13                explication=<:plugin:explication_afficher_liste:>})]
    1514]
    1615<div class="choix">
  • _plugins_/saisies/saisies/checkbox.html

    r29925 r30250  
    1414                        cle1,valeur1,
    1515                        cle2,valeur2,
    16                         cle3,valeur3,
    17         }})]
     16                        cle3,valeur3}})]
    1817]
    1918[(#SET{defaut,[(#ENV{defaut}|is_array|?{#ENV{defaut},#ARRAY{0,#ENV{defaut}}})]})]
  • _plugins_/saisies/saisies/input.html

    r29925 r30250  
    1010        [(#SAISIE{input,couleur_foncee,
    1111                label=<:spa:couleur_foncee:>,
    12                 size=7
    13         })]
     12                size=7})]
    1413               
    1514]
  • _plugins_/saisies/saisies/mot.html

    r29925 r30250  
    77  Exemple d'appel :
    88        [(#SAISIE{mot, en_region,
    9                 label=<:plugin:en_region:>
    10         })]
     9                label=<:plugin:en_region:>})]
    1110]
    1211
  • _plugins_/saisies/saisies/oui_non.html

    r29925 r30250  
    1010        [(#SAISIE{oui_non, afficher_liste,
    1111                label=<:plugin:afficher_liste:>,
    12                 explication=<:plugin:explication_afficher_liste:>
    13         })]
     12                explication=<:plugin:explication_afficher_liste:>})]
    1413]
    1514<div class="choix">
  • _plugins_/saisies/saisies/pays.html

    r29925 r30250  
    99  Exemple d'appel :
    1010        [(#SAISIE{pays, pays,
    11                 label=<:plugin:info_pays:>
    12         })]
     11                label=<:plugin:info_pays:>})]
    1312]
    1413<select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"]>
  • _plugins_/saisies/saisies/police.html

    r29925 r30250  
    1010        [(#SAISIE{police, couleur_foncee,
    1111                label=<:spa:couleur_foncee:>,
    12                 obligatoire=non
    13         })]
     12                obligatoire=non})]
    1413]
    1514<select name="police" id="champ_#ENV{nom}"[ class="(#ENV{class})"]>
  • _plugins_/saisies/saisies/radio.html

    r29925 r30250  
    1313                        cle1,valeur1,
    1414                        cle2,valeur2,
    15                         cle3,valeur3,
    16         }})]
     15                        cle3,valeur3}})]
    1716]
    1817<BOUCLE_radio(POUR){tableau #ENV{datas}}>
  • _plugins_/saisies/saisies/secteur.html

    r29925 r30250  
    1212        [(#SAISIE{secteur,secteur_region,
    1313                label=<:plugin:secteur_region:>,
    14                 multiple=oui
    15         })]
     14                multiple=oui})]
    1615]
    1716<select name="#ENV{nom}[(#ENV{multiple}|?{[(#VAL{&#91;&#93;}|html_entity_decode)]})]" id="champ_#ENV{nom}"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple"]>
  • _plugins_/saisies/saisies/selection.html

    r29925 r30250  
    1414                        cle1,valeur1,
    1515                        cle2,valeur2,
    16                         cle3,valeur3,
    17         }})]
     16                        cle3,valeur3}})]
    1817]
    1918<select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"]>
  • _plugins_/saisies/saisies/selection_multiple.html

    r29925 r30250  
    1414                        cle1,valeur1,
    1515                        cle2,valeur2,
    16                         cle3,valeur3,
    17         }})]
     16                        cle3,valeur3}})]
    1817]
    1918<select name="#ENV{nom}[]" id="champ_#ENV{nom}" multiple="multiple"[ class="(#ENV{class})"]>
  • _plugins_/saisies/saisies/statuts_auteurs.html

    r29945 r30250  
    1111        [(#SAISIE{statuts_auteurs,statuts,
    1212                label=<:plugin:statuts_des_auteurs:>,
    13                 multiple=oui
    14         })]
     13                multiple=oui})]
    1514]
    1615
  • _plugins_/saisies/saisies/textarea.html

    r29925 r30250  
    99        [(#SAISIE{textarea, couleur_foncee,
    1010                label=<:spa:couleur_foncee:>,
    11                 obligatoire=non
    12         })]
     11                obligatoire=non})]
    1312]
    1413<textarea name="#ENV{nom}"[ class="(#ENV{class})"] id="champ_#ENV{nom}" [ rows="(#ENV{rows})"][ cols="(#ENV{cols})"]>[(#ENV{valeur}|sinon{#ENV{defaut}})]</textarea>
Note: See TracChangeset for help on using the changeset viewer.