From c71f5a45f8fd9a543320ba35565c56cc4ebaab10 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 3 Mar 2006 14:52:38 +0000
Subject: [PATCH] =?UTF-8?q?=5FEXTENSION=5FPHP=20reste=20=C3=A0=20.php3=20e?=
 =?UTF-8?q?n=20standard=20mais=20change=20de=20signification:=20il=20indiq?=
 =?UTF-8?q?ue=20qu'il=20faut=20essayer=20de=20lire=20un=20fichier=20avec?=
 =?UTF-8?q?=20cette=20extension=20si=20on=20ne=20l'a=20pas=20trouv=C3=A9?=
 =?UTF-8?q?=20avec=20l'extension=20.php;=20a=20redefinir=20a=20=20=C3=A0?=
 =?UTF-8?q?=20terme.=20Par=20ailleurs,=20simplification=20de=20find=5Fin?=
 =?UTF-8?q?=5Fpath=20qui=20n'a=20plus=20qu'un=20seul=20argument.=20A=20not?=
 =?UTF-8?q?er=20que=20sa=20liste=20de=20repertoires=20pourrait=20etre=20ca?=
 =?UTF-8?q?lcul=C3=A9e=20dans=20une=20statique=20au=20premier=20appel,=20s?=
 =?UTF-8?q?'il=20n'y=20avait=20ces=20fichus=20plugins=20qui=20en=20rajoute?=
 =?UTF-8?q?nt=20une=20couche=20tardivement.=20A=20mediter?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/base/abstract_sql.php |  2 +-
 ecrire/exec/install.php      | 38 ++++++++++++++++++------------------
 ecrire/inc/filtres.php       |  4 ++--
 ecrire/inc/session.php       |  2 +-
 ecrire/inc/utils.php         | 31 ++++++++++++-----------------
 ecrire/inc_version.php       |  8 ++++++--
 6 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/ecrire/base/abstract_sql.php b/ecrire/base/abstract_sql.php
index 5ccedae6e0..985e2135cf 100644
--- a/ecrire/base/abstract_sql.php
+++ b/ecrire/base/abstract_sql.php
@@ -46,7 +46,7 @@ function spip_abstract_select (
 		$f = 'spip_' . $serveur . '_select';
 		if (!function_exists($f)) {
 		  // non, il est decrit dans le fichier ad hoc
-			$d = dirname(_FILE_CONNECT) . 'inc_connect-' . $serveur ._EXTENSION_PHP;
+			$d = dirname(_FILE_CONNECT) . 'inc_connect-' . $serveur . '.php';
 			if (@file_exists($d)) include($d);
 			$f = spip_abstract_serveur($f, $serveur);
 		}
diff --git a/ecrire/exec/install.php b/ecrire/exec/install.php
index a9e28ff6b5..84c217a980 100644
--- a/ecrire/exec/install.php
+++ b/ecrire/exec/install.php
@@ -119,8 +119,8 @@ function install_6()
 	echo "<B>"._T('info_code_acces')."</B>";
 	echo "<P>"._T('info_utilisation_spip');
 
-	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP))
-		include(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP);
+	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . '.php'))
+		include(_FILE_CONNECT_INS . _FILE_TMP . '.php');
 	else
 		redirige_par_entete(generer_url_ecrire('install'));
 
@@ -166,11 +166,11 @@ function install_6()
 	include_spip('inc/acces');
 	ecrire_acces();
 
-	if (!@rename(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP,
-		    _FILE_CONNECT_INS . _EXTENSION_PHP)) {
-		copy(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, 
-		     _FILE_CONNECT_INS . _EXTENSION_PHP);
-		@unlink(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP);
+	if (!@rename(_FILE_CONNECT_INS . _FILE_TMP . '.php',
+		    _FILE_CONNECT_INS . '.php')) {
+		copy(_FILE_CONNECT_INS . _FILE_TMP . '.php', 
+		     _FILE_CONNECT_INS . '.php');
+		@unlink(_FILE_CONNECT_INS . _FILE_TMP . '.php');
 	}
 
 	echo "<form action='./' method='post'>";
@@ -188,8 +188,8 @@ function install_5()
 
 	install_debut_html();
 
-	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP))
-		include(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP);
+	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . '.php'))
+		include(_FILE_CONNECT_INS . _FILE_TMP . '.php');
 	else
 		redirige_par_entete(generer_url_ecrire('install'));
 
@@ -318,7 +318,7 @@ function install_4()
 			. ");\n";
 		$conn .= "?".">";
 
-		if (!ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP,
+		if (!ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . '.php',
 		$conn))
 			redirige_par_entete(generer_url_ecrire('install'));
 
@@ -477,8 +477,8 @@ function install_1()
 	$pass_db = '';
 
 	// Recuperer les anciennes donnees pour plus de facilite (si presentes)
