[PLUGINS] ~maj des plugins
[lhc/web/www.git] / www / plugins / multilang / multilang_pipelines.php
index 85058c8..e4a253b 100644 (file)
@@ -15,9 +15,7 @@ function multilang_insert_head_css($flux){
        \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
@@ -85,6 +83,27 @@ function multilang_inserer_head($config=array()){
        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
@@ -95,40 +114,44 @@ function multilang_inserer_head($config=array()){
  * @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