From 4e075921e3e6667df8d9eccd30ea003896e1d0f5 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sun, 17 Jul 2005 19:42:52 +0000
Subject: [PATCH] =?UTF-8?q?un=20bug=20dans=20le=20formulaire=20forum.html?=
 =?UTF-8?q?=20:=20#FORMULAIRE=5FFORUM=20n'=C3=A9tant=20pas=20dans=20une=20?=
 =?UTF-8?q?boucle,=20il=20prenait=20la=20langue=20par=20d=C3=A9faut=20du?=
 =?UTF-8?q?=20site=20--=20maintenant=20on=20force=20&lang=3Dxx=20dans=20l'?=
 =?UTF-8?q?URL=20(en=20cas=20de=20besoin)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc-balises.php3       |  2 +-
 inc-calcul-outils.php3 | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/inc-balises.php3 b/inc-balises.php3
index e18e9416c9..3b538a25fa 100644
--- a/inc-balises.php3
+++ b/inc-balises.php3
@@ -43,7 +43,7 @@ function champs_traitements ($p) {
 		'NOM_SITE_SPIP' => 'typo(%s)',
 		'NOM_SITE' => 'typo(%s)',
 		'NOM' => 'typo(%s)',
-		'PARAMETRES_FORUM' => 'htmlspecialchars(%s)',
+		'PARAMETRES_FORUM' => 'htmlspecialchars(lang_parametres_forum(%s))',
 		'PS' => 'traiter_raccourcis(%s)',
 		'SOUSTITRE' => 'typo(%s)',
 		'SURTITRE' => 'typo(%s)',
diff --git a/inc-calcul-outils.php3 b/inc-calcul-outils.php3
index 8c92ad3c27..41e3ccfdd1 100644
--- a/inc-calcul-outils.php3
+++ b/inc-calcul-outils.php3
@@ -512,4 +512,24 @@ function sql_rubrique_fond($contexte) {
 	}
 }
 
+// Ajouter "&lang=..." si la langue de base n'est pas celle du site
+function lang_parametres_forum($s) {
+
+	// ne pas se fatiguer si le site est unilingue (plus rapide)
+	if (strstr(lire_meta('langues_utilisees'), ',')
+	// chercher l'identifiant qui nous donnera la langue
+	AND preg_match(',id_(article|breve|rubrique|syndic)=([0-9]+),', $s, $r)){
+		$objet = $r[1];
+		$id = $r[2];
+		list($lang) = spip_fetch_array(spip_query(
+			"SELECT lang FROM spip_${objet}s WHERE id_$objet=$id"
+		));
+		// Si ce n'est pas la meme que celle du site, l'ajouter aux parametres
+		if ($lang AND $lang <> lire_meta('langue_site'))
+			$s .= "&lang=$lang";
+	}
+
+	return $s;
+}
+
 ?>
\ No newline at end of file
-- 
GitLab