Skip to content
Extraits de code Groupes Projets
Valider 64b99faa rédigé par Fil's avatar Fil
Parcourir les fichiers

nettoyage du code du noyau et reintroduction du bug qui fait qu'il ne depand...

nettoyage du code du noyau et reintroduction du bug qui fait qu'il ne depand pas du chemin (pas encore trouve comment faire)
parent 4fc632f9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -13,12 +13,6 @@ ...@@ -13,12 +13,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
function lire_metas() { function lire_metas() {
// preserver le noyau
if (_DIR_RESTREINT)
$noyau = $GLOBALS['meta']['noyau'];
else
$noyau = array();
$result = spip_query("SELECT nom,valeur FROM spip_meta"); $result = spip_query("SELECT nom,valeur FROM spip_meta");
if($GLOBALS['db_ok']) { if($GLOBALS['db_ok']) {
$GLOBALS['meta'] = array(); $GLOBALS['meta'] = array();
...@@ -28,7 +22,8 @@ function lire_metas() { ...@@ -28,7 +22,8 @@ function lire_metas() {
if (!$GLOBALS['meta']['charset']) if (!$GLOBALS['meta']['charset'])
ecrire_meta('charset', _DEFAULT_CHARSET); ecrire_meta('charset', _DEFAULT_CHARSET);
$GLOBALS['meta']['noyau'] = $noyau; if (isset($GLOBALS['noyau']))
$GLOBALS['meta']['noyau'] = $GLOBALS['noyau'];
} }
function ecrire_meta($nom, $valeur) { function ecrire_meta($nom, $valeur) {
......
...@@ -74,25 +74,21 @@ function charger_fonction($nom, $dossier='exec', $continue=false) { ...@@ -74,25 +74,21 @@ function charger_fonction($nom, $dossier='exec', $continue=false) {
// //
function include_spip($f, $include = true) { function include_spip($f, $include = true) {
// deja charge (nom) ? // Dans le noyau ?
if (isset($GLOBALS['meta']['noyau'][_NOYAU][$f])) { if (isset($GLOBALS['noyau'][$f])) {
$s = $GLOBALS['meta']['noyau'][_NOYAU][$f]; $s = $GLOBALS['noyau'][$f];
if ($include && $s) {
include_once $s;
}
return $s;
} }
if (!$s = find_in_path($f . '.php') // Sinon le chercher et mettre a jour le noyau
AND (!_EXTENSION_PHP OR !$s = find_in_path($f . '.php3'))) { else {
return $GLOBALS['meta']['noyau'][_NOYAU][$f] = false; if (!$s = find_in_path($f . '.php')
AND (!_EXTENSION_PHP OR !$s = find_in_path($f . '.php3'))) {
return $GLOBALS['noyau'][$f] = false;
} else
$GLOBALS['noyau'][$f] = $s;
} }
$GLOBALS['meta']['noyau'][_NOYAU][$f] = $s; // On charge le fichier (sauf si on ne voulait que son chemin)
if (!defined('ecrire_noyau')) if ($include && $s) {
define('ecrire_noyau', 1);
// alors on le charge (sauf si on ne voulait que son chemin)
if ($include) {
include_once $s; include_once $s;
} }
...@@ -569,8 +565,7 @@ function texte_script($texte) { ...@@ -569,8 +565,7 @@ function texte_script($texte) {
// //
// find_in_path() : chercher un fichier nomme x selon le chemin rep1:rep2:rep3 // find_in_path() : chercher un fichier nomme x selon le chemin rep1:rep2:rep3
// //
function creer_chemin() {
function find_in_path ($filename) {
static $path_a = array(); static $path_a = array();
static $c = ''; static $c = '';
...@@ -607,18 +602,21 @@ function find_in_path ($filename) { ...@@ -607,18 +602,21 @@ function find_in_path ($filename) {
$dir .= "/"; $dir .= "/";
$path_a[] = $dir; $path_a[] = $dir;
} }
define('_NOYAU', md5(join(':', $path_a)));
} }
return $path_a;
}
function find_in_path ($filename) {
// Parcourir le chemin // Parcourir le chemin
foreach ($path_a as $dir) { foreach (creer_chemin() as $dir) {
if (@is_readable($f = "$dir$filename")) { if (@is_readable($f = "$dir$filename")) {
# spip_log("find_in_path trouve $f"); # spip_log("find_in_path trouve $f");
return $f; return $f;
} }
} }
# spip_log("find_in_path n'a pas vu '$filename' dans " . join(':',$path_a)); # spip_log("find_in_path n'a pas vu '$filename' dans " . join(':',creer_chemin()));
return false; return false;
} }
...@@ -977,21 +975,24 @@ function spip_initialisation() { ...@@ -977,21 +975,24 @@ function spip_initialisation() {
// systematique du noyau ou une baisse de perfs => a etudier) // systematique du noyau ou une baisse de perfs => a etudier)
include_once _DIR_RESTREINT . 'inc/flock.php'; include_once _DIR_RESTREINT . 'inc/flock.php';
// Lire les meta cachees // Lire les meta cachees et initier le noyau (espace public uniquement)
if (lire_fichier(_FILE_META, $meta)) $GLOBALS['noyau'] = array();
if (lire_fichier(_FILE_META, $meta)) {
$GLOBALS['meta'] = @unserialize($meta); $GLOBALS['meta'] = @unserialize($meta);
if (_DIR_RESTREINT
AND isset($GLOBALS['meta']['noyau'])
AND is_array($GLOBALS['meta']['noyau']))
$GLOBALS['noyau'] = $GLOBALS['meta']['noyau'];
}
// en cas d'echec refaire le fichier // en cas d'echec refaire le fichier
if (!is_array($GLOBALS['meta']) AND _FILE_CONNECT) { if (!is_array($GLOBALS['meta']) AND _FILE_CONNECT) {
include_spip('inc/meta'); include_spip('inc/meta');
ecrire_metas(); ecrire_metas();
} }
// supprimer le noyau si on recalcul // supprimer le noyau si on recalcule
if (isset($_REQUEST['var_mode'])) { if (isset($_REQUEST['var_mode']))
$GLOBALS['meta']['noyau'] = array(); $GLOBALS['noyau'] = array();
if (!defined('ecrire_noyau'))
define('ecrire_noyau', 1);
}
// Langue principale du site // Langue principale du site
$GLOBALS['langue_site'] = $GLOBALS['meta']['langue_site']; $GLOBALS['langue_site'] = $GLOBALS['meta']['langue_site'];
......
...@@ -162,13 +162,6 @@ if (defined('_INC_PUBLIC')) { ...@@ -162,13 +162,6 @@ if (defined('_INC_PUBLIC')) {
$f(); $f();
} }
// Ecrire le noyau s'il a change ;
// c'est avant cron() pour ne pas l'alourdir
if (defined('ecrire_noyau')) {
include_spip('inc/meta');
ecrire_metas();
}
// Effectuer une tache de fond ? // Effectuer une tache de fond ?
cron(); cron();
......
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