[PLUGINS] +les plugins de bases
[ptitvelo/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{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">#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"[ 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">#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">#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">#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>