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