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