Changeset 91653 in spip-zone for _plugins_/plan


Ignore:
Timestamp:
Sep 5, 2015, 5:27:45 PM (6 years ago)
Author:
marcimat@…
Message:

Bon, en fait, sur les gros sites (2500 rubriques, 25000 articles), charger toute l'arborescence des rubriques dès le début est bien trop long.
On ne charge que les rubriques racines, et on charge leur contenu en ajax si on les déplie, comme c'était déjà fait pour les listes d'articles de plus de 50 entrées.
Cela permet d'afficher la page plan rapidement (même si évidemment l'essentiel du contenu n'est pas affiché !).

Location:
_plugins_/plan/branches/v1
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/plan/branches/v1/action/plan.php

    r91591 r91653  
    2121        }
    2222
     23        include_spip('base/objets');
     24        include_spip('inc/utils');
     25        $objet = table_objet(_request('objet'));
     26
    2327        $env = array(
    2428                'id_rubrique' => intval(_request('id_rubrique')),
    25                 'lister' => 'tout',
     29                // pour le dépliement d'une rubrique, ne pas lister le contenu récursivement
     30                'lister' => ($objet == 'rubriques') ? 'rubrique' : 'tout',
    2631                'conteneur' => 'non'
    2732        );
     
    3035                $env['statut'] = $statut;
    3136        }
    32 
    33         include_spip('base/objets');
    34         include_spip('inc/utils');
    35         $objet = table_objet(_request('objet'));
    3637
    3738        $fond = "prive/squelettes/inclure/plan-$objet";
  • _plugins_/plan/branches/v1/css/plan_prive.css.html

    r91599 r91653  
    4646}
    4747.plan .jstree .puce_objet { margin-right:2px; }
    48 .plan .jstree.drag .item .jstree-icon {
    49         cursor: move;
    50 }
     48.plan .jstree.drag .item .jstree-icon { cursor: move; }
     49.plan .jstree.drag .item .jstree-ocl { cursor: pointer; }
    5150<BOUCLE_icone_objets(DATA){source table, #REM|plan_lister_objets_rubrique}>
    5251.plan .jstree-icon.[(#VALEUR|objet_type)] {
  • _plugins_/plan/branches/v1/paquet.xml

    r91623 r91653  
    22        prefix="plan"
    33        categorie="navigation"
    4         version="1.2.7"
     4        version="1.2.8"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
  • _plugins_/plan/branches/v1/prive/javascript/spiptree.js

    r91624 r91653  
    7575                                // on fait un appel ajax pour obtenir la liste correspondant à l'objet souhaité, lorsque c'est demandé.
    7676                                else {
    77                                         var id_rubrique = node.parent.split('-')[1];
     77                                        var objet = node.data.jstree.objet;
     78                                        var id_rubrique = (objet == 'rubrique')
     79                                                ? node.id.split('-')[1]
     80                                                : node.parent.split('-')[1];
    7881                                        var params = {
    7982                                                "id_rubrique": id_rubrique,
    80                                                 "objet": node.data.jstree.objet
     83                                                "objet": objet
    8184                                        };
    8285                                        if (options.statut) {
     
    8992                                                cache: false,
    9093                                        }).done(function(data) {
    91                                                 cb(data);
     94                                                if (data !== undefined) {
     95                                                        cb(data);
     96                                                } else {
     97                                                        cb("");
     98                                                }
    9299                                        });
    93100                                }
  • _plugins_/plan/branches/v1/prive/squelettes/inclure/plan-rubriques.html

    r91591 r91653  
     1
     2#SET{lister,#ENV{lister}|=={rubrique}|?{'',#ENV{lister}}}
     3#SET{conteneur,#ENV{lister}|in_any{#LISTE{tout,rubrique}}|?{oui,non}}
     4
    15<B_rubriques>
    26        <ul class="menu-items rubriques">
    3                 <BOUCLE_rubriques(RUBRIQUES) {id_parent}{id_rubrique?} {par num titre,titre}{statut==.*}>
     7                <BOUCLE_rubriques(RUBRIQUES)
     8                        {id_parent ?}{id_rubrique?} {statut==.*}
     9                        {par num titre,titre}
     10                        {si #ENV{lister}|in_any{#LISTE{rubrique,tout}}}>
    411                        <li id="rubrique-#ID_RUBRIQUE" class="item">
    512                                <a
     
    1219                                <BOUCLE_objets(DATA){source table,#REM|plan_lister_objets_rubrique}{par cle}>
    1320                                        [(#ENV{objet}|non|ou{#ENV{objet}|=={#VALEUR}})
    14                                                 <INCLURE{fond=prive/squelettes/inclure/plan-#VALEUR,id_rubrique=#_rubriques:ID_RUBRIQUE, env}>
     21                                                <INCLURE{fond=prive/squelettes/inclure/plan-#VALEUR, id_rubrique=#_rubriques:ID_RUBRIQUE, env,
     22                                                        lister=#GET{lister}, conteneur=#GET{conteneur}}>
    1523                                        ]
    1624                                </BOUCLE_objets>
    17                                 <INCLURE{fond=prive/squelettes/inclure/plan-rubriques,id_parent=#ID_RUBRIQUE, id_rubrique='',env}>
     25                                <INCLURE{fond=prive/squelettes/inclure/plan-rubriques, id_parent=#ID_RUBRIQUE, id_rubrique='', env,
     26                                        lister=#GET{lister}, conteneur=#GET{conteneur}}>
    1827                        </li>
    1928                </BOUCLE_rubriques>
    2029        </ul>
    2130</B_rubriques>
     31<B_rubriques_a_deplier>
     32<ul class="menu-items rubriques">
     33<BOUCLE_rubriques_a_deplier(RUBRIQUES)
     34        {id_parent ?}{id_rubrique?} {statut==.*}
     35        {par num titre,titre}
     36        {si #ENV{lister}|in_any{#LISTE{rubrique,tout}}|non}>
     37        <li id="rubrique-#ID_RUBRIQUE"
     38                class="item jstree-closed"
     39                data-jstree='{"objet":"rubrique"}'>
     40                <a
     41                        href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]"
     42                        [hreflang="(#ENV{lang}|=={#LANG}|non|?{#LANG})"]
     43                        title="[(#VAL{rubrique}|objet_info{texte_objet}|_T) #ID_RUBRIQUE]">
     44                                <strong>[(#TITRE|couper{100}|sinon{<:info_sans_titre:>})]</strong>
     45                </a>
     46        </li>
     47</BOUCLE_rubriques_a_deplier>
     48</ul>
     49</B_rubriques_a_deplier>
Note: See TracChangeset for help on using the changeset viewer.