source: spip-zone/_plugins_/elements/formulaires/choisir_elements.html @ 65744

Last change on this file since 65744 was 65744, checked in by marcimat@…, 9 years ago

Ajout d'un plugin nommé « Éléments »

L'idée un peu derrière est un peu un mélange entre le Noizetier et Composition.

On peut ici définir des éléments (sorte de noiZettes qui ont très peu de configurations - 0 ou 1 champ) qui pourront être liées sur les objets éditoriaux, au choix, mais au cas par cas : ce n'est pas «tous les articles» (comme le noizetier) mais sur cet article précis (comme composition).

Les éléments choisis sont sauvés dans une table spip_elements (objet, id_objet,bloc, elements) où le bloc (pour l'instant uniquement 'extra') pourrait être un nom de bloc Zpip, et 'elements' contient la sérialisation des informations des éléments actifs et de l'environnement à leur transmettre.

L'idée est que pour un site précis, un admin puisse choisir des blocs à ajouter sur certains articles. Par exemple ajouter un sondage particulier dans une colonne de l'article (c'est au webmestre actuellement d'ajouter l'inclusion 'inclure/elements' dans le squelette mais on pourrait imaginer que si Zpip est présent que ça le fasse tout seul)

Il n'y a volontairement qu'un élément dans le plugin (l'élément texte) pour être le plus simple possible. Cependant, c'est dans la configuration du plugin que l'on indique, parmis la liste des éléments disponibles (stockés dans le répertoire elements/) lesquels on autorise sur le site. De ce fait, même si un plugin fournit 54 éléments, le webmestre peut décider lesquels il autorise sur son site.

Par souci de compatibilité, le yaml décrivant un élément est exactement le même que celui décrivant une noiZette. Cela dit, une fois de plus, l'objectif n'est pas de fournir une liste de noizettes hautements configurables mais justement plutôt des blocs touts faits à ne pas configurer (hormis par exemple un identifiant d'objet à choisir).

File size: 2.8 KB
Line 
1[(#REM)
2
3 Affiche le éléments choisis et leur configuration et permet
4 de les ordonner, de les supprimer ou d'ajouter de nouveaux éléments
5
6]
7<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
8
9        <h3 class="titrem"><:elements:choisir_et_configurer_les_elements:></h3>
10
11        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
12        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
13        [<p class="notice">(#ENV*{erreurs/message_info})</p>]
14
15
16<script type='text/javascript'>
17(function($){
18$(document).ready(function(){
19        $('.formulaire_#FORM .description_element').each(function(){
20                $(this).find('.params').hide()
21                $(this).find('.entete').addClass('pointer').click(function(){
22                        $(this).parent().find('.params').toggle();
23                });
24        });
25});
26})(jQuery)
27</script>
28
29        <form method="post" action="#ENV{action}">
30        <div>
31                #ACTION_FORMULAIRE{#ENV{action}}
32                [(#REM)
33                        Boucle sur les éléments enregistrés
34                ]
35                <div class='selection_elements'>
36                        <h4><:elements:elements_choisis:></h4>
37                        <B_elements>
38                                <strong>[(#TOTAL_BOUCLE|singulier_ou_pluriel{elements:element_un,elements:elements_nb})]</strong>
39                                <ul>
40                        <BOUCLE_elements(DATA){source table,(#ENV**{elements}|elements_obtenir_desriptions)}>
41                                <li class='element'>
42                                        <div class='description_element'>
43                                                <div class='entete'>
44                                                        <span class='nom'
45                                                                [ title='(#DESCRIPTION|attribut_html)']
46                                                                [ style='background-image:url((#CHEMIN_IMAGE{#ICON}|sinon{#CHEMIN_IMAGE{element-24.png}}))']>
47                                                                #NOM
48                                                        </span>
49                                                </div>
50                                                <div class='params'>
51
52                                                        [<ul>(#GENERER_SAISIES{[(#VALEUR**
53                                                                |elements_saisies_preparer{#CLE})]})</ul>]
54
55                                                        <div class='nettoyeur'></div>
56
57                                                        <button type="submit" name="supprimer_element" value="element/#CLE"
58                                                                class="submit supprimer_element">
59                                                                [(#CHEMIN_IMAGE{element-del-24.png}|balise_img)]
60                                                                <span><:elements:enlever_cet_element:></span>
61                                                        </button>
62                                                </div>
63                                        </div>
64
65                                </li>
66                        </BOUCLE_elements>
67                                </ul>
68                        </B_elements>
69                </div>
70
71                [(#REM)
72                        Boucle sur les éléments enregistrés
73                ]
74                <B_liste>
75                <ul>
76                <li class="editer haut saisies_disponibles" id="attrapable">
77                        <label><:elements:cfg_label_ajouter_element:></label>
78                <BOUCLE_liste(DATA){source table,(#VAL|lister_elements_autorises_par_nom)}>
79                        <button type="submit" name="ajouter_element" value="#CLE"
80                                class="submit ajouter_element"[ title="(#DESCRIPTION|attribut_html)"]
81                                [style="background-image:url((#CHEMIN_IMAGE{#ICON}|sinon{#CHEMIN_IMAGE{formulaire-saisie-defaut.png}}))"]>
82                                <span>#NOM</span>
83                        </button>
84                </BOUCLE_liste>
85                </li>
86                </ul>
87                <B_liste>
88
89                <p class="boutons"><span class="image_loading">&nbsp;</span>
90                        <input type="submit" class="submit" value="<:bouton_enregistrer:>" />
91                </p>
92        </div>
93        </form>
94</div>
Note: See TracBrowser for help on using the repository browser.