diff --git a/ecrire/inc_charsets.php b/ecrire/inc_charsets.php index ed4e81789afe724bc3dbd1cfc08e1545e7aa2192..1e8213f0ac772a9c4a15646c08030649e67ea8d4 100644 --- a/ecrire/inc_charsets.php +++ b/ecrire/inc_charsets.php @@ -40,7 +40,7 @@ function load_charset ($charset = 'AUTO', $langue_site = 'AUTO') { else if ($charset == 'windows-1251') $charset = 'cp1251'; else if ($charset == 'windows-1256') $charset = 'cp1256'; - if (@file_exists($f = _DIR_RESTREINT.'charsets/'.$charset.'.php')) { + if ($f = find_in_path('charsets/'.$charset.'.php')) { include($f); return $charset; } else { diff --git a/ecrire/inc_layer.php b/ecrire/inc_layer.php index 57751b02317b9e5ffa1dc23f5acad1b37723c570..a538ed62fe00e266d307e95b4d6f72470668a79a 100644 --- a/ecrire/inc_layer.php +++ b/ecrire/inc_layer.php @@ -120,24 +120,24 @@ function verif_butineur() { eregi("Opera ([^\ ]*)", $browser_description, $match); $browser_name = "Opera"; $browser_version = $match[1]; - $browser_layer = (($browser_version < 7) ? '' : http_script('', _DIR_INCLUDE . 'layer.js','')); + $browser_layer = (($browser_version < 7) ? '' : http_script('', _DIR_RESTREINT . 'layer.js','')); $browser_barre = ($browser_version >= 8.5); } else if (eregi("msie", $browser_description)) { eregi("MSIE ([^;]*)", $browser_description, $match); $browser_name = "MSIE"; $browser_version = $match[1]; - $browser_layer = (($browser_version < 5) ? '' : http_script('', _DIR_INCLUDE . 'layer.js','')); + $browser_layer = (($browser_version < 5) ? '' : http_script('', _DIR_RESTREINT . 'layer.js','')); $browser_barre = ($browser_version >= 5.5); } else if (eregi("KHTML", $browser_description) && eregi("Safari/([^;]*)", $browser_description, $match)) { $browser_name = "Safari"; $browser_version = $match[1]; - $browser_layer = http_script('', _DIR_INCLUDE . 'layer.js',''); + $browser_layer = http_script('', _DIR_RESTREINT . 'layer.js',''); } else if (eregi("mozilla", $browser_name) AND $browser_version >= 5) { - $browser_layer = http_script('', _DIR_INCLUDE . 'layer.js',''); + $browser_layer = http_script('', _DIR_RESTREINT . 'layer.js',''); // Numero de version pour Mozilla "authentique" if (ereg("rv:([0-9]+\.[0-9]+)", $browser_description, $match)) $browser_rev = doubleval($match[1]); diff --git a/inc-cache.php3 b/inc-cache.php3 index 199bbfa3e59f5fc0d69a8a8b01b174a040ad5252..18c6c273b521a145fc1825c6d1ace33812b32248 100644 --- a/inc-cache.php3 +++ b/inc-cache.php3 @@ -63,7 +63,7 @@ function generer_nom_fichier_cache($contexte, $fond) { // Securite : est sur que c'est un cache function retire_cache($cache) { - if (preg_match('|^' . _DIR_CACHE . + if (preg_match('|^' . preg_quote(_DIR_CACHE) . "([0-9a-f]/)?([0-9]+/)?[^.][\-_\%0-9a-z]+\.[0-9a-f]+(\.gz)?$|i", $cache)) { // supprimer le fichier (de facon propre) @@ -140,8 +140,11 @@ function cache_valide_autodetermine($chemin_cache, $page, $date) { if (!$page) return 1; +var_dump($page['entetes']); +echo " - $chemin_cache - "; + if (strlen($duree = $page['entetes']['X-Spip-Cache'])) - return ($date + $duree > time()) ? 0 : $t; + return ($date + intval($duree) > time()) ? 0 : $t; // squelette ancienne maniere, on se rabat sur le vieux modele return cache_valide($chemin_cache, $contenu, $date); @@ -218,12 +221,10 @@ function creer_cache(&$page, $chemin_cache, $duree) { // Entrer dans la base les invalideurs calcules par le compilateur // (et supprimer les anciens) - // arbitrage entre ancien et nouveau modele de delai: - // primaute a la duree de vie de la page donnee a l'interieur de la page - if (preg_match('/max-age\s*=\s*(\d+)/', - $page['entetes']['Cache-Control'], - $r)) - $duree = $r[1]; + // arbitrage entre ancien et nouveau modele de delai: + // primaute a la duree de vie de la page donnee a l'interieur de la page + if (strlen($t = $page['entetes']['X-Spip-Cache'])) + $duree = intval($t); include_ecrire('inc_invalideur'); maj_invalideurs($chemin_cache, $page['invalideurs'], $duree);