From 6efb5eaa5c5a26092513dc9aad26acfa0d61e6aa Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Wed, 18 Jan 2006 22:36:09 +0000
Subject: [PATCH] =?UTF-8?q?Dans=20les=20formulaires=20:=20pourquoi=20faire?=
 =?UTF-8?q?=20compliqu=C3=A9=20quand=20on=20peut=20faire=20simple=20:=20en?=
 =?UTF-8?q?tites=5Fhtml=20est=20le=20filtre=20par=20d=C3=A9faut=20de=20[(#?=
 =?UTF-8?q?ENV{truc})]=20!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc_charsets.php3                  | 17 +++++++++++++++--
 formulaires/formulaire_forum.html         | 10 +++++-----
 formulaires/formulaire_recherche.html     |  2 +-
 formulaires/inc-formulaire_forum.php3     | 12 +++++-------
 formulaires/inc-formulaire_recherche.php3 | 10 +++++-----
 inc-balises.php3                          |  2 +-
 6 files changed, 32 insertions(+), 21 deletions(-)

diff --git a/ecrire/inc_charsets.php3 b/ecrire/inc_charsets.php3
index 0d980d685a..ed4e81789a 100644
--- a/ecrire/inc_charsets.php3
+++ b/ecrire/inc_charsets.php3
@@ -483,9 +483,22 @@ function translitteration($texte, $charset='AUTO', $complexe='') {
 	return strtr($texte, $trans[$complexe]);
 }
 
