diff --git a/inc-balises.php3 b/inc-balises.php3 index e18e9416c9e794caeb5db293fb89873abf693061..3b538a25faacd1950400d1982059a214814e8df3 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 8c92ad3c27c1d8e1b43aeb2c6576a6a7b6b9fafb..41e3ccfdd1abb10a7b45b81ff6194d3f4671bf0c 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