source: spip-zone/_plugins_/elements/saisies/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: 1.5 KB
Line 
1[(#REM) Liste des éléments connus ]
2#SET{datas,#VAL|lister_elements_par_nom}
3
4[(#REM) defaut peut être une chaine (plusieurs valeurs ou pas) qu'on sait décomposer ]
5#SET{defaut, #ENV{defaut}|saisies_chaine2tableau}
6
7[(#REM) valeur doit être un tableau ! ]
8#SET{valeur, #ENV{valeur}|saisies_valeur2tableau}
9
10
11[(#REM) lorsque qu'on donne un 'disabled' qui est une chaine,
12        il faut la transformer en tableau. Ce tableau est vide si la chaine valait ''
13        sinon une clé 0 serait considérée disabled à tord
14]
15#SET{disabled,#ENV{disable}}
16[(#GET{disabled}|is_string|oui)
17        [(#GET{disabled}|strlen|non) #SET{disabled,#ARRAY} ]
18        [(#GET{disabled}|oui) #SET{disabled,#ARRAY|push{#GET{disabled}}} ]
19]
20<BOUCLE_checkbox(DATA){source table,#GET{datas}}>
21<div class="#ENV{choix,choix elements}">
22        <input type="checkbox" name="#ENV{nom}[]" class="checkbox" id="champ_[(#ENV{nom}|saisie_nom2classe)]_#COMPTEUR_BOUCLE"[ (#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)checked="checked"] value="#CLE"[(#CLE|in_array{#GET{disabled}}|oui) disabled="disabled"] />
23        <label for="champ_[(#ENV{nom}|saisie_nom2classe)]_#COMPTEUR_BOUCLE">
24                <span class='logo'>[(#CHEMIN_IMAGE{#ICON|sinon{element-24.png}}|balise_img)]</span>
25                <span class='texte'>
26                        <span class='nom'>
27                        [(#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)<strong>]
28                                #NOM
29                        [(#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)</strong>]
30                        </span>
31                        <span class='description'>#DESCRIPTION</span>
32                </span>
33        </label>
34</div>
35</BOUCLE_checkbox>
Note: See TracBrowser for help on using the repository browser.