From a78e25a38fc68950daa9b3cd2ccb9d5bcde2aae6 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Wed, 9 Mar 2005 11:05:00 +0000
Subject: [PATCH] =?UTF-8?q?contourner=20la=20limitation=20=C3=A0=20255=20c?=
 =?UTF-8?q?ar=20des=20valeurs=20de=20spip=5Fmeta=20(pour=20spip.net=20le?=
 =?UTF-8?q?=20nombre=20de=20langues=20explose=20cette=20valeur).=20(A=20RE?=
 =?UTF-8?q?VOIR)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/config-lang.php3               |  2 +-
 ecrire/inc_lang.php3                  | 13 +++++++++++--
 formulaires/inc-menu_lang_ecrire.php3 |  4 +++-
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/ecrire/config-lang.php3 b/ecrire/config-lang.php3
index 3af97bd041..65d4b49b16 100644
--- a/ecrire/config-lang.php3
+++ b/ecrire/config-lang.php3
@@ -55,7 +55,7 @@ echo "<input type='hidden' name='changer_config' value='oui'>";
 
 debut_cadre_couleur("langues-24.gif", false, "", _T('info_langue_principale'));
 
-$langues_prop = split(",",lire_meta("langues_proposees"));
+$langues_prop = split(",",$all_langs);
 $langue_site = lire_meta('langue_site');
 
 echo _T('texte_selection_langue_principale');
diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3
index f7dc89b9ea..38dce0952c 100644
--- a/ecrire/inc_lang.php3
+++ b/ecrire/inc_lang.php3
@@ -551,7 +551,8 @@ function init_langues() {
 	global $all_langs, $langue_site;
 	global $pile_langues, $lang_typo, $lang_dir;
 
-	$all_langs = lire_meta('langues_proposees');
+	$all_langs = lire_meta('langues_proposees')
+		.lire_meta('langues_proposees2');
 	$langue_site = lire_meta('langue_site');
 	$pile_langues = array();
 	$lang_typo = '';
@@ -579,7 +580,15 @@ function init_langues() {
 					ecrire_meta('langue_site', $langue_site);
 			}
 			if (defined("_ECRIRE_INC_META")) {
-				ecrire_meta('langues_proposees', $all_langs);
+				# sur spip.net le nombre de langues proposees fait exploser
+				# ce champ limite a 255 caracteres ; a revoir...
+				if (strlen($all_langs) <= 255) {
+					ecrire_meta('langues_proposees', $all_langs);
+					effacer_meta('langues_proposees2');
+				} else {
+					ecrire_meta('langues_proposees', substr($all_langs,0,255));
+					ecrire_meta('langues_proposees2', substr($all_langs,255));
+				}
 				ecrire_metas();
 			}
 		}
diff --git a/formulaires/inc-menu_lang_ecrire.php3 b/formulaires/inc-menu_lang_ecrire.php3
index 519431ad0e..c99b6114a1 100644
--- a/formulaires/inc-menu_lang_ecrire.php3
+++ b/formulaires/inc-menu_lang_ecrire.php3
@@ -9,7 +9,9 @@ $balise_MENU_LANG_ECRIRE_collecte = array('menu_lang');
 
 // s'il n'y a qu'une langue proposee eviter definitivement la balise ?php 
 function balise_MENU_LANG_ECRIRE_stat ($args, $filtres) {
-	if (!strpos(lire_meta('langues_proposees'),',')) return '';
+	global $all_langs;
+	include_ecrire('inc_lang.php3');
+	if (!strpos($all_langs,',')) return '';
 	return $args;
 }
 
-- 
GitLab