source: spip-zone/_plugins_/groupes_mots_arborescents/prive/objets/liste/mots_associer-select-unseul.html @ 63401

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

Plugin «Groupes de mots arborescents» de préfixe «gma» qui permet de faire des hiérarchies de groupes de mots.

Il ne fonctionne pour l'instant qu'avec la version trunk du plugin mots.

On peut donc créer une arborescence de groupes de mots, et mettre des mots dans chaque groupe.

  • Les propriétés d'un sous groupe de mots héritent automatiquement du groupe racine (et ne sont pas modifiable hors du groupe racine)
  • Le squelettes de liaison des mots clés sont sur surchargés pour ne lister que les groupes racines, et afficher dans les sélecteurs l'arborescence complète des groupes et mots.
  • On ne peut supprimer un groupe que si le groupe n'a pas de sous groupe

Par ailleurs, on utilise une implémentation de QueryPath? (http://querypath.org/) (non sans mal) pour modifier le code HTML du formulaire de groupes de mots.

Cette librairie quoi que très bien s'appuie sur la classe domDocument elle même s'appuyant sur libxml2 qui a un léger bug lors de l'import d'un texte HTML qui possède des CDATA dans des scripts : la librairie double alors ces échappements par des nouveaux ! Du coup, on les enlève avant d'utiliser la librairie (qui de toutes façons les remets).

Cette librairie pourrait être mise dans un plugin spécifique car très pratique une fois les soucis réglés (CDATA et passer le texte en unicode avant importation).

File size: 2.2 KB
Line 
1[(#REM)
2
3        Surcharge de mots/prive/objets/liste/mots_associer-select-unseul.html
4
5        Modfie le squelette comme suit :
6        - cherche un mot a remplacer dans toute la branche
7        - le groupe de ce mot dans le name, est celui de la racine (= celui arrivant de l'environnement)
8        - liste les mots du groupe de façon arborescente
9
10]#SET{selected,''}
11<select
12<BOUCLE_remplacer(MOTS){branche_groupe}{id_mot IN #ENV{exclus}}{0,1}>
13        #SET{expose,mot-#ID_MOT-#OBJET-#ID_OBJET}
14        name="remplacer_lien[mot-#ID_MOT-#OBJET-#ID_OBJET][groupe#ID_GROUPE_RACINE]"
15</BOUCLE_remplacer>
16        #SET{expose,#ENV{ajouter_lien}|table_valeur{groupe#ID_GROUPE_RACINE}}}
17        #SET{selected,#GET{expose}|oui}
18        name="ajouter_lien[groupe#ID_GROUPE]"
19<//B_remplacer>
20id="ajouter_lien-groupe#ID_GROUPE"
21        onchange="jQuery(this).siblings('input.submit').css('visibility','visible');"
22>
23<option value="x">&nbsp;</option>
24
25
26        <BOUCLE_mots_racine(MOTS){id_groupe}{par num titre, multi titre}>
27                #SET{value,mot-#ID_MOT-#OBJET-#ID_OBJET}
28                <option value="#GET{value}"[(#GET{value}|=={#GET{expose}}|oui)selected="selected" class="on"]>#TITRE</option>
29        </BOUCLE_mots_racine>
30
31        [(#REM) on encapsule juste pour la récursion ]
32        <BOUCLE_groupe(GROUPES_MOTS){id_groupe}>
33        [(#REM) Sous groupes et récursion ]
34        <BOUCLE_groupes(GROUPES_MOTS){id_parent}{par num titre, multi titre}>
35
36                [(#REM) au moins un mot dans la branche ]
37                <BOUCLE_compte(MOTS){branche_groupe}> </BOUCLE_compte>
38                <optgroup class="profondeur#GET{profondeur}" label="[(#VAL{ &nbsp; &nbsp; &nbsp;}|str_repeat{#GET{profondeur}})][(#TITRE|attribut_html)]">
39
40                        <BOUCLE_mots(MOTS){id_groupe}{par num titre, multi titre}>
41                                #SET{value,mot-#ID_MOT-#OBJET-#ID_OBJET}
42                                <option class="profondeur#GET{profondeur}" value="#GET{value}"[(#GET{value}|=={#GET{expose}}|oui)selected="selected" class="on"]>[(#VAL{ &nbsp; &nbsp;}|str_repeat{#GET{profondeur}})]#TITRE</option>
43                        </BOUCLE_mots>
44
45                </optgroup>
46                #SET{profondeur,#GET{profondeur}|plus{1}}
47                <BOUCLE_recursion(BOUCLE_groupes) />
48                #SET{profondeur,#GET{profondeur}|moins{1}}
49               
50                </B_compte>
51
52        </BOUCLE_groupes>
53        </BOUCLE_groupe>
54</select>
55<input type="submit" class="submit" name="groupe#ID_GROUPE" value="<:bouton_changer:>"[(#GET{selected}|non)style="visibility:hidden;"]/>
Note: See TracBrowser for help on using the repository browser.