diff --git a/inc-cache.php3 b/inc-cache.php3 index 831bea977125bdf96bf89769f760a38b951765ab..8fba13468cf30e6a97a8562db4d47ab845679a0c 100644 --- a/inc-cache.php3 +++ b/inc-cache.php3 @@ -92,7 +92,7 @@ function ramener_squelette($squelette) $f=fopen($phpfile, "wb"); fwrite($f,"<?php # $squelette pid: " . getmypid() ."\n"); fwrite($f,$r); - fwrite($f,'?>'); + fwrite($f,'?'.'>'); fclose($f); flock($lock, LOCK_UN); spip_log("Squelette $squelette: ($nom)" . strlen($r) . " octets, $timer ms"); @@ -183,7 +183,7 @@ function ramener_cache($cle, $calcul, $contexte, &$fraicheur) # - recherche (trop couteux de mémoriser une recherche précise) # - valeurs hors URL (i.e. POST) sauf Forum qui les traite à part - if ($GLOBALS['var_recherche']|| + if ($GLOBALS['recherche']|| ($HTTP_POST_VARS && !$GLOBALS['ajout_forum'])) { include_local('inc-calcul.php3'); @@ -230,9 +230,9 @@ function ramener_cache($cle, $calcul, $contexte, &$fraicheur) else flock($lock, LOCK_UN); # spip_log("obtient verrou $cle et libère le général"); - if ((!timeout(false,false)) OR - ($usefile && ($r = page_perenne($lock2, $file, $fraicheur)))) + if ($usefile AND ($r = page_perenne($lock2, $file, $fraicheur))) { + timeout(false,false); # spip_log("libère verrou $cle (page perenne)"); flock($lock2, LOCK_UN); return $r; diff --git a/inc-calcul.php3 b/inc-calcul.php3 index 0a5d259563974be2bc7e3f77723ecf62a587be91..0fd0d76688d7ef8f459dfb9743ac8a19a825b35c 100644 --- a/inc-calcul.php3 +++ b/inc-calcul.php3 @@ -84,11 +84,21 @@ function cherche_page_incluse($cache, $contexte) function calculer_page_globale($cache, $fond, $var_recherche) { global $spip_lang; + $contexte = $GLOBALS['HTTP_GET_VARS']; if ($GLOBALS['date']) $contexte['date'] = $contexte['date_redac'] = normaliser_date($GLOBALS['date']); else $contexte['date'] = $contexte['date_redac'] = date("Y-m-d H:i:s"); + + // Analyser les URLs personnalisees (inc-urls-...) + /* attention c'est assez sale */ + global $contexte; + $fichier_requete = $GLOBALS['REQUEST_URI']; + $fichier_requete = strtr($fichier_requete, '?', '&'); + $fichier_requete = eregi_replace('&(submit|valider|PHPSESSID|(var_[^=&]*)|recalcul)=[^&]*', '', $fichier_requete); + recuperer_parametres_url($fond, $fichier_requete); + /* fin du truc sale */ $id_rubrique_fond = 0; $lang = $contexte['lang']; // si inc-urls veut fixer la langue