-	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)) {
-		$s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP));
+	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . '.php')) {
+		$s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . '.php'));
 		if (ereg("mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)", $s, $regs)) {
 			$adresse_db = $regs[1];
 			$login_db = $regs[2];
@@ -547,7 +547,7 @@ function install_ldap5()
 
 	install_debut_html();
 
-	include_once(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP);
+	include_once(_FILE_CONNECT_INS . _FILE_TMP . '.php');
 	include_spip('inc/meta');
 	ecrire_meta("ldap_statut_import", $statut_ldap);
 	ecrire_metas();
@@ -589,7 +589,7 @@ function install_ldap4()
 		echo "<BR />\n<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3>"._T('info_reglage_ldap')."</FONT>";
 		echo "<P>";
 
-		lire_fichier(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, $conn);
+		lire_fichier(_FILE_CONNECT_INS . _FILE_TMP . '.php', $conn);
 		if ($p = strpos($conn, '?'.'>')) 
 			$conn = substr($conn, 0, $p);
 		if (!strpos($conn, 'spip_connect_ldap')) {
@@ -602,7 +602,7 @@ function install_ldap4()
 			$conn .= "\$GLOBALS['ldap_present'] = true;\n";
 		}
 		$conn .= "?".">";
-		ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, $conn);
+		ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . '.php', $conn);
 
 		echo generer_url_post_ecrire('install');
 		echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap5'>";
@@ -737,8 +737,8 @@ function install_ldap1()
 	$port_ldap = 389;
 
 	// Recuperer les anciennes donnees (si presentes)
