You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
menus/menus/rubriques_completes.html

229 lines
15 KiB
HTML

[(#REM) Rubrique de depart :
Si l'id_rubrique saisi vaut "courante" on va chercher l'id de la rubrique courante => env{env{id_rubrique}}
sinon, on utilise l'id saisi ]
[(#SET{id_rubrique, #ENV{id_rubrique}|=={courante}|?{#ENV**|unserialize|table_valeur{env}|table_valeur{id_rubrique},#ENV{id_rubrique}|intval}})]
[(#SET{id_secteur_exclus, #ENV{id_secteur_exclus}|?{#ENV{id_secteur_exclus}|explode{','},#ARRAY}})]
[(#SET{niveau_max_txt, #ENV{niveau}|intval|?{#ENV{niveau},infini}})]
[(#SET{niveau_max, #ENV{niveau}|intval|?{#ENV{niveau},1000}})]
[(#SET{sousrub_cond, #ENV{sousrub_cond}|=={oui}|?{'on',''}})]
[(#SET{rubriques_max_affichees, #ENV{rubriques_max_affichees}|intval|?{#ENV{rubriques_max_affichees},10000}})]
[(#SET{id_rubriques_exclues, #ENV{id_rubriques_exclues}|?{#ENV{id_rubriques_exclues}|explode{','},#ARRAY}})]
[(#SET{classe_parent, #ENV{classe_parent}})]
[(#SET{afficher_articles, #ENV{afficher_articles}|=={oui}|?{'on',''}})]
[(#SET{masquer_articles_uniques, #ENV{masquer_articles_uniques}|=={oui}|?{'on',''}})]
[(#SET{lien_direct_articles_uniques, #ENV{lien_direct_articles_uniques}|=={oui}|?{'on',''}})]
[(#SET{articles_max, #ENV{articles_max}|intval|?{#ENV{articles_max},10000}})]
[(#SET{articles_max_plus_un, #GET{articles_max}|plus{1}})]
[(#SET{articles_max_affiches, #ENV{articles_max_affiches}|intval|?{#ENV{articles_max_affiches},10000}})]
[(#REM) Tri des rubriques ]
[(#SET{tri_num, #ENV{tri,titre}|menus_critere_tri{num}})]
[(#SET{tri_alpha, #ENV{tri,titre}|menus_critere_tri{alpha}})]
[(#SET{tri_num_inverse,#GET{tri_num}|match{^!}|oui})]
[(#SET{tri_alpha_inverse,#GET{tri_alpha}|match{^!}|oui})]
[(#SET{tri_num,#GET{tri_num}|ltrim{!}})]
[(#SET{tri_alpha,#GET{tri_alpha}|ltrim{!}})]
[(#REM) Tri des articles ]
[(#SET{tri_num_articles, #ENV{tri_articles,titre}|menus_critere_tri{num}})]
[(#SET{tri_alpha_articles, #ENV{tri_articles,titre}|menus_critere_tri{alpha}})]
[(#SET{tri_num_articles_inverse,#GET{tri_num_articles}|match{^!}|oui})]
[(#SET{tri_alpha_articles_inverse,#GET{tri_alpha_articles}|match{^!}|oui})]
[(#SET{tri_num_articles,#GET{tri_num_articles}|ltrim{!}})]
[(#SET{tri_alpha_articles,#GET{tri_alpha_articles}|ltrim{!}})]
#SET{depth,#ENV{env/depth,0}}
[(#ENV{appel_formulaire}|oui)
[(#SET{titre, #ENV{id_rubrique}|?{#ENV{id_rubrique}|=={courante}|?{<:menus:info_rubrique_courante:>,#INFO_TITRE{rubrique, #GET{id_rubrique}}}, <:info_racine_site:>}})]
[(#ENV{secteurlangue}non)<div class="titre">#GET{titre}</div>]
[(#ENV{secteurlangue}oui)<div class="titre"><:menus:nom_menu_secteurlangue:></div>]
<div class="infos">
[(#GET{niveau_max_txt}|=={infini}|non)
<:menus:entree_sur_n_niveaux{n=#GET{niveau_max_txt}}:>
]
[(#GET{niveau_max_txt}|=={infini}|oui)
<:menus:entree_infini:>
]
[(#GET{id_secteur_exclus}|oui)
<:menus:info_secteur_exclus{id_secteur=#ENV{id_secteur_exclus}}:>
]
[(#GET{id_rubriques_exclues}|oui)
<:menus:info_rubriques_exclues{id_rubriques=#ENV{id_rubriques_exclues}}:>
]
[(#GET{sousrub_cond}|oui)
<br /><:menus:info_sousrub_cond:>
]
[(#GET{rubriques_max_affichees}|<{10000}|oui) / <:menus:info_rubriques_max_affichees{max=#GET{rubriques_max_affichees}}:>]
<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:>]
[<br /><:menus:info_classe_parent:>(#GET{classe_parent})]
[(#GET{afficher_articles}|oui)
<br /><:menus:info_afficher_articles:>
[(#GET{articles_max}|<{10000}|oui) / <:menus:info_articles_max{max=#GET{articles_max}}:>]
[(#GET{articles_max_affiches}|<{10000}|oui) / <:menus:info_articles_max_affiches{max=#GET{articles_max_affiches}}:>]
[(#GET{masquer_articles_uniques}|oui) / <:menus:info_masquer_articles_uniques:>]
]
<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:>]
</div>
]
<BOUCLE_appel(CONDITION){si #ENV{appel_menu}|oui}>
<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}}>
[(#SET{niveau_actuel,1})]<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_rubrique[ (#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}})] rub#ID_RUBRIQUE">[(#REM)
si articles uniques masqués
faire le lien vers l'article quand il est seul dans la rubrique ?
]<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>
[(#TOTAL_BOUCLE|>{1}|?{
<a href="#URL_RUBRIQUE" class="menu-items__lien">#TITRE</a>,
<a href="[(#URL_ARTICLE{#GET{id_article_unique}})]" class="menu-items__lien">#TITRE</a>
})]</B_cpt_art>
<a href="#URL_RUBRIQUE" class="menu-items__lien">#TITRE</a><//B_cpt_art>[(#REM)
Doit-on descendre plus loin ?
][(#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)
On commence par compter le nombre total de sous-rubriques (servira pour l'item "Toutes les rubriques")
][(#SET{cpt_sousrub,0})]
<BOUCLE_cpt_sousrub(RUBRIQUES){id_parent}{id_rubrique !IN #GET{id_rubriques_exclues}}> </BOUCLE_cpt_sousrub>#SET{cpt_sousrub,#TOTAL_BOUCLE}</B_cpt_sousrub>
<B_sous_rubriques>
<ul class="menu-liste menu-items menu-items"[ data-depth="(#GET{depth}|plus{1})"]>
<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}}>
[(#SET{niveau_actuel,#GET{niveau_actuel}|plus{1}})][(#REM)
Doit-on descendre recursivement plus loin ?
][(#SET{cond,#GET{niveau_max}|>{#GET{niveau_actuel}}|et{#GET{sousrub_cond}|?{#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}},'on'}}})]
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_rubrique[ (#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}})] rub#ID_RUBRIQUE">[(#REM)
------------------------------------------------
Positionnement de la classe daddy sur le lien pour indiquer qu'il a un ul a suivre, un autre sous-menu a ouvrir
si on doit descendre plus loin et
- qu'il y a des sous-rubriques a afficher
- ou qu'il y a des articles a afficher et qu'on l'a demande
][(#SET{class,''})]
<BOUCLE_test_classe_parent(CONDITION){si #GET{classe_parent}}>[(#REM)
On commence par compter le nombre de sous-rubriques
][(#SET{cpt_sousrub_asuivre,0})]
<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)
Puis on compte le nombre d'articles
][(#SET{cpt_articles_asuivre,0})]
<BOUCLE_cpt_articles_asuivre(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_articles_asuivre>#SET{cpt_articles_asuivre,#TOTAL_BOUCLE}</B_cpt_articles_asuivre>
[(#GET{cond}|oui)
[(#GET{cpt_sousrub_asuivre}|oui) [(#SET{class,[(#GET{classe_parent})]})]]
[(#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}}]
]
</BOUCLE_test_classe_parent>[(#REM)
--------------------------- Fin Positionnement de la classe daddy
]<a href="#URL_RUBRIQUE" class="menu-items__lien[ (#GET{class})]">#TITRE</a>
<BOUCLE_test_niveau2(CONDITION){si #GET{cond}}>
<BOUCLE_sous_sous(BOUCLE_sous_rubriques)></BOUCLE_sous_sous>
</BOUCLE_test_niveau2>
</li>
</BOUCLE_sous_rubriques>[(#REM)
On affiche le lien vers le reste si on a dépassé le quota
][(#GET{cpt_sousrub}|>{#GET{rubriques_max_affichees}}|oui)
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_rubrique"><a class="menu-items__lien suite" href="#URL_RUBRIQUE"><:menus:toutes_les_rubriques:></a></li>]
[(#REM) ------------------------------------------------
Premier cas de gestion de l'affichage des articles
Ce code est dupliqué dans les 2e et 3e cas, voir ci dessous (a un ul pres)
Il n'est pas possible en spip 2 d'utiliser inclure pour eviter la duplication
Cf http://comments.gmane.org/gmane.comp.web.spip.devel/60475
Ce doit etre le meme soucis qui fait que #URL_RUBRIQUE est trasnforme en
spip.php?page=rubrique&id_rubrique=2&connect=condition qu'on enleve avec le filtre parametre_url ]
<BOUCLE_test_articles_si_sousrub(CONDITION){si #GET{afficher_articles}}>[(#REM)
On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles")
][(#SET{cpt,0})]
<BOUCLE_cpt_si_sousrub(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_si_sousrub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_si_sousrub>[(#REM)
On affiche les articles :
- S'il y en a moins que le max demandé
- ET - si on n'a pas demandé de masquage des articles uniques
- OU si le masquage des articles uniques est demandé et qu'il y en a plus d'un
][(#SET{afficher,non})]
[(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
#SET{afficher,oui}]
<BOUCLE_test_afficher_si_sousrub(CONDITION){si #GET{afficher}|=={oui}|oui}>
<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}}>
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_article[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
<a href="#URL_ARTICLE" class="menu-items__lien">#TITRE</a>
</li>
</BOUCLE_articles_si_sousrub>
[(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_rubrique"><a class="menu-items__liens suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
</B_articles_si_sousrub>
</BOUCLE_test_afficher_si_sousrub>
</BOUCLE_test_articles_si_sousrub>[(#REM)
--------------------------- Fin Premier cas
]</ul>
</B_sous_rubriques>[(#REM)
----------------------------------
Second cas de gestion de l'affichage des articles
]<BOUCLE_test_articles_pas_de_sousrub(CONDITION){si #GET{afficher_articles}}>
[(#REM) On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles") ]
#SET{cpt,0}
<BOUCLE_cpt_pas_de_sousrub(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_pas_de_sousrub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_pas_de_sousrub>[(#REM)
On affiche les articles :
- S'il y en a moins que le max demandé"
- ET - si on n'a pas demandé de masquage des articles uniques
- OU si le masquage des articles uniques est demandé et qu'il y en a plus d'un ]
#SET{afficher,non}
[(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
#SET{afficher,oui}]
<BOUCLE_test_afficher_pas_de_sousrub(CONDITION){si #GET{afficher}|=={oui}|oui}>
<B_articles_pas_de_sousrub>
<ul class="menu-liste menu-items menu-items"[ data-depth="(#GET{depth}|plus{1})"]>
<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}}>
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_article[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
<a href="#URL_ARTICLE" class="menu-items__lien">#TITRE</a>
</li>
</BOUCLE_articles_pas_de_sousrub>
[(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_rubrique"><a class="menu-items__lien suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
</ul>
</B_articles_pas_de_sousrub>
</BOUCLE_test_afficher_pas_de_sousrub>
</BOUCLE_test_articles_pas_de_sousrub>
[(#REM) --------------------------- Fin Second cas ]
<//B_sous_rubriques>
</BOUCLE_test_niveau>
</li></BOUCLE_rubriques>[(#REM) ----------------------------------
troisieme cas de gestion de l'affichage des articles : les articles de la rubriques de départ
]<BOUCLE_test_articles_pas_de_rub(CONDITION){si #GET{afficher_articles}}>[(#REM)
On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles")
][(#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>
[(#REM) On affiche les articles :
- S'il y en a moins que le max demandé
- ET
- si on n'a pas demandé de masquage des articles uniques
- OU si le masquage des articles uniques est demandé et qu'il y en a plus d'un ]
[(#SET{afficher,non})][(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})#SET{afficher,oui}]
<BOUCLE_test_afficher_pas_de_rub(CONDITION){si #GET{afficher}|=={oui}|oui}>
<B_articles_pas_de_rub>
<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}}>
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_article[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
<a href="#URL_ARTICLE" class="menu-items__lien">#TITRE</a>
</li>
</BOUCLE_articles_pas_de_rub>[(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
<li class="menu-entree item menu-items__item menu-items__item_objet menu-items__item_rubrique"><a class="menu-items__lien suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
</B_articles_pas_de_rub>
</BOUCLE_test_afficher_pas_de_rub>
</BOUCLE_test_articles_pas_de_rub>
</BOUCLE_appel>
#FILTRE{trim}