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