diff --git a/ecrire/action/desinstaller_plugin.php b/ecrire/action/desinstaller_plugin.php index 59b901bd16c4da38d2f7e17405ca462d33e417b8..ba03d64050e6a88481523fdea8a211924b0a2a86 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 f01cb35f003673c54fc0dc4fc83e4e0b3905a088..d422e7cf9d370b2c4f6d46a651d7642754a8531a 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 5e38b6c0c44f2518d991f3614973cd5a9ec65b1a..363834e0e2611ae1d3839d7d50cd6d4462058fc1 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 01db26cec4566f27b337d3171af3ea7ead39ce3f..452bc30b8b7cba01f136d0324c5b1952de23b93f 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 c5bd217bb12d3ce92b18303f92d0a19bac3d2938..b6df415fa12cb0415fa10a7235f3c37ddb3b1e10 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); }