[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / menus_1 / menus / rubriques_completes.html
1 [(#REM) Rubrique de depart :
2 Si l'id_rubrique saisi vaut "courante" on va chercher l'id de la rubrique courante => env{env{id_rubrique}}
3 sinon, on utilise l'id saisi ]
4 [(#SET{id_rubrique, #ENV{id_rubrique}|=={courante}|?{#ENV**|unserialize|table_valeur{env}|table_valeur{id_rubrique},#ENV{id_rubrique}|intval}})]
5
6 [(#SET{id_secteur_exclus, #ENV{id_secteur_exclus}|?{#ENV{id_secteur_exclus}|explode{','},#ARRAY}})]
7 [(#SET{niveau_max_txt, #ENV{niveau}|intval|?{#ENV{niveau},infini}})]
8 [(#SET{niveau_max, #ENV{niveau}|intval|?{#ENV{niveau},1000}})]
9 [(#SET{sousrub_cond, #ENV{sousrub_cond}|=={oui}|?{'on',''}})]
10 [(#SET{rubriques_max_affichees, #ENV{rubriques_max_affichees}|intval|?{#ENV{rubriques_max_affichees},10000}})]
11 [(#SET{id_rubriques_exclues, #ENV{id_rubriques_exclues}|?{#ENV{id_rubriques_exclues}|explode{','},#ARRAY}})]
12 [(#SET{classe_parent, #ENV{classe_parent}})]
13
14 [(#SET{afficher_articles, #ENV{afficher_articles}|=={oui}|?{'on',''}})]
15 [(#SET{masquer_articles_uniques, #ENV{masquer_articles_uniques}|=={oui}|?{'on',''}})]
16 [(#SET{lien_direct_articles_uniques, #ENV{lien_direct_articles_uniques}|=={oui}|?{'on',''}})]
17
18 [(#SET{articles_max, #ENV{articles_max}|intval|?{#ENV{articles_max},10000}})]
19 [(#SET{articles_max_plus_un, #GET{articles_max}|plus{1}})]
20 [(#SET{articles_max_affiches, #ENV{articles_max_affiches}|intval|?{#ENV{articles_max_affiches},10000}})]
21
22 [(#REM) Tri des rubriques ]
23 [(#SET{tri_num, #ENV{tri,titre}|menus_critere_tri{num}})]
24 [(#SET{tri_alpha, #ENV{tri,titre}|menus_critere_tri{alpha}})]
25 [(#SET{tri_num_inverse,#GET{tri_num}|match{^!}|oui})]
26 [(#SET{tri_alpha_inverse,#GET{tri_alpha}|match{^!}|oui})]
27 [(#SET{tri_num,#GET{tri_num}|ltrim{!}})]
28 [(#SET{tri_alpha,#GET{tri_alpha}|ltrim{!}})]
29
30 [(#REM) Tri des articles ]
31 [(#SET{tri_num_articles, #ENV{tri_articles,titre}|menus_critere_tri{num}})]
32 [(#SET{tri_alpha_articles, #ENV{tri_articles,titre}|menus_critere_tri{alpha}})]
33 [(#SET{tri_num_articles_inverse,#GET{tri_num_articles}|match{^!}|oui})]
34 [(#SET{tri_alpha_articles_inverse,#GET{tri_alpha_articles}|match{^!}|oui})]
35 [(#SET{tri_num_articles,#GET{tri_num_articles}|ltrim{!}})]
36 [(#SET{tri_alpha_articles,#GET{tri_alpha_articles}|ltrim{!}})]
37
38
39 [(#ENV{appel_formulaire}|oui)
40 [(#SET{titre, #ENV{id_rubrique}|?{#ENV{id_rubrique}|=={courante}|?{<:menus:info_rubrique_courante:>,#INFO_TITRE{rubrique, #GET{id_rubrique}}}, <:info_racine_site:>}})]
41 [(#ENV{secteurlangue}non)<div class="titre">#GET{titre}</div>]
42 [(#ENV{secteurlangue}oui)<div class="titre"><:menus:nom_menu_secteurlangue:></div>]
43 <div class="infos">
44 [(#GET{niveau_max_txt}|=={infini}|non)
45 <:menus:entree_sur_n_niveaux{n=#GET{niveau_max_txt}}:>
46 ]
47 [(#GET{niveau_max_txt}|=={infini}|oui)
48 <:menus:entree_infini:>
49 ]
50 [(#GET{id_secteur_exclus}|oui)
51 <:menus:info_secteur_exclus{id_secteur=#ENV{id_secteur_exclus}}:>
52 ]
53 [(#GET{id_rubriques_exclues}|oui)
54 <:menus:info_rubriques_exclues{id_rubriques=#ENV{id_rubriques_exclues}}:>
55 ]
56 [(#GET{sousrub_cond}|oui)
57 <br /><:menus:info_sousrub_cond:>
58 ]
59 [(#GET{rubriques_max_affichees}|<{10000}|oui) / <:menus:info_rubriques_max_affichees{max=#GET{rubriques_max_affichees}}:>]
60 <br /><:menus:info_tri:> [(#GET{tri_num}) [(#GET{tri_num_inverse}|=={1}|oui) inverse] <:menus:info_tri_num:>][(#GET{tri_num}|et{GET{tri_alpha}}), ][(#GET{tri_alpha}) [(#GET{tri_alpha_inverse}|=={1}|oui) inverse] <:menus:info_tri_alpha:>]
61 [<br /><:menus:info_classe_parent:>(#GET{classe_parent})]
62
63 [(#GET{afficher_articles}|oui)
64 <br /><:menus:info_afficher_articles:>
65 [(#GET{articles_max}|<{10000}|oui) / <:menus:info_articles_max{max=#GET{articles_max}}:>]
66 [(#GET{articles_max_affiches}|<{10000}|oui) / <:menus:info_articles_max_affiches{max=#GET{articles_max_affiches}}:>]
67 [(#GET{masquer_articles_uniques}|oui) / <:menus:info_masquer_articles_uniques:>]
68 ]
69 <br /><:menus:info_tri_articles:> [(#GET{tri_num_articles}) [(#GET{tri_num__articles_inverse}|=={1}|oui) inverse] <:menus:info_tri_num:>][(#GET{tri_num_articles}|et{GET{tri_alpha_articles}}), ][(#GET{tri_alpha_articles}) [(#GET{tri_alpha_articles_inverse}|=={1}|oui) inverse] <:menus:info_tri_alpha:>]
70 </div>
71 ]
72 <BOUCLE_appel(CONDITION){si #ENV{appel_menu}|oui}>
73 <BOUCLE_rubriques(RUBRIQUES){id_parent=#GET{id_rubrique}}{id_secteur !IN #GET{id_secteur_exclus}}{id_rubrique !IN #GET{id_rubriques_exclues}}{par num #GET{tri_num}}{inverse #GET{tri_num_inverse}}{par #GET{tri_alpha}}{inverse #GET{tri_alpha_inverse}}{0,#GET{rubriques_max_affichees}}>
74 [(#SET{niveau_actuel,1})]<li class="menu-entree item[ (#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}})] rub#ID_RUBRIQUE">[(#REM)
75 si articles uniques masqués
76 faire le lien vers l'article quand il est seul dans la rubrique ?
77 ]<BOUCLE_cpt_art(ARTICLES){id_rubrique}{lang}{si #GET{masquer_articles_uniques}}{si #GET{lien_direct_articles_uniques}}> #SET{id_article_unique, #ID_ARTICLE}</BOUCLE_cpt_art>
78 [(#TOTAL_BOUCLE|>{1}|?{
79 <a href="#URL_RUBRIQUE">#TITRE</a>,
80 <a href="[(#URL_ARTICLE{#GET{id_article_unique}})]">#TITRE</a>
81 })]</B_cpt_art>
82 <a href="#URL_RUBRIQUE">#TITRE</a><//B_cpt_art>[(#REM)
83
84 Doit-on descendre plus loin ?
85
86 ][(#SET{cond,#GET{niveau_max}|>{#GET{niveau_actuel}}|et{#GET{sousrub_cond}|?{#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}},'on'}}})]<BOUCLE_test_niveau(CONDITION){si #GET{cond}}>[(#REM)
87
88 On commence par compter le nombre total de sous-rubriques (servira pour l'item "Toutes les rubriques")
89
90 ][(#SET{cpt_sousrub,0})]
91 <BOUCLE_cpt_sousrub(RUBRIQUES){id_parent}{id_rubrique !IN #GET{id_rubriques_exclues}}> </BOUCLE_cpt_sousrub>#SET{cpt_sousrub,#TOTAL_BOUCLE}</B_cpt_sousrub>
92 <B_sous_rubriques>
93 <ul class="menu-liste menu-items">
94 <BOUCLE_sous_rubriques(RUBRIQUES){id_parent}{id_rubrique !IN #GET{id_rubriques_exclues}}{par num #GET{tri_num}}{inverse #GET{tri_num_inverse}}{par #GET{tri_alpha}}{inverse #GET{tri_alpha_inverse}}{0,#GET{rubriques_max_affichees}}>
95 [(#SET{niveau_actuel,#GET{niveau_actuel}|plus{1}})][(#REM)
96 Doit-on descendre recursivement plus loin ?
97 ][(#SET{cond,#GET{niveau_max}|>{#GET{niveau_actuel}}|et{#GET{sousrub_cond}|?{#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}},'on'}}})]
98 <li class="menu-entree item[ (#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}})] rub#ID_RUBRIQUE">[(#REM)
99 ------------------------------------------------
100 Positionnement de la classe daddy sur le lien pour indiquer qu'il a un ul a suivre, un autre sous-menu a ouvrir
101 si on doit descendre plus loin et
102 - qu'il y a des sous-rubriques a afficher
103 - ou qu'il y a des articles a afficher et qu'on l'a demande
104 ][(#SET{class,''})]
105 <BOUCLE_test_classe_parent(CONDITION){si #GET{classe_parent}}>[(#REM)
106
107 On commence par compter le nombre de sous-rubriques
108
109 ][(#SET{cpt_sousrub_asuivre,0})]
110 <BOUCLE_cpt_sousrub_asuivre(RUBRIQUES){id_parent}{id_rubrique !IN #GET{id_rubriques_exclues}}> </BOUCLE_cpt_sousrub_asuivre>#SET{cpt_sousrub_asuivre,#TOTAL_BOUCLE}</B_cpt_sousrub_asuivre>[(#REM)
111
112 Puis on compte le nombre d'articles
113
114 ][(#SET{cpt_articles_asuivre,0})]
115 <BOUCLE_cpt_articles_asuivre(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_articles_asuivre>#SET{cpt_articles_asuivre,#TOTAL_BOUCLE}</B_cpt_articles_asuivre>
116 [(#GET{cond}|oui)
117 [(#GET{cpt_sousrub_asuivre}|oui) [(#SET{class,[(#GET{classe_parent})]})]]
118 [(#GET{afficher_articles}|et{#GET{cpt_articles_asuivre}|<={#GET{articles_max}}|oui|et{#GET{cpt_articles_asuivre}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}}}) #SET{class,#GET{classe_parent}}]
119 ]
120 </BOUCLE_test_classe_parent>[(#REM)
121
122 --------------------------- Fin Positionnement de la classe daddy
123
124 ]<a href="#URL_RUBRIQUE"[ class="(#GET{class})"]>#TITRE</a>
125 <BOUCLE_test_niveau2(CONDITION){si #GET{cond}}>
126 <BOUCLE_sous_sous(BOUCLE_sous_rubriques)></BOUCLE_sous_sous>
127 </BOUCLE_test_niveau2>
128 </li>
129 </BOUCLE_sous_rubriques>[(#REM)
130
131 On affiche le lien vers le reste si on a dépassé le quota
132
133 ][(#GET{cpt_sousrub}|>{#GET{rubriques_max_affichees}}|oui)
134 <li class="menu-entree item"><a class="suite" href="#URL_RUBRIQUE"><:menus:toutes_les_rubriques:></a></li>]
135 [(#REM) ------------------------------------------------
136 Premier cas de gestion de l'affichage des articles
137 Ce code est dupliqué dans les 2e et 3e cas, voir ci dessous (a un ul pres)
138 Il n'est pas possible en spip 2 d'utiliser inclure pour eviter la duplication
139 Cf http://comments.gmane.org/gmane.comp.web.spip.devel/60475
140 Ce doit etre le meme soucis qui fait que #URL_RUBRIQUE est trasnforme en
141 spip.php?page=rubrique&id_rubrique=2&connect=condition qu'on enleve avec le filtre parametre_url ]
142 <BOUCLE_test_articles_si_sousrub(CONDITION){si #GET{afficher_articles}}>[(#REM)
143
144 On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles")
145
146 ][(#SET{cpt,0})]
147 <BOUCLE_cpt_si_sousrub(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_si_sousrub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_si_sousrub>[(#REM)
148 On affiche les articles :
149 - S'il y en a moins que le max demandé
150 - ET - si on n'a pas demandé de masquage des articles uniques
151 - OU si le masquage des articles uniques est demandé et qu'il y en a plus d'un
152 ][(#SET{afficher,non})]
153 [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
154 #SET{afficher,oui}]
155 <BOUCLE_test_afficher_si_sousrub(CONDITION){si #GET{afficher}|=={oui}|oui}>
156 <BOUCLE_articles_si_sousrub(ARTICLES){id_rubrique}{lang}{par num #GET{tri_num_articles}}{inverse #GET{tri_num_articles_inverse}}{par #GET{tri_alpha_articles}}{inverse #GET{tri_alpha_articles_inverse}}{0,#GET{articles_max_affiches}}>
157 <li class="menu-entree item[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
158 <a href="#URL_ARTICLE">#TITRE</a>
159 </li>
160 </BOUCLE_articles_si_sousrub>
161 [(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
162 <li class="menu-entree item"><a class="suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
163 </B_articles_si_sousrub>
164 </BOUCLE_test_afficher_si_sousrub>
165 </BOUCLE_test_articles_si_sousrub>[(#REM)
166
167 --------------------------- Fin Premier cas
168
169 ]</ul>
170 </B_sous_rubriques>[(#REM)
171 ----------------------------------
172 Second cas de gestion de l'affichage des articles
173 ]<BOUCLE_test_articles_pas_de_sousrub(CONDITION){si #GET{afficher_articles}}>
174 [(#REM) On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles") ]
175 #SET{cpt,0}
176 <BOUCLE_cpt_pas_de_sousrub(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_pas_de_sousrub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_pas_de_sousrub>[(#REM)
177 On affiche les articles :
178 - S'il y en a moins que le max demandé"
179 - ET - si on n'a pas demandé de masquage des articles uniques
180 - OU si le masquage des articles uniques est demandé et qu'il y en a plus d'un ]
181 #SET{afficher,non}
182 [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
183 #SET{afficher,oui}]
184
185 <BOUCLE_test_afficher_pas_de_sousrub(CONDITION){si #GET{afficher}|=={oui}|oui}>
186 <B_articles_pas_de_sousrub>
187 <ul class="menu-liste menu-items">
188 <BOUCLE_articles_pas_de_sousrub(ARTICLES){id_rubrique}{lang}{par num #GET{tri_num_articles}}{inverse #GET{tri_num_articles_inverse}}{par #GET{tri_alpha_articles}}{inverse #GET{tri_alpha_articles_inverse}}{0,#GET{articles_max_affiches}}>
189 <li class="menu-entree item[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
190 <a href="#URL_ARTICLE">#TITRE</a>
191 </li>
192 </BOUCLE_articles_pas_de_sousrub>
193 [(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
194 <li class="menu-entree item"><a class="suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
195 </ul>
196 </B_articles_pas_de_sousrub>
197 </BOUCLE_test_afficher_pas_de_sousrub>
198 </BOUCLE_test_articles_pas_de_sousrub>
199 [(#REM) --------------------------- Fin Second cas ]
200 <//B_sous_rubriques>
201 </BOUCLE_test_niveau>
202 </li></BOUCLE_rubriques>[(#REM) ----------------------------------
203 troisieme cas de gestion de l'affichage des articles : les articles de la rubriques de départ
204 ]<BOUCLE_test_articles_pas_de_rub(CONDITION){si #GET{afficher_articles}}>[(#REM)
205
206 On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles")
207
208 ][(#SET{cpt,0})]<BOUCLE_cpt_pas_de_rub(ARTICLES){id_rubrique=#GET{id_rubrique}}{lang}> </BOUCLE_cpt_pas_de_rub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_pas_de_rub>
209 [(#REM) On affiche les articles :
210 - S'il y en a moins que le max demandé
211 - ET
212 - si on n'a pas demandé de masquage des articles uniques
213 - OU si le masquage des articles uniques est demandé et qu'il y en a plus d'un ]
214 [(#SET{afficher,non})][(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})#SET{afficher,oui}]
215 <BOUCLE_test_afficher_pas_de_rub(CONDITION){si #GET{afficher}|=={oui}|oui}>
216 <B_articles_pas_de_rub>
217 <BOUCLE_articles_pas_de_rub(ARTICLES){id_rubrique=#GET{id_rubrique}}{lang}{par num #GET{tri_num_articles}}{inverse #GET{tri_num_articles_inverse}}{par #GET{tri_alpha_articles}}{inverse #GET{tri_alpha_articles_inverse}}{0,#GET{articles_max_affiches}}>
218 <li class="menu-entree item[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
219 <a href="#URL_ARTICLE">#TITRE</a>
220 </li>
221 </BOUCLE_articles_pas_de_rub>[(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
222 <li class="menu-entree item"><a class="suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
223 </B_articles_pas_de_rub>
224 </BOUCLE_test_afficher_pas_de_rub>
225 </BOUCLE_test_articles_pas_de_rub>
226 </BOUCLE_appel>
227 #FILTRE{trim}