-	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)) {
-		$s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP));
+	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . '.php')) {
+		$s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . '.php'));
 		if (ereg('ldap_connect\("(.*)","(.*)"\)', $s, $regs)) {
 			$adresse_ldap = $regs[1];
 			$port_ldap = $regs[2];
@@ -786,9 +786,9 @@ function install_unpack()
   fin_admin($action);
 
 	## ??????? a verifier
-  if (@file_exists(_DIR_RACINE . "spip_loader" . _EXTENSION_PHP))
+  if (@file_exists(_DIR_RACINE . "spip_loader" . '.php'))
     redirige_par_entete(generer_url_public("spip_loader"), "?hash=$hash&id_auteur=$connect_id_auteur");
-  else if (@file_exists(_DIR_RACINE . "spip_unpack" . _EXTENSION_PHP))
+  else if (@file_exists(_DIR_RACINE . "spip_unpack" . '.php'))
     redirige_par_entete(generer_url_public("spip_unpack"), "?hash=$hash&id_auteur=$connect_id_auteur");
   else
     redirige_par_entete(generer_url_public("spip_loader"), "?hash=$hash&id_auteur=$connect_id_auteur");
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 91bfe00314..691461f9d4 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -2288,7 +2288,7 @@ function image_typo() {
 	
 	if (!file_exists($fichier) AND $flag_gd_typo) {
 		# que faire si la police n'existe pas ?
-		$font = find_in_path('polices/'.$police, _DIR_INCLUDE);
+		$font = find_in_path(_DIR_POLICES . $police);
 
 		$imgbidon = imageCreateTrueColor($largeur, 45);
 		$retour = printWordWrapped($imgbidon, $taille+5, 0, $largeur, $font, $black, $text, $taille, 'left', $hauteur_ligne);
@@ -2451,7 +2451,7 @@ function barre_textarea($texte, $rows, $cols) {
 	static $num_textarea = 0;
 	include_spip('inc/layer');
 
-	$texte = interdire_scripts(entites_html($texte));
+	$texte = safehtml(entites_html($texte));
 	if (!$GLOBALS['browser_barre'])
 		return "<textarea name='texte' rows='$rows' class='forml' cols='$cols'>$texte</textarea>";
 
diff --git a/ecrire/inc/session.php b/ecrire/inc/session.php
index 9580b1f10c..6f6b96d932 100644
--- a/ecrire/inc/session.php
+++ b/ecrire/inc/session.php
@@ -37,7 +37,7 @@ function hash_env() {
 function fichier_session($id_session, $alea) {
 	if (ereg("^([0-9]+_)", $id_session, $regs))
 		$id_auteur = $regs[1];
-	return _DIR_SESSIONS . 'session_'.$id_auteur.md5($id_session.' '.$alea)._EXTENSION_PHP;
+	return _DIR_SESSIONS . 'session_'.$id_auteur.md5($id_session.' '.$alea). '.php';
 
 }
 
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 36057690c4..9506595050 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -84,10 +84,11 @@ function include_spip($f, $include = true) {
 
 	// une surcharge existe ?
 	if (!$s = find_in_path($f . '.php')
-	AND !$s = find_in_path($f . '.php3')
+	AND (!_EXTENSION_PHP OR !$s = find_in_path($f . '.php3'))
 	// sinon, le fichier existe dans le repertoire ecrire ?
 	AND !is_readable($s = _DIR_INCLUDE . $f . '.php')
-	AND !is_readable($s = _DIR_INCLUDE . $f . '.php3'))
+	AND (!_EXTENSION_PHP OR !is_readable($s = _DIR_INCLUDE . $f . '.php3'))
+)
 		return $included_files[$f] = false;
 
 	// deja charge (chemin complet) ?
@@ -619,11 +620,11 @@ function texte_script($texte) {
 // find_in_path() : chercher un fichier nomme x selon le chemin rep1:rep2:rep3
 //
 
-function find_in_path ($filename, $sinon = NULL, $path='AUTO') {
+function find_in_path ($filename) {
 
 	// Chemin standard depuis l'espace public
-	if ($path == 'AUTO') {
-		$path = defined('_SPIP_PATH') ? explode(':', _SPIP_PATH) : 
+
+	$path = defined('_SPIP_PATH') ? explode(':', _SPIP_PATH) : 
 			array(
 				_DIR_RACINE,
 				_DIR_RACINE.'dist/',
@@ -632,23 +633,16 @@ function find_in_path ($filename, $sinon = NULL, $path='AUTO') {
 			);
 
 		// Ajouter les repertoires des plugins
-		foreach ($GLOBALS['plugins'] as $plug)
+	foreach ($GLOBALS['plugins'] as $plug)
 			array_unshift($path, _DIR_PLUGINS.$plug.'/');
 
 		// Ajouter squelettes/
-		array_unshift($path, _DIR_RACINE.'squelettes/');
+	array_unshift($path, _DIR_RACINE.'squelettes/');
 
 		// Et le(s) dossier(s) des squelettes nommes
-		if ($GLOBALS['dossier_squelettes'])
-			foreach (explode(':', $GLOBALS['dossier_squelettes']) as $d)
-				array_unshift($path,
-				_DIR_RACINE.$d.'/');
-	}
-
-	// Parcourir le chemin
-	# Attention, dans l'espace prive on a parfois sinon='' pour _DIR_INCLUDE
-	if ($sinon !== NULL)
-		array_push($path, $sinon);
+	if ($GLOBALS['dossier_squelettes'])
+		foreach (explode(':', $GLOBALS['dossier_squelettes']) as $d)
+			array_unshift($path, _DIR_RACINE.$d.'/');
 
 	foreach ($path as $dir) {
 		// ajouter un / eventuellement manquant a la fin
@@ -658,7 +652,7 @@ function find_in_path ($filename, $sinon = NULL, $path='AUTO') {
 			return $f;
 		}
 	}
-#	spip_log("find_in_path n'a pas vu '$filename' dans $path");
+# spip_log("find_in_path n'a pas vu '$filename' dans " . join(',', $path));
 }
 
 // predicat sur les scripts de ecrire qui n'authentifient pas par cookie
@@ -885,6 +879,7 @@ function spip_initialisation() {
 	define('_DIR_TRANSFERT', _DIR_RESTREINT . "upload/");
 	define('_DIR_PLUGINS', _DIR_RACINE . "plugins/");
 	define('_DIR_LOGOS', _DIR_RACINE ."IMG/");
+	define('_DIR_POLICES', _DIR_RESTREINT ."polices/");
 
 	// les fichiers qu'on y met, entre autres
 	define('_FILE_CRON_LOCK', _DIR_SESSIONS . 'cron.lock');
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index 78b88e1c0d..f6de2e14a0 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -14,7 +14,11 @@
 if (defined("_ECRIRE_INC_VERSION")) return;
 define("_ECRIRE_INC_VERSION", "1");
 
-@define('_EXTENSION_PHP', '.php');
+# compatibilite anciennes versions
+# si vous n'avez aucun fichier .php3, redefinissez a ""
+# ca fera foncer find_in_path
+@define('_EXTENSION_PHP', '.php3');
+#@define('_EXTENSION_PHP', '');
 
 # le nom du repertoire ecrire/
 @define('_DIR_RESTREINT_ABS', 'ecrire/');
@@ -222,7 +226,7 @@ if (defined('_FILE_OPTIONS')) {
 		include_once(_FILE_OPTIONS);
 	}
 	# COMPATIBILITE .php3
-	else if (@file_exists(_DIR_RESTREINT . 'mes_options.php3')) {
+	else if (_EXTENSION_PHP && @file_exists(_DIR_RESTREINT . 'mes_options.php3')) {
 		define('_FILE_OPTIONS', _DIR_RESTREINT . 'mes_options.php3');
 		include_once(_FILE_OPTIONS);
 	}
-- 
GitLab