From 9b9d8bc96ea592ae6ac7a5573e3c62ed28c33ab2 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 27 Mar 2006 09:16:23 +0000
Subject: [PATCH] =?UTF-8?q?Confiner=20les=20r=C3=A9f=C3=A9rences=20aux=20p?=
 =?UTF-8?q?arametres=20du=20code=20compil=C3=A9=20(ici=20Cache)=20aux=20fi?=
 =?UTF-8?q?chiers=20de=20ecrire/public.=20Et=20un=20peu=20de=20m=C3=A9nage?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/invalideur.php            | 10 ----------
 ecrire/public/balises.php            |  7 ++++---
 ecrire/public/compiler_squelette.php | 22 +++++++++++-----------
 ecrire/public/executer_squelette.php |  4 ++--
 ecrire/public/localiser_page.php     |  4 ++--
 5 files changed, 19 insertions(+), 28 deletions(-)

diff --git a/ecrire/inc/invalideur.php b/ecrire/inc/invalideur.php
index 4a162d93a7..8761232e88 100644
--- a/ecrire/inc/invalideur.php
+++ b/ecrire/inc/invalideur.php
@@ -19,16 +19,6 @@ function supprime_invalideurs() {
 	spip_query("DELETE FROM spip_caches");
 }
 
-
-// Compilateur : ajouter un invalideur "$type/$valeur" a un code donne
-// Attention le type est compile, pas forcement la valeur
-function ajouter_invalideur($type, $valeur, $code) {
-	return '
-	// invalideur '.$type.'
-	(!($Cache[\''.$type.'\']['.$valeur."]=1) ? '':\n\t" . $code .")\n";
-}
-
-
 //
 // Calcul des pages : noter dans la base les liens d'invalidation
 //
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index e8cad9531e..7b6fab5456 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -713,16 +713,17 @@ function balise_PARAMETRES_FORUM_dist($p) {
 // Noter l'invalideur de la page contenant ces parametres,
 // en cas de premier post sur le forum
 function code_invalideur_forums($p, $code) {
-	include_spip('inc/invalideur');
 	$type = 'id_forum';
 	$valeur = "\n\t\tcalcul_index_forum("
-		// Retournera 4 [$SP] mais force la demande du champ a MySQL
+		// Retournera 4 [$SP] mais force la demande du champ SQL
 		. champ_sql('id_article', $p) . ','
 		. champ_sql('id_breve', $p) .  ','
 		. champ_sql('id_rubrique', $p) .','
 		. champ_sql('id_syndic', $p) .  ")\n\t";
 
-	return ajouter_invalideur($type, $valeur, $code);
+	return '
+	// invalideur '.$type.'
+	(!($Cache[\''.$type.'\']['.$valeur."]=1) ? '':\n\t" . $code .")\n";
 }
 
 // Reference a l'URL de la page courante
diff --git a/ecrire/public/compiler_squelette.php b/ecrire/public/compiler_squelette.php
index 3086e8590d..5bec042483 100644
--- a/ecrire/public/compiler_squelette.php
+++ b/ecrire/public/compiler_squelette.php
@@ -659,8 +659,6 @@ function public_compiler_squelette_dist($squelette, $nom, $gram, $sourcefile) {
 	// Calcul du corps de toutes les fonctions PHP,
 	// en particulier les requetes SQL et TOTAL_BOUCLE
 	// de'terminables seulement maintenant
-	//  Les 4 premiers parame`tres sont passe's par re'fe'rence
-	// (les 1er et 3e pour modif, les 2 et 4 pour gain de place)
 
 	foreach($boucles as $id => $boucle) {
 		// appeler la fonction de definition de la boucle
@@ -693,7 +691,7 @@ function public_compiler_squelette_dist($squelette, $nom, $gram, $sourcefile) {
 		.preg_replace(',\.html$,', '', $sourcefile)
 		."] ".creer_repertoire(_DIR_CACHE, 'skel')."$nom.php");
 
-	$squelette_compile = "<"."?php
+	$code = "<"."?php
 /*
  * Squelette : $sourcefile
  * Date :      ".http_gmoddate(@filemtime($sourcefile))." GMT
@@ -701,23 +699,25 @@ function public_compiler_squelette_dist($squelette, $nom, $gram, $sourcefile) {
  * " . (!$boucles ?  "Pas de boucle" :
 	("Boucles :   " . join (', ', array_keys($boucles)))) ."
  */ " .
-	  // ATTENTION, le calcul du l'expression $corps affectera $Cache
-	  // ==> l'affecter a une variable auxiliaire avant de referencer $Cache
-	  $code . "
+	  $code . '
 
 //
-// Fonction principale du squelette $sourcefile
+// Fonction principale du squelette ' . $sourcefile ."
 //
-function $nom (\$Cache, \$Pile, \$doublons=array(), \$Numrows='', \$SP=0) {
-	\$page = $corps;
+function " . $nom . '($Cache, $Pile, $doublons=array(), $Numrows=array(), $SP=0) {
+	$page = ' .
+	// ATTENTION, le calcul du l'expression $corps affectera 
+	// c'est pourquoi on l'affecte a cette variable auxiliaire
+	// avant de referencer $Cache
+	$corps . ";
 	return analyse_resultat_skel('$nom', \$Cache, \$page);
 }
 
 ?".">";
 
 	if ($GLOBALS['var_mode'] == 'debug')
-	  squelette_debug_compile($nom, $sourcefile, $squelette_compile, $squelette);
-	return $squelette_compile;
+		squelette_debug_compile($nom, $sourcefile, $code, $squelette);
+	return $code;
 
 }
 
diff --git a/ecrire/public/executer_squelette.php b/ecrire/public/executer_squelette.php
index dbab42d42d..47b3b4baa5 100644
--- a/ecrire/public/executer_squelette.php
+++ b/ecrire/public/executer_squelette.php
@@ -435,7 +435,7 @@ function sql_auteurs($id_article, $table, $id_boucle, $serveur='') {
 	return (!$auteurs) ? "" : join($auteurs, ", ");
 }
 
-function sql_petitions($id_article, $table, $id_boucle, $serveur, &$Cache) {
+function sql_petitions($id_article, $table, $id_boucle, $serveur, &$cache) {
 	$retour = spip_abstract_fetsel(
 		array('texte'),
 		array('spip_petitions'),
@@ -445,7 +445,7 @@ function sql_petitions($id_article, $table, $id_boucle, $serveur, &$Cache) {
 
 	if (!$retour) return '';
 	# cette page est invalidee par toute petition
-	$Cache['varia']['pet'.$id_article] = 1;
+	$cache['varia']['pet'.$id_article] = 1;
 	# ne pas retourner '' car le texte sert aussi de presence
 	return ($retour['texte'] ? $retour['texte'] : ' ');
 }
diff --git a/ecrire/public/localiser_page.php b/ecrire/public/localiser_page.php
index aafdfc11b3..d984a87af6 100644
--- a/ecrire/public/localiser_page.php
+++ b/ecrire/public/localiser_page.php
@@ -152,7 +152,7 @@ function signaler_squelette($contexte)
 
 
 
-function analyse_resultat_skel($nom, $Cache, $corps) {
+function analyse_resultat_skel($nom, $cache, $corps) {
 	$headers = array();
 
 	// Recupere les < ?php header('Xx: y'); ? > pour $page['headers']
@@ -171,7 +171,7 @@ function analyse_resultat_skel($nom, $Cache, $corps) {
 	return array('texte' => $corps,
 		'squelette' => $nom,
 		'process_ins' => ((strpos($corps,'<'.'?')=== false)?'html':'php'),
-		'invalideurs' => $Cache,
+		'invalideurs' => $cache,
 		'entetes' => $headers,
 		'duree' => $headers['X-Spip-Cache']
 	);
-- 
GitLab