\r
$multilang_public = lire_config('multilang/multilang_public','off');\r
if($multilang_public == 'on'){\r
-\r
static $done = false;\r
-\r
if (!$done) {\r
$done = true;\r
$flux .= '<link rel="stylesheet" href="'.url_absolue(generer_url_public('multilang.css')).'" type="text/css" media="all" />';\r
return $data;\r
}\r
\r
+/**\r
+ * Insertion dans le pipeline formulaire_traiter (SPIP)\r
+ * On purge le cache js à chaque changement de la config de langue\r
+ * \r
+ * @param $flux array\r
+ * Le contexte du pipeline\r
+ * @return $flux array\r
+ * Le contexte du pipeline modifié\r
+ */\r
+function multilang_formulaire_traiter($flux){\r
+ if($flux['args']['form'] == 'configurer_multilinguisme'){\r
+ include_spip('inc/invalideur');\r
+ $rep_js = _DIR_VAR.'cache-js/';\r
+ $rep_css = _DIR_VAR.'cache-css/';\r
+ purger_repertoire($rep_js);\r
+ purger_repertoire($rep_css);\r
+ suivre_invalideur('1');\r
+ }\r
+ return $flux;\r
+}\r
+\r
/**\r
* Insertion dans le pipeline affichage_final (SPIP)\r
* \r
* @return string $flux Le contenu de la page modifiée \r
*/\r
function multilang_affichage_final($flux){\r
- if(isset($_REQUEST['page']) && $_REQUEST['page'] == 'crayons.js'){\r
+ if(isset($_REQUEST['page']) && $_REQUEST['page'] == 'crayons.js' && (count($langues = explode(',',$GLOBALS["meta"]["langues_multilingue"])) > 1)){\r
if(!function_exists('lire_config'))\r
include_spip('inc/config');\r
$config = lire_config('multilang',array());\r
- \r
+\r
/**\r
* On n'utilise multilang que si l'espace public est activé ainsi que les crayons\r
*/\r
if(($config['multilang_public'] == 'on') && ($config['multilang_crayons'] == 'on')){\r
unset($config['multilang_public']);\r
unset($config['multilang_crayons']);\r
- $root = '' ;\r
- \r
+ $root = array();\r
+\r
if(isset($config['siteconfig']) && $config['siteconfig']){\r
- $root .= ',input[type=hidden][name*=name_][value|=meta-valeur]';\r
+ $root[] = 'input[type=hidden][name*=name_][value|=meta-valeur]';\r
unset($config['siteconfig']);\r
}\r
- \r
+\r
foreach($config as $conf => $val){\r
- if($val == 'on') { // Articles\r
- $root .= ',input[type=hidden][name*=name_][value|='.$conf.']:not(input[value|='.$conf.'-logo])';\r
+ if($conf == 'gis') // Les points gis sont traités bizarrement dans les crayons qui enlèvent purement et simplement leur 's'\r
+ $conf = 'gi';\r
+ if($val == 'on') {\r
+ $root[] = 'input[type=hidden][name*=name_][value|='.$conf.']:not(input[value|='.$conf.'-logo]):not(input[value|='.$conf.'-vignette]):not(input[value|='.$conf.'-fichier])';\r
unset($config[$conf]);\r
}\r
}\r
$texte = '\r
var crayons_multilang_init = function(){\r
- var crayons_root = ".formulaire_spip:has('.$root.')";\r
- var fields_selector = "textarea,input:text:not(input.date,input.heure,*.nomulti)";\r
- var forms_selector = "form[class!=\'form_upload\'][class!=\'form_upload_icon\']";\r
- var root_opt = "form:has(.multilang)";\r
- var fields_selector_opt = ".multilang";\r
+ if(typeof(multilang_init_lang) == "function"){\r
+ var crayons_root = ".formulaire_spip:has('.implode(",",$root).')",\r
+ fields_selector = "textarea,input:text:not(input.date,input.heure,*.nomulti)",\r
+ forms_selector = "form[class!=\'form_upload\'][class!=\'form_upload_icon\']",\r
+ root_opt = "form:has(.multilang)",\r
+ fields_selector_opt = ".multilang";\r
multilang_init_lang({fields:fields_selector,fields_opt:fields_selector_opt,root:crayons_root,root_opt:root_opt,forms:forms_selector,init_done:false});\r
+ }\r
}\r
- \r
+\r
cQuery(document).ready(function(){\r
if(typeof onAjaxLoad == "function") onAjaxLoad(crayons_multilang_init);\r
crayons_multilang_init();\r