Changeset 91586 in spip-zone


Ignore:
Timestamp:
Sep 2, 2015, 6:29:50 PM (6 years ago)
Author:
marcimat@…
Message:

Simplifier l'écriture des squelettes d'objets en calculant l'affichage ou non des items de liste.

On affichera la liste si :

  • ENV{liste} = tout (appel ajax ou cas qui peut apparaître en absence de javascript : on propose ce lien)
  • ou si la liste a moins d'éléments que le maximum autorisé par défaut (50) (définissable par la constante _PLAN_LIMITER_LISTES)

On affiche le conteneur indiquant le nombre d'élément dans un ul/li englobant si ENV{conteneur} != 'non' (sur appel ajax)

On utilise #PLAN_AFFICHER_LISTE pour calculer si oui ou non on affiche la liste.

Location:
_plugins_/plan/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/plan/trunk/action/plan.php

    r91524 r91586  
    2323        $env = array(
    2424                'id_rubrique' => intval(_request('id_rubrique')),
    25                 'liste' => true,
     25                'lister' => 'tout',
     26                'conteneur' => 'non'
    2627        );
     28
    2729        if ($statut = _request('statut')) {
    2830                $env['statut'] = $statut;
  • _plugins_/plan/trunk/plan_fonctions.php

    r91583 r91586  
    2121function plan_limiter_listes() {
    2222        return defined('_PLAN_LIMITER_LISTES') ? _PLAN_LIMITER_LISTES : 50;
     23}
     24
     25
     26/**
     27 * Compile la balise `#PLAN_AFFICHER_LISTE` qui, dans une boucle listant un objet
     28 * permet de savoir si on doit afficher la liste complète.
     29 *
     30 * Cela dépend de la variable d'environnement 'lister' et du nombre d'éléments dans la liste :
     31 * - si lister = tout, retourne vrai
     32 * - si le nombre d'élément ne dépasse pas _PLAN_LIMITER_LISTES, retourne vrai,
     33 * - sinon retourne faux.
     34 *
     35 * @param Pile $p
     36 * @return Pile
     37**/
     38function balise_PLAN_AFFICHER_LISTE_dist($p) {
     39
     40        // #GRAND_TOTAL
     41        $grand_total = charger_fonction('GRAND_TOTAL', 'balise');
     42        $p = $grand_total($p);
     43        $grand_total = $p->code;
     44
     45        // #ENV{lister}
     46        $lister = "(isset(\$Pile[0]['lister']) ? \$Pile[0]['lister'] : '')";
     47
     48        $p->code = "(($lister == 'tout') OR ($grand_total <= plan_limiter_listes()))";
     49
     50        return $p;
    2351}
    2452
  • _plugins_/plan/trunk/prive/squelettes/contenu/plan.html

    r91584 r91586  
    2121                ]
    2222        });
     23        $('body.plan #contenu #mytree_actions .pliage').html(
     24                "<a href=\"#\" onClick=\"jQuery('#racine').jstree('open_all'); return false;\"><:lien_tout_deplier:></a> | " +
     25                "<a href=\"#\" onClick=\"jQuery('#racine').jstree('close_all'); return false;\"><:lien_tout_replier:></a>"
     26        );
    2327});
    2428})(jQuery);
     
    2933
    3034        <span class='pliage'>
    31                 <a href="#" onClick="jQuery('#racine').jstree('open_all'); return false;"><:lien_tout_deplier:></a> |
    32                 <a href="#" onClick="jQuery('#racine').jstree('close_all'); return false;"><:lien_tout_replier:></a>
     35                [(#REM) Sera enlevé par le javascript ]
     36                [(#ENV{lister}|non)
     37                        <a href="[(#SELF|parametre_url{lister,tout})]"><:info_tout_afficher:></a>
     38                ]
    3339        </span>
    3440
     
    5864#BOITE_OUVRIR{'', simple}
    5965<div id="racine">
    60 <INCLURE{fond=prive/squelettes/inclure/plan2-rubriques, id_parent=0, statut=#GET{statut}, objet=#GET{objet}}>
     66<INCLURE{fond=prive/squelettes/inclure/plan2-rubriques, id_parent=0, statut=#GET{statut}, objet=#GET{objet}, lister}>
    6167</div>
    6268#BOITE_FERMER
  • _plugins_/plan/trunk/prive/squelettes/inclure/plan2-articles.html

    r91584 r91586  
    77        {pagination 1}>
    88        #SET{total,#GRAND_TOTAL}
     9        #SET{lister,#PLAN_AFFICHER_LISTE}
    910</BOUCLE_nb_items>
    1011
    11 [(#ENV{liste}|non)
     12[(#ENV{conteneur}|=={non}|non)
    1213        <ul class="menu-items articles">
    13                 <li id="articles-rubrique-#ID_RUBRIQUE" class="item group[ (#GET{total}|>{#VAL|plan_limiter_listes}|oui)jstree-closed]" data-jstree='{"type":"box_article", "objet":"article"}'>
     14                <li id="articles-rubrique-#ID_RUBRIQUE"
     15                        class="item group[ (#GET{lister}|non)jstree-closed]"
     16                        data-jstree='{"type":"box_article", "objet":"article"}'>
    1417                        <strong>[(#GET{total}|objet_afficher_nb{article})]</strong>
     18                        [(#GET{lister}|oui)
     19                                <ul class="menu-items articles">
     20                        ]
    1521]
    16 
    17                         <B_qq_items>
    18                         <ul class="menu-items articles">
    19                                 <BOUCLE_qq_items(ARTICLES)
    20                                         {id_rubrique} {par titre}
    21                                         {statut IN #SESSION{statut}|statuts_articles_visibles}
    22                                         {statut ?}
    23                                         {lang_select=non}
    24                                         {0,#VAL|plan_limiter_listes}
    25                                         {si #GET{total}|<={#VAL|plan_limiter_listes}}
    26                                         >
    27                                         <li id="article-#ID_ARTICLE" class="item" data-jstree='{"type":"article"}'>
    28                                                 <a href="[(#ID_ARTICLE|generer_url_entite{article})]"
    29                                                         [hreflang="(#ENV{lang}|=={#LANG}|non|?{#LANG})"]
    30                                                         title="[(#VAL{article}|objet_info{texte_objet}|_T) #ID_ARTICLE]">
    31                                                         [(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE}) ][(#TITRE|couper{80}|sinon{<:info_sans_titre:>})]
    32                                                 </a>
    33                                         </li>
    34                                 </BOUCLE_qq_items>
    35                         </ul>
    36                         </B_qq_items>
    37 
    38                         <BOUCLE_tous_items(ARTICLES)
     22                        <BOUCLE_items(ARTICLES)
    3923                                {id_rubrique} {par titre}
    4024                                {statut IN #SESSION{statut}|statuts_articles_visibles}
    4125                                {statut ?}
    4226                                {lang_select=non}
    43                                 {si #GET{total}|>{#VAL|plan_limiter_listes}}
    44                                 {si #ENV{liste}}
     27                                {si #GET{lister}}
    4528                                >
    4629                                <li id="article-#ID_ARTICLE" class="item" data-jstree='{"type":"article"}'>
     
    4932                                                title="[(#VAL{article}|objet_info{texte_objet}|_T) #ID_ARTICLE]">
    5033                                                [(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE}) ][(#TITRE|couper{80}|sinon{<:info_sans_titre:>})]
    51                                         </a
     34                                        </a>
    5235                                </li>
    53                         </BOUCLE_tous_items>
     36                        </BOUCLE_items>
    5437
    55 [(#ENV{liste}|non)
     38[(#ENV{conteneur}|=={non}|non)
     39                [(#GET{lister}|oui)
     40                        </ul>
     41                ]
    5642                </li>
    5743        </ul>
  • _plugins_/plan/trunk/prive/squelettes/inclure/plan2-syndic.html

    r91584 r91586  
    55        {pagination 1}>
    66        #SET{total,#GRAND_TOTAL}
     7        #SET{lister,#PLAN_AFFICHER_LISTE}
    78</BOUCLE_nb_items>
    89
    9 [(#ENV{liste}|non)
     10[(#ENV{conteneur}|=={non}|non)
    1011        <ul class="menu-items sites syndic">
    11                 <li id="syndic-rubrique-#ID_RUBRIQUE" class="item group[ (#GET{total}|>{#VAL|plan_limiter_listes}|oui)jstree-closed]" data-jstree='{"type":"box_site", "objet": "site"}'>
     12                <li id="syndic-rubrique-#ID_RUBRIQUE"
     13                        class="item group[ (#GET{lister}|non)jstree-closed]"
     14                        data-jstree='{"type":"box_site", "objet":"site"}'>
    1215                        <strong>[(#GET{total}|objet_afficher_nb{site})]</strong>
     16                        [(#GET{lister}|oui)
     17                                <ul class="menu-items syndic">
     18                        ]
    1319]
    1420
    15                         <B_qq_items>
    16                         <ul class="menu-items sites syndic">
    17                                 <BOUCLE_qq_items(SITES)
    18                                         {id_rubrique} {par nom_site}
    19                                         {statut==.*}{statut ?}
    20                                         {0,#VAL|plan_limiter_listes}
    21                                         {si #GET{total}|<={#VAL|plan_limiter_listes}}
    22                                         >
    23                                         <li id="site-#ID_SYNDIC" class="item" data-jstree='{"type":"site"}'>
    24                                                 <a href="[(#ID_SYNDIC|generer_url_entite{site})]"
    25                                                         title="[(#VAL{site}|objet_info{texte_objet}|_T) #ID_SYNDIC]">
    26                                                         [(#STATUT|puce_statut{site,#ID_SYNDIC,#ID_RUBRIQUE}) ][(#TITRE|couper{80}|sinon{<:info_sans_titre:>})]
    27                                                 </a>
    28                                         </li>
    29                                 </BOUCLE_qq_items>
    30                         </ul>
    31                         </B_qq_items>
    32 
    33 
    34                         <BOUCLE_tous_items(SITES)
     21                        <BOUCLE_items(SITES)
    3522                                {id_rubrique} {par nom_site}
    3623                                {statut==.*}{statut ?}
    37                                 {si #GET{total}|>{#VAL|plan_limiter_listes}}
    38                                 {si #ENV{liste}}
     24                                {si #GET{lister}}
    3925                                >
    4026                                <li id="site-#ID_SYNDIC" class="item" data-jstree='{"type":"site"}'>
     
    4430                                        </a>
    4531                                </li>
    46                         </BOUCLE_tous_items>
     32                        </BOUCLE_items>
    4733
    48 [(#ENV{liste}|non)
     34[(#ENV{conteneur}|=={non}|non)
     35                [(#GET{lister}|oui)
     36                        </ul>
     37                ]
    4938                </li>
    5039        </ul>
    5140]
    52 
    5341</B_nb_items>
Note: See TracChangeset for help on using the changeset viewer.