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}})]
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}})]
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',''}})]
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}})]
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{!}})]
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{!}})]
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>]
44 [(#GET{niveau_max_txt}|=={infini}|non)
45 <:menus:entree_sur_n_niveaux{n=#GET{niveau_max_txt}}:
>
47 [(#GET{niveau_max_txt}|=={infini}|oui)
48 <:menus:entree_infini:>
50 [(#GET{id_secteur_exclus}|oui)
51 <:menus:info_secteur_exclus{id_secteur=#ENV{id_secteur_exclus}}:
>
53 [(#GET{id_rubriques_exclues}|oui)
54 <:menus:info_rubriques_exclues{id_rubriques=#ENV{id_rubriques_exclues}}:
>
56 [(#GET{sousrub_cond}|oui)
57 <br /><:menus:info_sousrub_cond:>
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})]
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:>]
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:>]
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>
82 <a href=
"#URL_RUBRIQUE">#TITRE
</a><//B_cpt_art
>[(#REM)
84 Doit-on descendre plus loin ?
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)
88 On commence par compter le nombre total de sous-rubriques (servira pour l'item
"Toutes les rubriques")
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>
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
105 <BOUCLE_test_classe_parent(CONDITION){si #GET{classe_parent}}
>[(#REM)
107 On commence par compter le nombre de sous-rubriques
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)
112 Puis on compte le nombre d'articles
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>
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}}]
120 </BOUCLE_test_classe_parent>[(#REM)
122 --------------------------- Fin Positionnement de la classe daddy
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>
129 </BOUCLE_sous_rubriques>[(#REM)
131 On affiche le lien vers le reste si on a dépassé le quota
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)
144 On commence par compter le nombre d'articles de la rubrique (servira pour l'item
"Tous les articles")
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}})
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>
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)
167 --------------------------- Fin Premier cas
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") ]
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 ]
182 [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
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>
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>]
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 ]
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)
206 On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles
")
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é
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>
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>