// mémo php : « continue resumes execution just before the closing curly bracket ( } ), and break resumes execution just after the closing curly bracket. »
// mémo php : « continue resumes execution just before the closing curly bracket ( } ),
// and break resumes execution just after the closing curly bracket. »
switch ($methode_chemin) {
case 'strpos':
foreach ($chemins as $unchemin)
if ($unchemin and (strpos($partie_cle, $unchemin) !== false))
case 'strpos':
foreach ($chemins as $unchemin) {
if ($unchemin and (strpos($partie_cle, $unchemin) !== false)) {
break 2; // trouvé : sort du foreach et du switch et poursuit le test des autres conditions
continue 2; // échec : passe à la $cle suivante
case 'regexp' :
if ($chemin and ($danslechemin = preg_match(",$chemin,i", $partie_cle)))
}
}
continue 2; // échec : passe à la $cle suivante
case 'regexp':
if ($chemin and ($danslechemin = preg_match(",$chemin,i", $partie_cle))) {
break; // trouvé : poursuit le test des autres conditions
continue 2; // échec : passe à la clé suivante
default :
spip_log ("Méthode '$methode_chemin' pas prévue pour le filtrage par le chemin", 'cachelab_erreur');
return;
}
continue 2; // échec : passe à la clé suivante
default:
spip_log("Méthode '$methode_chemin' pas prévue pour le filtrage par le chemin", 'cachelab_erreur');
$infos = $page['source']; // on prépare les infos supplémentaires
}
// Pour le calcul dynamique d'une durée de cache, la fonction user
// reçoit la *valeur* de l'une des valeurs de l'environnement (par défaut "date_creation")
@ -132,16 +136,18 @@ static $var_cache;
list ($f, $arg) = split_first_arg($f, 'date_creation');
if (function_exists($f)) {
if (!isset($page['contexte'][$arg])) {
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");
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');
return;
}
$duree = $f($page['contexte'][$arg],$page);
$duree = $f($page['contexte'][$arg],$page);
if (!is_null($duree)) {
if (!defined('LOG_BALISECACHE_DUREES_DYNAMIQUES') or LOG_BALISECACHE_DUREES_DYNAMIQUES)
@ -257,8 +263,9 @@ function retire_cache($cache) {
## mais ici elles ne font plus rien
##
if (!defined('LOG_INVALIDATION_CORE'))
define ('LOG_INVALIDATION_CORE', false);
if (!defined('LOG_INVALIDATION_CORE')) {
define('LOG_INVALIDATION_CORE', false);
}
// Supprimer les caches marques "x"
// A priori dans cette version la fonction ne sera pas appelee, car
@ -267,11 +274,13 @@ if (!defined('LOG_INVALIDATION_CORE'))
function retire_caches($chemin = '') {
if (isset($GLOBALS['meta']['invalider_caches'])) {
effacer_meta('invalider_caches');
if (LOG_INVALIDATION_CORE)
spip_log ("retire_caches($chemin = '') ne devrait pas être appelé car ['meta']['invalider_caches'] devrait être false", "invalideur_core_retire_caches_BUG");
if (LOG_INVALIDATION_CORE) {
spip_log("retire_caches($chemin = '') ne devrait pas être appelé car ['meta']['invalider_caches'] devrait être false", 'invalideur_core_retire_caches_BUG');
$ok = empty($invalideurs['session']); // oui_anonyme ou non
break;
case 'oui':
case 'oui':
$ok = isset($invalideurs['session']); // oui_anonyme ou oui_login
break;
default:
spip_log("Erreur de syntaxe : '$what' incorrect dans #CACHE{session $totarg}, il faut oui, oui_login, oui_anonyme, non ou anonyme", 'cachelab_erreur');
spip_log("Erreur de syntaxe : '$what' incorrect dans #CACHE{session $totarg}, il faut oui, oui_login, oui_anonyme, non ou anonyme", 'cachelab_erreur');
break 2;
}
if (!$ok) {
spip_log("$source : session n'est pas '$what'. invalideurs=".print_r($invalideurs,1), "cachelab_assertsession");
if (!$ok) {
spip_log("$source : session n'est pas '$what'. invalideurs=".print_r($invalideurs, 1), 'cachelab_assertsession');
if ($avec_echo) {
echo "<divclass='cachelab_blocs cachelab_assert'>
<h6>Sessionnement $sess devrait être $what</h6>
@ -305,34 +314,36 @@ function cachelab_filtre_session (&$cache, $totarg) {
}
break;
case 'insert':
case 'insert':
global $Memoization;
if (!isset($Memoization)) {
spip_log("Erreur dans $source : #CACHE{session insert} nécessite que le plugin Memoization soit activé", 'cachelab_erreur');
spip_log("Erreur dans $source : #CACHE{session insert} nécessite que le plugin Memoization soit activé", 'cachelab_erreur');
echo "<divclass='cachelab_blocs'><h6>Erreur dans $source : #CACHE{session insert} nécessite que le plugin Memoization soit activé</h6></div>";