Changeset 96101 in spip-zone


Ignore:
Timestamp:
Mar 20, 2016, 5:35:23 PM (3 years ago)
Author:
p@…
Message:

Optimisation : Ne calculer qu'une seul fois les objets de la rubrique

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/courtjus/trunk/courtjus_fonctions.php

    r96100 r96101  
    6464        }
    6565
    66         $objet_in_rubrique = courtjus_objet_in_rubrique($id_rubrique);
     66        $objets_in_rubrique = courtjus_objets_in_rubrique($id_rubrique);
    6767
    6868        // On récupère l'éventuel objet de redirection
    69         $objet = courtjus_trouver_objet($id_rubrique);
     69        $objet = courtjus_trouver_objet($id_rubrique, $objets_in_rubrique);
    7070
    7171        if ($objet) {
     
    7474                // Sinon, on cherche les enfant de la rubrique
    7575                // et on cherche un objet dedans
    76         } elseif (lire_config('courtjus/rubrique_enfant') and count($objet_in_rubrique) <= 0) {
     76        } elseif (lire_config('courtjus/rubrique_enfant') and count($objets_in_rubrique) <= 0) {
    7777
    7878                // On chercher parmit les enfants de la rubrique
     
    9595 * @return string
    9696 */
    97 function courtjus_trouver_objet_enfant($id_rubrique) {
     97function courtjus_trouver_objet_enfant($id_rubrique, $objets_in_rubrique) {
    9898
    9999        // Chercher les enfants de la rubrique
     
    102102        // On cherche un éventuel objet dans les premiers enfants
    103103        while (list($key,$enfant) = each($enfants) and !$objet) {
    104                 $objet = courtjus_trouver_objet($enfant);
     104                $objet = courtjus_trouver_objet($enfant, $objets_in_rubrique);
    105105
    106106                // S'il n'y a pas d'objet au premier niveau on lance la récurcivité
    107107                // pour trouver continuer de descendre dans la hiérachie.
    108108                if (!$objet) {
    109                         $objet = courtjus_trouver_objet_enfant($enfant);
     109                        $objet = courtjus_trouver_objet_enfant($enfant, $objets_in_rubrique);
    110110                }
    111111        }
     
    151151 * @return array
    152152 */
    153 function courtjus_objet_in_rubrique($id_rubrique) {
     153function courtjus_objets_in_rubrique($id_rubrique) {
    154154        // On va compter le nombre d'objet présent dans la rubrique
    155155        $tables = courtjus_trouver_objet_rubrique();
     
    213213 * @return string
    214214 */
    215 function courtjus_trouver_objet($id_rubrique) {
     215function courtjus_trouver_objet($id_rubrique, $objets_in_rubrique) {
    216216
    217217        // Aller chercher les filtres
     
    221221        // On récupère le configuration du plugin
    222222        $config = lire_config('courtjus');
    223 
    224         $objets_in_rubrique = courtjus_objet_in_rubrique($id_rubrique);
    225223
    226224        // Maintenant qu'on a le tableau des objets de la rubrique on compte
Note: See TracChangeset for help on using the changeset viewer.