Changeset 112596 in spip-zone


Ignore:
Timestamp:
Dec 1, 2018, 11:38:27 PM (2 weeks ago)
Author:
root
Message:

yeah : var_mode=cache affiche l'état des sessionnements de toutes les noisettes et les éventuelles durées dynamiques (seulement) des caches

Location:
_plugins_/cachelab/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cachelab/trunk/inc/cachelab_invalideur.php

    r112591 r112596  
    120120                if (function_exists($f)) {
    121121                        if (!isset($page['contexte'][$arg])) {
    122                                 spip_log ("#CACHE avec squelette {$page['source']} et calcul durée avec $f mais pas de '$args' dans le contexte ".print_r($page['contexte'],1), "cachelab_erreur");
     122                                spip_log ("#CACHE avec squelette {$page['source']} et calcul de durée avec $f mais pas de '$arg' dans le contexte ".print_r($page['contexte'],1), "cachelab_erreur");
    123123                                return;
    124124                        }
    125125                        $duree = $f($page['contexte'][$arg]);
    126126                        spip_log ("#CACHE $f ($arg={$page['contexte'][$arg]}) renvoie : $duree s", "cachelab");
     127                        if (strpos(_request('var_mode'), 'cache') !== false)
     128                                echo "<div class='inclure_blocs cachelab_blocs'>Durée dynamique : $duree</div>";
    127129
    128130                        $page['duree'] = $duree;
     
    147149                if (function_exists($f)) {
    148150                        spip_log ("#CACHE appelle le filtre $f ($arg)", "cachelab");
    149                         $f($page, $arg);
    150                         // ici rien de plus, c'est le filtre qui fait ce qu'il veut
    151                         // et qui peut enregistrer le résulat
     151                        $toset = $f($page, $arg);
     152                        // Le filtre renvoie un booléen qui indique s'il faut mémoizer le cache
     153                        if ($toset)
     154                                $Memoization->set($fichier, $page, $cache['entete']['X-Spip-Cache']);
    152155                }
    153156                else
    154157                        spip_log ("#CACHE filtre : la fonction '$f' n'existe pas (arg='$arg')\n".print_r($page,1), "cachelab_erreur");
    155158        }
     159       
     160        if (strpos(_request('var_mode'), 'cache') !== false)
     161                echo '<div class="inclure_blocs cachelab_blocs">Sessionnement : '.cachelab_etat_sessionnement($page['invalideurs'], 'detaillé').'</div>';
    156162}
  • _plugins_/cachelab/trunk/paquet.xml

    r112591 r112596  
    22        prefix="cachelab"
    33        categorie="outil"
    4         version="0.7.0"
     4        version="0.8.0"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/cachelab/trunk/public/cachelab_balises.php

    r112592 r112596  
    240240// On indique l'état théorique du sessionnement.
    241241// Les valeurs possibles sont : oui, oui_login, oui_anonyme, non, anonyme
     242// Dans le cas où un assert n'est pas vérifié, un log est créé dans le fichier cachelab_assertsession
     243//
    242244// #CACHE{3600, session assert non} s'assure que les emplois sont non-sessionnés
    243245// #CACHE{session assert oui} s'assure que tous les emplois sont sessionnés
     
    248250// #CACHE{session log} loge l'état du sessionnement dans un cache dédié à ce squelette
    249251// #CACHE{session insert} insère à la fin du cache l'affichage de l'état du sessionnement
    250 // #CACHE{session echo} affiche l'état du sessionnement
     252// #CACHE{session echo} affiche l'état du sessionnement (comme var_mode=cache mais en permanence pour ce cache seulement)
    251253//
    252254function cachelab_filtre_session (&$cache, $totarg) {
     
    261263        $invalideurs = $cache['invalideurs'];
    262264
    263         if (!isset($invalideurs['session']))
    264                 $sess = 'non';
    265         elseif ($invalideurs['session'])
    266                 $sess = 'oui_login';
    267         else
    268                 $sess = 'oui_anonyme';
     265        $sess = cachelab_etat_sessionnement($invalideurs, 'avec_details');
    269266
    270267        switch ($func) {
     
    307304        }
    308305}
     306
     307function cachelab_etat_sessionnement ($invalideurs, $detail=false) {
     308        if (!isset($invalideurs['session']))
     309                return 'non';
     310        if (!$detail)
     311                return 'oui';
     312        elseif ($invalideurs['session'])
     313                return 'oui_login';
     314        return 'oui_anonyme';
     315}
     316
     317       
Note: See TracChangeset for help on using the changeset viewer.