Changeset 102418 in spip-zone


Ignore:
Timestamp:
Jan 23, 2017, 1:08:36 PM (2 years ago)
Author:
kent1@…
Message:

Réduction drastique du code généré

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/menus/trunk/menus/rubriques_completes.html

    r100728 r102418  
    7272<BOUCLE_appel(CONDITION){si #ENV{appel_menu}|oui}>
    7373        <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,#EVAL{1}|intval}
    75                 <li class="menu-entree item[ (#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}})] rub#ID_RUBRIQUE">
    76                         [(#REM) si articles uniques masqués
    77                                 faire le lien vers l'article quand il est seul dans la rubrique ?
    78                         ]
    79                         <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>
    80                                 [(#TOTAL_BOUCLE|>{1}|?{
    81                                         <a href="#URL_RUBRIQUE">#TITRE</a>
    82                                         ,
    83                                         <a href="[(#URL_ARTICLE{#GET{id_article_unique}})]">#TITRE</a>
    84                                 })]
    85                         </B_cpt_art>
    86                                 <a href="#URL_RUBRIQUE">#TITRE</a>
    87                         <//B_cpt_art>   
    88 
    89                         [(#REM) Doit-on descendre plus loin ? ]
    90                         [(#SET{cond,#GET{niveau_max}|>{#GET{niveau_actuel}}|et{#GET{sousrub_cond}|?{#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}},'on'}}})]
    91 
    92                         <BOUCLE_test_niveau(CONDITION){si #GET{cond}}>
    93                                 [(#REM) On commence par compter le nombre total de sous-rubriques (servira pour l'item "Toutes les rubriques")]
    94                                 #SET{cpt_sousrub,0}
     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>
     81                        })]</B_cpt_art>
     82                        <a href="#URL_RUBRIQUE">#TITRE</a><//B_cpt_art>[(#REM)
     83                       
     84                        Doit-on descendre plus loin ?
     85                       
     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)
     87                       
     88                                        On commence par compter le nombre total de sous-rubriques (servira pour l'item "Toutes les rubriques")
     89                               
     90                                ][(#SET{cpt_sousrub,0})]
    9591                                <BOUCLE_cpt_sousrub(RUBRIQUES){id_parent}{id_rubrique !IN #GET{id_rubriques_exclues}}> </BOUCLE_cpt_sousrub>#SET{cpt_sousrub,#TOTAL_BOUCLE}</B_cpt_sousrub>
    96 
    9792                                <B_sous_rubriques>
    9893                                        <ul class="menu-liste menu-items">
    9994                                <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}}>
    100                                         #SET{niveau_actuel,#GET{niveau_actuel}|plus{1}}
    101                                         [(#REM) Doit-on descendre recursivement plus loin ? ]
    102                                         [(#SET{cond,#GET{niveau_max}|>{#GET{niveau_actuel}}|et{#GET{sousrub_cond}|?{#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}},'on'}}})]
    103                                         <li class="menu-entree item[ (#ID_RUBRIQUE|menus_exposer{rubrique,#ENV*{env}})] rub#ID_RUBRIQUE">
    104 
    105                                                 [(#REM) ------------------------------------------------
    106                                                                 Positionnement de la classe daddy sur le lien pour indiquer qu'il a un ul a suivre, un autre sous-menu a ouvrir
    107                                                                 si on doit descendre plus loin et
    108                                                                                 - qu'il y a des sous-rubriques a afficher
    109                                                                                 - ou qu'il y a des articles a afficher et qu'on l'a demande ]
    110                   #SET{class,""}
    111                                                 <BOUCLE_test_classe_parent(CONDITION){si #GET{classe_parent}}>
    112                      [(#REM) On commence par compter le nombre de sous-rubriques ]
    113                      #SET{cpt_sousrub_asuivre,0}
    114                      <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>
    115                      [(#REM) Puis on compte le nombre d'articles ]
    116                      #SET{cpt_articles_asuivre,0}
    117                      <BOUCLE_cpt_articles_asuivre(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_articles_asuivre>#SET{cpt_articles_asuivre,#TOTAL_BOUCLE}</B_cpt_articles_asuivre>
    118                      [(#GET{cond}|oui)
    119                         [(#GET{cpt_sousrub_asuivre}|oui) #SET{class,#GET{classe_parent}}]
    120                         [(#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}}]
    121                      ]
    122                   </BOUCLE_test_classe_parent>
    123                                                 [(#REM) --------------------------- Fin Positionnement de la classe daddy ]
    124 
    125                                                 <a href="#URL_RUBRIQUE"[ class="(#GET{class})"]>#TITRE</a>
     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
     104                                                ][(#SET{class,''})]
     105                                                <BOUCLE_test_classe_parent(CONDITION){si #GET{classe_parent}}>[(#REM)
     106                                               
     107                                                        On commence par compter le nombre de sous-rubriques
     108                                                       
     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)
     111                                               
     112                                                        Puis on compte le nombre d'articles
     113                                               
     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>
     116                                                [(#GET{cond}|oui)
     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}}]
     119                                                ]
     120                                                </BOUCLE_test_classe_parent>[(#REM)
     121                                               
     122                                                        --------------------------- Fin Positionnement de la classe daddy
     123                                               
     124                                                ]<a href="#URL_RUBRIQUE"[ class="(#GET{class})"]>#TITRE</a>
    126125                                                <BOUCLE_test_niveau2(CONDITION){si #GET{cond}}>
    127                                                 <BOUCLE_sous_sous(BOUCLE_sous_rubriques)></BOUCLE_sous_sous>
     126                                                        <BOUCLE_sous_sous(BOUCLE_sous_rubriques)></BOUCLE_sous_sous>
    128127                                                </BOUCLE_test_niveau2>
    129128                                        </li>
    130                                 </BOUCLE_sous_rubriques>
    131                                         [(#REM) On affiche le lien vers le reste si on a d�pass� le quota ]
    132                                         [(#GET{cpt_sousrub}|>{#GET{rubriques_max_affichees}}|oui)
     129                                </BOUCLE_sous_rubriques>[(#REM)
     130                               
     131                                        On affiche le lien vers le reste si on a dépassé le quota
     132                                       
     133                                        ][(#GET{cpt_sousrub}|>{#GET{rubriques_max_affichees}}|oui)
    133134                                                <li class="menu-entree item"><a class="suite" href="#URL_RUBRIQUE"><:menus:toutes_les_rubriques:></a></li>]
    134 
    135135                                        [(#REM) ------------------------------------------------
    136136                                                        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)
     137                                                        Ce code est dupliqué dans les 2e et 3e cas, voir ci dessous (a un ul pres)
    138138                                                        Il n'est pas possible en spip 2 d'utiliser inclure pour eviter la duplication
    139139                                                        Cf http://comments.gmane.org/gmane.comp.web.spip.devel/60475
    140140                                                        Ce doit etre le meme soucis qui fait que #URL_RUBRIQUE est trasnforme en
    141141                                                        spip.php?page=rubrique&id_rubrique=2&connect=condition qu'on enleve avec le filtre parametre_url ]
    142 
    143                                         <BOUCLE_test_articles_si_sousrub(CONDITION){si #GET{afficher_articles}}>
    144                                                 [(#REM) On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles") ]
    145                                                 #SET{cpt,0}
    146                                                 <BOUCLE_cpt_si_sousrub(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_si_sousrub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_si_sousrub>
    147                        
    148                                                 [(#REM) 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}
     142                                        <BOUCLE_test_articles_si_sousrub(CONDITION){si #GET{afficher_articles}}>[(#REM)
     143                                       
     144                                                On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles")
     145                                               
     146                                                ][(#SET{cpt,0})]
     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})]
    153153                                                [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
    154154                                                        #SET{afficher,oui}]
    155 
    156155                                                <BOUCLE_test_afficher_si_sousrub(CONDITION){si #GET{afficher}|=={oui}|oui}>
    157156                                                        <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}}>
     
    164163                                                        </B_articles_si_sousrub>
    165164                                                </BOUCLE_test_afficher_si_sousrub>
    166                                         </BOUCLE_test_articles_si_sousrub>
    167                                         [(#REM) --------------------------- Fin Premier cas ]
    168                                         </ul>
    169                                 </B_sous_rubriques>
    170 
    171                                         [(#REM) ----------------------------------
    172                                                         Second cas de gestion de l'affichage des articles ]
    173                                         <BOUCLE_test_articles_pas_de_sousrub(CONDITION){si #GET{afficher_articles}}>
     165                                        </BOUCLE_test_articles_si_sousrub>[(#REM)
     166                                       
     167                                                --------------------------- Fin Premier cas
     168                                       
     169                                        ]</ul>
     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}}>
    174174                                                [(#REM) On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles") ]
    175175                                                #SET{cpt,0}
    176                                                 <BOUCLE_cpt_pas_de_sousrub(ARTICLES){id_rubrique}{lang}> </BOUCLE_cpt_pas_de_sousrub>#SET{cpt,#TOTAL_BOUCLE}</B_cpt_pas_de_sousrub>
    177 
    178                                                 [(#REM) On affiche les articles :
    179                                                                         - S'il y en a moins que le max demand�
    180                                                                         - ET    - si on n'a pas demand� de masquage des articles uniques
    181                                                                                         - OU si le masquage des articles uniques est demand� et qu'il y en a plus d'un ]
     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 ]
    182181                                                #SET{afficher,non}
    183                                                 [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})             
     182                                                [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})
    184183                                                        #SET{afficher,oui}]
    185184
     
    199198                                        </BOUCLE_test_articles_pas_de_sousrub>
    200199                                        [(#REM) --------------------------- Fin Second cas ]
    201 
    202200                                <//B_sous_rubriques>
    203201                        </BOUCLE_test_niveau>
    204                 </li>
    205         </BOUCLE_rubriques>
    206 
    207    [(#REM) ----------------------------------
    208          troisieme cas de gestion de l'affichage des articles : les articles de la rubriques de d�part ]
    209    <BOUCLE_test_articles_pas_de_rub(CONDITION){si #GET{afficher_articles}}>
    210       [(#REM) On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles") ]
    211       #SET{cpt,0}
    212       <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>
    213 
    214       [(#REM) On affiche les articles :
    215                - S'il y en a moins que le max demand�
    216                - ET     - si on n'a pas demand� de masquage des articles uniques
    217                      - OU si le masquage des articles uniques est demand� et qu'il y en a plus d'un ]
    218       #SET{afficher,non}
    219       [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}})               
    220          #SET{afficher,oui}]
    221       <BOUCLE_test_afficher_pas_de_rub(CONDITION){si #GET{afficher}|=={oui}|oui}>
    222          <B_articles_pas_de_rub>
    223          <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}}>
    224             <li class="menu-entree item[ (#ID_ARTICLE|menus_exposer{article,#ENV*{env}})]">
    225                <a href="#URL_ARTICLE">#TITRE</a>
    226             </li>
    227          </BOUCLE_articles_pas_de_rub>
    228             [(#GET{cpt}|>{#GET{articles_max_affiches}}|oui)
    229                <li class="menu-entree item"><a class="suite" href="[(#URL_RUBRIQUE|parametre_url{connect,''})]"><:menus:tous_les_articles:></a></li>]
    230          </B_articles_pas_de_rub>
    231       </BOUCLE_test_afficher_pas_de_rub>
    232    </BOUCLE_test_articles_pas_de_rub>
    233    [(#REM) --------------------------- Fin troisieme cas ]
    234 
     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)
     205               
     206                On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles")
     207               
     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é
     211                        - ET
     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>
     220                        </li>
     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>
    235226</BOUCLE_appel>
     227#FILTRE{trim}
Note: See TracChangeset for help on using the changeset viewer.