Skip to content
Extraits de code Groupes Projets
Valider 9b9d8bc9 rédigé par esj's avatar esj
Parcourir les fichiers

Confiner les références aux parametres du code compilé (ici Cache) aux...

Confiner les références aux parametres du code compilé (ici Cache) aux fichiers de ecrire/public. Et un peu de ménage
parent f49d2ee4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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
//
......
......@@ -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
......
......@@ -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;
}
......
......@@ -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'] : ' ');
}
......
......@@ -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']
);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter