diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index 15decac98d4440625d9f807e0f22730d1ccf12c9..1686e0f15ab54e83d4ef36f5253ced3ccfdbd920 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -198,7 +198,7 @@ function stop_inclure($fragment) { } } // http://doc.spip.org/@inclure_page -function inclure_page($fond, $contexte_inclus, $cache_incluant='') { +function inclure_page($fond, $contexte_inclus) { global $lastmodified; // Si un fragment est demande et deja obtenu, inutile de continuer a inclure @@ -211,10 +211,9 @@ function inclure_page($fond, $contexte_inclus, $cache_incluant='') { // Si on a inclus sans fixer le critere de lang, on prend la langue courante if (!isset($contexte_inclus['lang'])) - $contexte_inclus['lang'] = ($langue_courante ? $langue_courante : $GLOBALS['spip_lang']); + $contexte_inclus['lang'] = $GLOBALS['spip_lang']; if ($contexte_inclus['lang'] != $GLOBALS['meta']['langue_site']) { - include_spip('inc/lang'); lang_select($lang); $lang_select = true; // pour lang_dselect en sortie } @@ -237,12 +236,14 @@ function inclure_page($fond, $contexte_inclus, $cache_incluant='') { $f = charger_fonction('parametrer', 'public'); $page = $f($fond, $contexte_inclus, $chemin_cache); $lastmodified = time(); - if ($chemin_cache) + if ($chemin_cache) $fcache($contexte_inclus, $use_cache, $chemin_cache, $page, $lastmodified); } if($lang_select) lang_dselect(); +#print_r($contexte_inclus);print_r($page);exit; + return $page; } diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php index 54b03ccd02f7326ad94be7275a77ed5c0110c393..ecdb1c1512067db30affafab2410deca22e3f718 100644 --- a/ecrire/public/cacher.php +++ b/ecrire/public/cacher.php @@ -262,12 +262,13 @@ function nettoyer_petit_cache($prefix, $duree = 300) { // > 0 s'il faut calculer la page et la mette en cache use_cache secondes // - chemin_cache qui est le chemin d'acces au fichier ou vide si pas cachable // - page qui est le tableau decrivant la page, si le cache la contenait -// - lastmodifed qui vaut la date de derniere modif du fichier. +// - lastmodified qui vaut la date de derniere modif du fichier. // http://doc.spip.org/@public_cacher_dist function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified) { if ($chemin_cache) return creer_cache($page, $chemin_cache, $use_cache); + // cas ignorant le cache car complement dynamique if ($_SERVER['REQUEST_METHOD'] == 'POST') { $use_cache = -1; @@ -308,20 +309,17 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la || @file_exists(_ACCESS_FILE_NAME))) { supprimer_fichier(_DIR_CACHE . $chemin_cache); } - // cas sans jamais de cache car calul d'un fond depuis l'espace prive - if ((_DIR_RESTREINT!=_DIR_RESTREINT_ABS)&& - (isset($_COOKIE['spip_session']) - || isset($_COOKIE['spip_admin']) )){ - supprimer_fichier(_DIR_CACHE . $chemin_cache); + + if ($ok = lire_fichier(_DIR_CACHE . $chemin_cache, $page)) { + $lastmodified = @file_exists(_DIR_CACHE . $chemin_cache) ? + @filemtime(_DIR_CACHE . $chemin_cache) : 0; + $page = restaurer_meta_donnees ($page); + $use_cache = cache_valide_autodetermine($chemin_cache, $page, $lastmodified); + if (!$use_cache) return; + } else { + $use_cache = 1; } - - $ok = lire_fichier(_DIR_CACHE . $chemin_cache, $page); - $lastmodified = @file_exists(_DIR_CACHE . $chemin_cache) ? - @filemtime(_DIR_CACHE . $chemin_cache) : 0; - $page = restaurer_meta_donnees ($page); - $use_cache = cache_valide_autodetermine($chemin_cache, $page, $lastmodified); - - if (!$use_cache AND $ok) return; + // tester si la base est dispo spip_connect(); diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index 4d7be3de630d456e98fc3b60850fc2374553544a..60e0793b3dd5c686361771f33165cc894e143d64 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -255,38 +255,37 @@ function sql_accepter_forum($id_article) { function public_parametrer_dist($fond, $local='', $cache='') { // distinguer le premier appel des appels par inclusion - if (!is_array($local)) { + if (!is_array($local)) { global $contexte; - // ATTENTION, gestion des URLs personnalises (propre etc): - // 1. $contexte est global car cette fonction le modifie. - // 2. $fond est passe par reference, pour la meme raison - // Bref, les URL dites propres ont une implementation sale. - // Interdit de nettoyer, faut assumer l'histoire. + // ATTENTION, gestion des URLs personnalises (propre etc): + // 1. $contexte est global car cette fonction le modifie. + // 2. $fond est passe par reference, pour la meme raison + // Bref, les URL dites propres ont une implementation sale. + // Interdit de nettoyer, faut assumer l'histoire. include_spip('inc/filtres'); // pour normaliser_date $contexte = calculer_contexte(); if (function_exists("recuperer_parametres_url")) { recuperer_parametres_url($fond, nettoyer_uri()); - // remettre les globales (bouton "Modifier cet article" etc) + // remettre les globales (bouton "Modifier cet article" etc) foreach ($contexte as $var=>$val) { if (substr($var,0,3) == 'id_') $GLOBALS[$var] = $val; } } - $local = $contexte; - } - - // si le champ chapo commence par '=' c'est une redirection. - - if ($fond == 'article' - AND $id_article = intval($local['id_article'])) { - if ($chapo = sql_chapo($id_article)) { - if (preg_match(',^=(\[->)?(.*?)[]]?$,', $chapo, $url)){ - include_spip('inc/texte'); - $url = calculer_url($url[2]); - if ($url) { // sinon les navigateurs pataugent - $url = texte_script(str_replace('&', '&', $url)); - return array('texte' => "<". - "?php redirige_par_entete('$url'); ?" . ">", - 'process_ins' => 'php'); + $local = $contexte; + + // si le champ chapo commence par '=' c'est une redirection. + if ($fond == 'article' + AND $id_article = intval($local['id_article'])) { + if ($chapo = sql_chapo($id_article)) { + if (preg_match(',^=(\[->)?(.*?)[]]?$,', $chapo, $url)){ + include_spip('inc/texte'); + $url = calculer_url($url[2]); + if ($url) { // sinon les navigateurs pataugent + $url = texte_script(str_replace('&', '&', $url)); + return array('texte' => "<". + "?php redirige_par_entete('$url'); ?" . ">", + 'process_ins' => 'php'); + } } } } @@ -327,7 +326,8 @@ function public_parametrer_dist($fond, $local='', $cache='') { join(", ", $local) .' ('.strlen($page['texte']).' octets)' ); - } else $page = array(); + } else + $page = array(); if ($GLOBALS['var_mode'] == 'debug') { include_spip('public/debug');