From 9d402b43f890ffae3ceb67ac7f6af0ac3044f94e Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 27 Sep 2007 10:53:42 +0000
Subject: [PATCH] =?UTF-8?q?Include=20oubli=C3=A9=20dans=20[10438],=20centr?=
 =?UTF-8?q?alisation=20des=20r=C3=A9f=C3=A9rences=20au=20cache=20des=20met?=
 =?UTF-8?q?as=20dans=20le=20fichier=20meta.php,=20en=20particulier=20dispa?=
 =?UTF-8?q?rition=20de=20sa=20refabrication=20dans=20les=20fonctions=20d'a?=
 =?UTF-8?q?dministration=20des=20plugins:=20sauf=20autre=20bug=20ant=C3=A9?=
 =?UTF-8?q?-diluvien=20(qui=20sera=20ainsi=20d=C3=A9couvert)=20=C3=A7a=20n?=
 =?UTF-8?q?e=20devrait=20pas=20les=20g=C3=AAner.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/action/desinstaller_plugin.php |  2 --
 ecrire/inc/meta.php                   | 16 +++++++++++++++-
 ecrire/inc/plugin.php                 |  7 ++-----
 ecrire/inc/utils.php                  | 13 ++-----------
 ecrire/maj/v019.php                   |  6 +++---
 5 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/ecrire/action/desinstaller_plugin.php b/ecrire/action/desinstaller_plugin.php
index 59b901bd16..ba03d64050 100644
--- a/ecrire/action/desinstaller_plugin.php
+++ b/ecrire/action/desinstaller_plugin.php
@@ -25,8 +25,6 @@ function action_desinstaller_plugin_dist() {
 		// desactiver si il a bien ete desinstalle
 		if (!$etat)
 			ecrire_plugin_actifs(array($plug_file),false,'enleve');
-		include_spip('inc/meta');
-		if (lire_metas()) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta'])); 
 	}
 	if ($redirect = _request('redirect')){
 		include_spip('inc/headers');
diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index f01cb35f00..d422e7cf9d 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -13,7 +13,20 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 // Les parametres generaux du site sont dans une table SQL;
-// Recopie dans un tableau PHP global, car on en a souvent besoin
+// Recopie dans le tableau PHP global meta, car on en a souvent besoin
+
+function init_metas()
+{
+	// Lire les meta, en cache si disponibles.
+	if (lire_fichier(_FILE_META, $meta))
+		$GLOBALS['meta'] = @unserialize($meta);
+	// si cache absent, le refaire.
+	if (!$GLOBALS['meta']) {
+		if (lire_metas())
+			ecrire_fichier(_FILE_META,
+				       serialize($GLOBALS['meta']));
+	}
+}
 
 // http://doc.spip.org/@lire_metas
 function lire_metas() {
@@ -37,6 +50,7 @@ function ecrire_meta($nom, $valeur, $importable = NULL) {
 	$GLOBALS['meta'][$nom] = $valeur;
 
 	if (!_FILE_CONNECT && !@file_exists(_FILE_CONNECT_INS .'.php')) return;
+	include_spip('base/abstract_sql');
 	$res = sql_fetsel("impt,valeur", 'spip_meta', "nom=" . _q($nom));
 	// conserver la valeur de impt si existante
 	// et ne pas detruire le cache si affectation a l'identique
diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php
index 5e38b6c0c4..363834e0e2 100644
--- a/ecrire/inc/plugin.php
+++ b/ecrire/inc/plugin.php
@@ -219,7 +219,7 @@ function liste_chemin_plugin_actifs(){
 function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
 	static $liste_pipe_manquants=array();
 
-	include_spip('inc/meta');
+
 
 	$liste_fichier_verif = array();
 	if (($pipe_recherche)&&(!in_array($pipe_recherche,$liste_pipe_manquants)))
@@ -357,8 +357,6 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
 		$liste_fichier_verif[$k] = (_DIR_RACINE?"":"../") . _DIR_PLUGINS . preg_replace(",(_DIR_PLUGINS\.)?',", "", $f);
 	ecrire_fichier(_DIR_TMP.'verifier_plugins.txt',
 		serialize($liste_fichier_verif));
-
-	if (lire_metas()) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta']));
 }
 
 // precompilation des pipelines
@@ -530,8 +528,8 @@ function installe_plugins(){
 		}
 	}
 	ecrire_meta('plugin_installes',serialize($meta_plug_installes),'non');
-	ecrire_metas();
 }
+
 // http://doc.spip.org/@plugin_est_installe
 function plugin_est_installe($plug_path){
 	$plugin_installes = isset($GLOBALS['meta']['plugin_installes'])?unserialize($GLOBALS['meta']['plugin_installes']):array();
@@ -767,7 +765,6 @@ function plugin_pipeline_props(&$arbre){
 
 // http://doc.spip.org/@verifie_include_plugins
 function verifie_include_plugins() {
-	include_spip('inc/meta');
 	ecrire_meta('message_crash_plugins', 1);
 
 /*	if (_request('exec')!="admin_plugin"
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 01db26cec4..452bc30b8b 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1334,17 +1334,8 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
 	define('_RENOUVELLE_ALEA', 12 * 3600);
 
 	if  (_FILE_CONNECT) {
-		// Lire les meta, en cache si disponibles.
-		if (lire_fichier(_FILE_META, $meta))
-			$GLOBALS['meta'] = @unserialize($meta);
-		// si cache absent, le refaire.
-		if (!$GLOBALS['meta']) {
-			include_spip('inc/meta');
-			if (lire_metas())
-				ecrire_fichier(_FILE_META,
-					       serialize($GLOBALS['meta']));
-		}
-
+		include_spip('inc/meta');
+		init_metas();
 		// Forcer le renouvellement de l'alea
 
 		if (test_espace_prive()
diff --git a/ecrire/maj/v019.php b/ecrire/maj/v019.php
index c5bd217bb1..b6df415fa1 100644
--- a/ecrire/maj/v019.php
+++ b/ecrire/maj/v019.php
@@ -63,8 +63,8 @@ function maj_v019_dist($version_installee, $version_cible)
 		$liste_tables[7]='spip_rubriques';
 		$liste_tables[8]='spip_signatures';
 		$liste_tables[9]='spip_syndic';
-		$s=addslashes(serialize($liste_tables));
-		spip_query("INSERT INTO spip_meta ( `nom` , `valeur` , `maj` ) VALUES ('index_table', '$s', NOW( ));");
+
+		ecrire_meta('index_table', serialize($liste_tables));
 
 		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_article` as id_objet,'1' as id_table FROM spip_index_articles");
 		spip_query("DROP TABLE IF EXISTS spip_index_articles");
@@ -92,7 +92,7 @@ function maj_v019_dist($version_installee, $version_cible)
 
 		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_syndic` as id_objet,'9' as `id_table FROM spip_index_syndic");
 		spip_query("DROP TABLE IF EXISTS spip_index_syndic");
-		if (lire_metas()) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta']));
+
 		maj_version(1.905);
 	}
 
-- 
GitLab