diff --git a/ecrire/exec_articles_edit.php b/ecrire/exec_articles_edit.php index 978bf8fecc623a8cd6d33176c77f26f6870d022e..840bc080497e55f75a94c0779e6497cfe38f05ec 100644 --- a/ecrire/exec_articles_edit.php +++ b/ecrire/exec_articles_edit.php @@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_presentation"); include_ecrire("inc_rubriques"); include_ecrire ("inc_documents"); -include_ecrire ("inc_barre"); +include_spip ('inc_barre'); // // Gestion des textes trop longs (limitation brouteurs) diff --git a/ecrire/exec_breves_edit.php b/ecrire/exec_breves_edit.php index a09dafd4100ca74c19834983f5545f6865ac00e4..1e84150dd42709dd46038442517a6e8a3c10f1b5 100644 --- a/ecrire/exec_breves_edit.php +++ b/ecrire/exec_breves_edit.php @@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_presentation"); include_ecrire("inc_rubriques"); include_ecrire ("inc_documents"); -include_ecrire ("inc_barre"); +include_spip ('inc_barre'); function breves_edit_dist() { diff --git a/ecrire/exec_forum_envoi.php b/ecrire/exec_forum_envoi.php index 2c04671327759a0697657c430f50e8058a36a15a..46f772d62bf026152c49ace762fe3e15ff25653d 100644 --- a/ecrire/exec_forum_envoi.php +++ b/ecrire/exec_forum_envoi.php @@ -13,7 +13,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_presentation"); -include_ecrire ("inc_barre"); +include_spip ('inc_barre'); include_ecrire ("inc_forum"); function forum_envoi_dist() diff --git a/ecrire/inc_filtres.php b/ecrire/inc_filtres.php index 84e14f2566594e03b178de007fce0ea6ee79a83e..133212dd15d70b84ba37f6d53651331b6bdf15aa 100644 --- a/ecrire/inc_filtres.php +++ b/ecrire/inc_filtres.php @@ -2430,7 +2430,7 @@ function barre_textarea($texte, $rows, $cols) { return "<textarea name='texte' rows='$rows' class='forml' cols='$cols'>$texte</textarea>"; $num_textarea++; - include_ecrire('inc_barre'); + include_spip ('inc_barre'); return afficher_barre("document.getElementById('textarea_$num_textarea')", true) . " <textarea name='texte' rows='$rows' class='forml' cols='$cols' diff --git a/ecrire/inc_majbase.php b/ecrire/inc_majbase.php index e0eb5b9bdd0d5dc5071b8b9bdae2f0ab49369153..d337ae1bf5618f850cd58acdc12ad68b4d123c7f 100644 --- a/ecrire/inc_majbase.php +++ b/ecrire/inc_majbase.php @@ -819,7 +819,7 @@ function maj_base() { spip_query("ALTER TABLE spip_syndic ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_forum ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); - spip_query("ALTER TABLE spip_forum ADD ADD INDEX idx (idx)"); + spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_signatures ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"); spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)"); maj_version (1.730); @@ -1023,7 +1023,7 @@ function maj_base() { spip_query("ALTER TABLE spip_mots ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_rubriques ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)"); - spip_query("ALTER TABLE spip_forum ADD ADD INDEX idx (idx)"); + spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)"); spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)"); maj_version(1.820); } @@ -1152,6 +1152,12 @@ function maj_base() { maj_version(1.906); } + if ($version_installee < 1.907) { + spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)"); + maj_version(1.907); + } + + return true; } diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php index 9b5b9d85b7954aed4cff12a777c4e5373b5150b0..6a6652ff08fe3cc78b1ab16dce4b4834d0e2d454 100644 --- a/ecrire/inc_utils.php +++ b/ecrire/inc_utils.php @@ -18,7 +18,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return; $included_files = array(); -function include_local($file, $silence=false) { +// inclure un fichier "local", signifie en general qu'on suit le chemin +// depuis le repertoire courant. Mais si le fichier est redefini dans +// spip_matrice, on prefere spip_matrice ; et s'il n'existe pas localement +// on le find_in_path() +function include_local ($file, $silence=false) { $nom = preg_replace("/\.php[3]?$/",'', $file); # spip_log("'$nom' '$file'"); if (@$GLOBALS['included_files'][$nom]++) @@ -77,6 +81,34 @@ function include_fonction($nom) { } } +// +// une fonction destinee a remplacer include_ecrire, surchargeable +// par $surcharge['inc_truc'] = '/chemin/vers/truc.php' +// +function include_spip($f) { + // deja charge (nom) ? + if (@$GLOBALS['included_files'][$f]++) return true; + + // Hack pour pouvoir appeler cette fonction depuis mes_options. + define('_DIR_INCLUDE', _DIR_RESTREINT); + + // une surcharge existe ? + if (!$s = $GLOBALS['surcharge'][$f] + // sinon, le fichier existe dans le repertoire ecrire ? + AND !is_readable($s = _DIR_INCLUDE . $f . '.php') + AND !is_readable($s = _DIR_INCLUDE . $f . '.php3') + // sinon, chercher dans le chemin + AND !$s = find_in_path($f . '.php') + AND !$s = find_in_path($f . '.php3')) + return false; + + // deja charge (chemin complet) ? + if ($GLOBALS['included_files'][$s]++) return true; + + // alors on le charge + include($s); +} + // un pipeline est lie a une action et une valeur // chaque element du pipeline est autorise a modifier la valeur // @@ -804,9 +836,9 @@ function spip_register_globals() { if (isset($GLOBALS[$var])) { if ( // demande par le client - _request($var) !== NULL + $_REQUEST[$var] !== NULL // et pas modifie par les fichiers d'appel - AND $GLOBALS[$var] == _request($var) + AND $GLOBALS[$var] == $_REQUEST[$var] ) // Alors on ne sait pas si c'est un hack die ("register_globals: $var interdite"); } @@ -928,6 +960,8 @@ function spip_initialisation() { spip_desinfecte($_GET); spip_desinfecte($_POST); spip_desinfecte($_COOKIE); + # et _REQUEST pour que tester_variable fonctionne meme avec magic_quotes + spip_desinfecte($_REQUEST); # if (@ini_get('register_globals')) // pas fiable spip_desinfecte($GLOBALS); // a la fin supprimer la variable anti-recursion devenue inutile @@ -935,6 +969,7 @@ function spip_initialisation() { unset($_GET['spip_recursions']); unset($_POST['spip_recursions']); unset($_COOKIE['spip_recursions']); + unset($_REQUEST['spip_recursions']); unset($GLOBALS['spip_recursions']); // Par ailleurs on ne veut pas de magic_quotes au cours de l'execution @set_magic_quotes_runtime(0); @@ -1025,9 +1060,8 @@ function tester_variable($var, $val){ $GLOBALS[$var] = $val; if ( - _request($var) !== NULL - // et pas modifie par les fichiers d'appel - AND $GLOBALS[$var] == _request($var) + $_REQUEST[$var] !== NULL + AND $GLOBALS[$var] == $_REQUEST[$var] ) die ("tester_variable: $var interdite"); } @@ -1049,7 +1083,7 @@ function spip_desinfecte(&$t) { } } } else { - $t = str_replace(chr(0), '', $t); + $t = str_replace(chr(0), '-', $t); if ($magic_quotes) $t = stripslashes($t); } diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index 74baa56bd66b6c62f0518e45aae56be0b0a57ee9..1bc9f61fb52809c9d38828dd1c34ffecc68b2056 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -167,7 +167,8 @@ $spip_pipeline = array( $spip_matrice = array (); # les plugins a activer $plugins = array(); // voir le contenu du repertoire /plugins/ - +# les surcharges de include_spip() +$surcharges = array(); // format 'inc_truc' => '/plugins/chose/inc_truc2.php' // Masquer les warning error_reporting(E_ALL ^ E_NOTICE); @@ -197,7 +198,7 @@ $extension_squelette = 'html'; // (utilise pour les modifs de la base de donnees) // version de la base -$spip_version = 1.906; +$spip_version = 1.907; // version de spip $spip_version_affichee = "1.9 alpha 3"; diff --git a/ecrire/inc_visites.php b/ecrire/inc_visites.php index bdb7265771165d67555cdf7a83203336f49ac402..82ab598abe9604eb9ca57e0394fb820fbdee6269 100644 --- a/ecrire/inc_visites.php +++ b/ecrire/inc_visites.php @@ -76,8 +76,8 @@ function calculer_visites($t) { compte_fichier_visite($item, $visites, $visites_a, $referers, $referers_a, $articles); @unlink($item); - } else - spip_log("$item pas vieux"); + } + #else spip_log("$item pas vieux"); } if (!$visites) return;