-function translitteration_complexe($texte) {
-	return translitteration($texte,'AUTO','complexe');
+// &agrave; est retourne sous la forme "a`" et pas "a"
+// mais si $chiffre=true, on retourne "a8" (vietnamien)
+function translitteration_complexe($texte, $chiffres=false) {
+	$texte = translitteration($texte,'AUTO','complexe');
+
+	if ($chiffres) {
+		$texte = preg_replace("/[aeiuoyd]['`?~.^+(-]{1,2}/e",
+			"translitteration_chiffree('\\0')", $texte);
+	}
+	
+	return $texte;
 }
+function translitteration_chiffree($car) {
+	return strtr($car, "'`?~.^+(-", "123456789");
+}
+
 
 // Reconnaitre le BOM utf-8 (0xEFBBBF)
 function bom_utf8($texte) {
diff --git a/formulaires/formulaire_forum.html b/formulaires/formulaire_forum.html
index 05937ca0d3..cdc3852586 100644
--- a/formulaires/formulaire_forum.html
+++ b/formulaires/formulaire_forum.html
@@ -8,14 +8,14 @@
 		<fieldset class="spip_encadrer">
 		<legend><b><:forum_titre:></b></legend>
 		<label><input type="text" name="titre" 
-			[value="(#ENV*{titre})" ]class="forml" size="40" />
+			[value="(#ENV{titre})" ]class="forml" size="40" />
 		</label>
 		</fieldset>
 		<br />
 		<fieldset class="spip_encadrer">
 		<legend><b><:forum_texte:></b></legend>
 		<p><:info_creation_paragraphe:></p>
-		[(#ENV*{texte}|barre_forum)]
+		[(#ENV{texte}|barre_forum)]
 		</fieldset>
 		<br />
 		[<p>(#ENV*{table})</p>]
@@ -24,18 +24,18 @@
 			<p><:forum_page_url:></p>
 			<p><label><:forum_titre:>
 				<input type="text" name="nom_site_forum" class="forml" size="40"
-					value="[(#ENV*{nom_site_forum})]" />
+					value="[(#ENV{nom_site_forum})]" />
 			</label></p>
 			<p><label><:forum_url:>
 			<input type="text" name="url_site" class="forml" size="40"
-				value="[(#ENV*{url_site})]" />
+				value="[(#ENV{url_site})]" />
 			</label></p>
 		</fieldset>
 		<br />
 		<fieldset class="spip_encadrer">
 			<legend><:forum_qui_etes_vous:></legend>
 			<p><label><:forum_votre_nom:>
-				<input type="text" name="auteur" value="[(#ENV*{auteur})]"
+				<input type="text" name="auteur" value="[(#ENV{auteur})]"
 					class="forml" size="40" [(#ENV{disabled})] />
 			</label></p>
 			<p><label><:forum_votre_email:>
diff --git a/formulaires/formulaire_recherche.html b/formulaires/formulaire_recherche.html
index 355a8cecdb..38a6692064 100644
--- a/formulaires/formulaire_recherche.html
+++ b/formulaires/formulaire_recherche.html
@@ -4,6 +4,6 @@
 			id="formulaire_recherche"
 			class="formrecherche"
 			name="recherche"
-			value="[(#ENV*{recherche_securisee})]" />
+			value="[(#ENV{recherche})]" />
 	</div>
 </form>
diff --git a/formulaires/inc-formulaire_forum.php3 b/formulaires/inc-formulaire_forum.php3
index e873bf0c0e..ab816f86f4 100644
--- a/formulaires/inc-formulaire_forum.php3
+++ b/formulaires/inc-formulaire_forum.php3
@@ -243,17 +243,17 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
 
 	return array('formulaire_forum', 0,
 	array(
-		'auteur' => entites_html($auteur),
+		'auteur' => $auteur,
 		'disabled' => ($forums_publics == "abo")? " disabled='disabled'" : '',
 		'email_auteur' => $email_auteur,
 		'modere' => (($forums_publics != 'pri') ? '' : _T('forum_info_modere')),
-		'nom_site_forum' => entites_html($nom_site_forum),
+		'nom_site_forum' => $nom_site_forum,
 		'previsu' => $previsu,
 		'table' => $table,
 		'texte' => $texte,
-		'titre' => entites_html(extraire_multi($titre)),
-		'url' =>  entites_html($url),
-		'url_site' => ($url_site ? entites_html($url_site) : "http://"),
+		'titre' => extraire_multi($titre),
+		'url' =>  $url,
+		'url_site' => ($url_site ? $url_site : "http://"),
 		'parametres_forum' => $parametres_forum,
 
 		## gestion des la variable de personnalisation $afficher_texte
@@ -275,8 +275,6 @@ function balise_FORMULAIRE_FORUM_dyn($titre, $table, $forums_publics, $id_rubriq
 function barre_forum($texte) {
 	include_ecrire('inc_layer');
 
-	$texte = entites_html($texte);
-
 	if (!$GLOBALS['browser_barre'])
 		return "<textarea name='texte' rows='12' class='forml' cols='40'>$texte</textarea>";
 	static $num_formulaire = 0;
diff --git a/formulaires/inc-formulaire_recherche.php3 b/formulaires/inc-formulaire_recherche.php3
index 89c88bbc4b..6403223631 100644
--- a/formulaires/inc-formulaire_recherche.php3
+++ b/formulaires/inc-formulaire_recherche.php3
@@ -28,15 +28,15 @@ function balise_FORMULAIRE_RECHERCHE_stat($args, $filtres) {
  
 function balise_FORMULAIRE_RECHERCHE_dyn($lien, $rech) {
 	include_ecrire('inc_filtres');
-	if (!$recherche_securisee = entites_html(_request('recherche'))) {
-	  if (!$recherche_securisee = entites_html($rech)) {
-		$recherche_securisee = _T('info_rechercher');
-	  }
+	if (!$recherche = _request('recherche')
+	AND !$recherche = $rech) {
+		include_ecrire('inc_charsets');
+		$recherche = html2unicode(_T('info_rechercher'));
 	}
 
 	return array('formulaire_recherche', 3600, 
 		     array('lien' => ($lien ? $lien : generer_url_public('recherche')),
-			'recherche_securisee' => $recherche_securisee
+			'recherche' => $recherche
 		));
 }
 
diff --git a/inc-balises.php3 b/inc-balises.php3
index 81f5abf3eb..a5b032d075 100644
--- a/inc-balises.php3
+++ b/inc-balises.php3
@@ -223,7 +223,7 @@ function balise_NOTES_dist($p) {
 }
 
 function balise_RECHERCHE_dist($p) {
-	$p->code = 'htmlspecialchars($GLOBALS["recherche"])';
+	$p->code = 'entites_html($GLOBALS["recherche"])';
 	$p->interdire_scripts = false;
 	return $p;
 }
-- 
GitLab