From 6d85c9d33dde82feacdee9a19a09778eb19e8799 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sat, 21 Jan 2006 19:10:36 +0000 Subject: [PATCH] =?UTF-8?q?petits=20nettoyages,=20corrige=20le=20bug=20des?= =?UTF-8?q?=20URLs=20de=20redirection=20qui=20ne=20marchaient=20que=20pour?= =?UTF-8?q?=20les=20admins=20connect=C3=A9s=20(vu=20sur=20spip-contrib)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc-cache.php3 | 18 ++++++------- inc-public-global.php3 | 58 +++++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/inc-cache.php3 b/inc-cache.php3 index afb4429755..e0079dea80 100644 --- a/inc-cache.php3 +++ b/inc-cache.php3 @@ -207,21 +207,21 @@ function determiner_cache(&$use_cache, $contexte,$fond) { // Passage par reference juste par souci d'economie -function creer_cache(&$page, $chemin_cache, $duree) -{ +function creer_cache(&$page, $chemin_cache, $duree) { // Entrer dans la base les invalideurs calcules par le compilateur // (et supprimer les anciens) include_ecrire('inc_invalideur'); maj_invalideurs($chemin_cache, $page['invalideurs'], $duree); - // Enregistrer le fichier cache - - $r = ecrire_fichier($chemin_cache, - "<!-- " - . str_replace("\n", " ", serialize($page['signal'])) - . " -->\n" - . $page['texte']); + // Enregistrer le fichier cache qui contient + // 1) la carte d'identite de la page (ses "globals", genre id_article=7) + // 2) son contenu + $r = ecrire_fichier($chemin_cache, + "<!-- " + . str_replace("\n", " ", serialize($page['signal'])) + . " -->\n" + . $page['texte']); // Nouveau cache : creer un invalideur 't' fixant la date // d'expiration et la taille du fichier diff --git a/inc-public-global.php3 b/inc-public-global.php3 index df1147b97c..f82aa75bf8 100644 --- a/inc-public-global.php3 +++ b/inc-public-global.php3 @@ -70,29 +70,34 @@ function calcule_header_et_page ($fond) { function obtenir_page_ancienne ($chemin_cache, $fond, $inclusion=false) { - // - // Lire le fichier cache - // - lire_fichier ($chemin_cache, $page['texte']); - $lastmodified = max($lastmodified, @filemtime($chemin_cache)); - # spip_log ("cache $chemin_cache $lastmodified"); - - // - // Lire sa carte d'identite & fixer le contexte global - // - if (preg_match("/^<!-- ([^\n]*) -->\n(.*)/ms", $page['texte'], $match) - AND is_array($meta_donnees = unserialize($match[1]))) { - foreach ($meta_donnees as $var=>$val) + // + // Lire le fichier cache + // + lire_fichier ($chemin_cache, $page['texte']); + $lastmodified = max($lastmodified, @filemtime($chemin_cache)); + # spip_log ("cache $chemin_cache $lastmodified"); + + // + // Lire sa carte d'identite & fixer le contexte global + // + if (preg_match("/^<!-- ([^\n]*) -->\n/ms", $page['texte'], $match)) { + $meta_donnees = unserialize($match[1]); + if (is_array($meta_donnees)) { + foreach ($meta_donnees as $var=>$val) { $page[$var] = $val; + } + } - $page['texte'] = $match[2]; + $page['texte'] = substr($page['texte'], strlen($match[0])); - // Remplir les globals pour les boutons d'admin - if (!$inclusion AND is_array($page['contexte'])) - foreach ($page['contexte'] as $var=>$val) { - $GLOBALS[$var] = $val; - } + // Remplir les globals pour les boutons d'admin + if (!$inclusion AND is_array($page['contexte'])) { + foreach ($page['contexte'] as $var=>$val) { + $GLOBALS[$var] = $val; + } } + } + return $page; } @@ -151,14 +156,15 @@ function afficher_page_globale ($fond) { } else { // Obtenir la page - if (!$use_cache) - $page = obtenir_page_ancienne ($chemin_cache, $fond, false); - else { - include_local('inc-calcul'); - $page = calculer_page_globale ($chemin_cache, $fond); + if (!$use_cache) + $page = obtenir_page_ancienne ($chemin_cache, $fond, false); + else { + include_local('inc-calcul'); + $page = calculer_page_globale ($chemin_cache, $fond); - if ($chemin_cache) creer_cache($page, $chemin_cache, $use_cache); - } + if ($chemin_cache) + creer_cache($page, $chemin_cache, $use_cache); + } } if ($chemin_cache) $page['cache'] = $chemin_cache; -- GitLab