-<?php\r
-\r
-if (!defined("_ECRIRE_INC_VERSION")) return;\r
-\r
-/**\r
- * Insertion dans le pipeline insert_head_css (SPIP)\r
- * si on a configuré multilang pour s'insérer dans l'espace public\r
- *\r
- * @param string $flux Le contenu du head CSS\r
- * @return string $flux Le contenu du head CSS modifié\r
- */\r
-function multilang_insert_head_css($flux){\r
- if(!function_exists('lire_config'))\r
- include_spip('inc/config');\r
- \r
- $multilang_public = lire_config('multilang/multilang_public','off');\r
- if($multilang_public == 'on'){\r
- static $done = false;\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
- }\r
- }\r
- return $flux;\r
-}\r
-\r
-/**\r
- * Insertion dans le pipeline insert_head_prive (SPIP)\r
- * Ajoute css et javascript dans le <head> privé\r
- *\r
- * @param string $flux \r
- * Le contenu du head\r
- * @return string $flux \r
- * Le contenu du head modifié\r
- */\r
-function multilang_insert_head_prive($flux){\r
- if(!function_exists('lire_config'))\r
- include_spip('inc/config');\r
- $config = lire_config('multilang',array());\r
-\r
- $flux .= multilang_inserer_head($config);\r
-\r
- return $flux;\r
-}\r
-\r
-/**\r
- * Insertion dans le pipeline insert_head (SPIP)\r
- * si on a configuré multilang pour s'insérer dans l'espace public\r
- *\r
- * @param string $flux \r
- * Le contenu du head\r
- * @return string $flux \r
- * Le contenu du head modifié\r
- */\r
-function multilang_insert_head($flux){\r
- if(!function_exists('lire_config'))\r
- include_spip('inc/config');\r
- $config = lire_config('multilang',array());\r
-\r
- if($config['multilang_public'] == 'on'){\r
- $flux .= multilang_insert_head_css(''); // au cas ou il n'est pas implemente\r
- $flux .= multilang_inserer_head($config);\r
- }\r
- return $flux;\r
-}\r
-\r
-/**\r
- * La fonction de modification du $flux pour l'insertion dans le head qu'il\r
- * soit privé ou public\r
- *\r
- * @param array $config La configuration du plugin\r
- * @return string $data Le contenu textuel qui sera inséré dans le head\r
- */\r
-function multilang_inserer_head($config=array()){\r
- /**\r
- * N'activer multilang que si plus d'une langue dans le site\r
- */\r
- if(count($langues = explode(',',$GLOBALS["meta"]["langues_multilingue"])) > 1){\r
- $data = '\r
-<script type="text/javascript" src="'.generer_url_public("multilang.js","lang=".$GLOBALS["spip_lang"]).'"></script>\r
-';\r
- }\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
- * Sur la page crayons.js, on insère également notre javascript pour être utilisable\r
- * dans les crayons\r
- * \r
- * @param string $flux Le contenu de la page\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' && (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
- * 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 = array();\r
-\r
- if(isset($config['siteconfig']) && $config['siteconfig']){\r
- $root[] = 'input[type=hidden][name*=name_][value|=meta-valeur]';\r
- unset($config['siteconfig']);\r
- }\r
-\r
- foreach($config as $conf => $val){\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
- 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
- cQuery(document).ready(function(){\r
- if(typeof onAjaxLoad == "function") onAjaxLoad(crayons_multilang_init);\r
- crayons_multilang_init();\r
- });';\r
- $flux .= $texte;\r
- }\r
- }\r
- return $flux;\r
-}\r
-?>
\ No newline at end of file
+<?php
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+ return;
+}
+
+/**
+ * Insertion dans le pipeline insert_head_css (SPIP)
+ * si on a configuré multilang pour s'insérer dans l'espace public
+ *
+ * @param string $flux Le contenu du head CSS
+ * @return string $flux Le contenu du head CSS modifié
+ */
+function multilang_insert_head_css($flux) {
+ if (!function_exists('lire_config')) {
+ include_spip('inc/config');
+ }
+
+ $multilang_public = lire_config('multilang/multilang_public', 'off');
+ if ($multilang_public == 'on') {
+ static $done = false;
+ if (!$done) {
+ $done = true;
+ $css = url_absolue(generer_url_public('multilang.css'));
+ $flux .= '<link rel="stylesheet" href="'.$css.'" type="text/css" media="all" />';
+ }
+ }
+ return $flux;
+}
+
+/**
+ * Insertion dans le pipeline insert_head_prive (SPIP)
+ * Ajoute css et javascript dans le <head> privé
+ *
+ * @param string $flux
+ * Le contenu du head
+ * @return string $flux
+ * Le contenu du head modifié
+ */
+function multilang_insert_head_prive($flux) {
+ if (!function_exists('lire_config')) {
+ include_spip('inc/config');
+ }
+ $config = lire_config('multilang', array());
+
+ $flux .= multilang_inserer_head($config);
+
+ return $flux;
+}
+
+/**
+ * Insertion dans le pipeline insert_head (SPIP)
+ * si on a configuré multilang pour s'insérer dans l'espace public
+ *
+ * @param string $flux
+ * Le contenu du head
+ * @return string $flux
+ * Le contenu du head modifié
+ */
+function multilang_insert_head($flux) {
+ if (!function_exists('lire_config')) {
+ include_spip('inc/config');
+ }
+ $config = lire_config('multilang', array());
+
+ if (isset($config['multilang_public']) and ($config['multilang_public'] == 'on')) {
+ $flux .= multilang_insert_head_css(''); // au cas ou il n'est pas implemente
+ $flux .= multilang_inserer_head($config);
+ }
+ return $flux;
+}
+
+/**
+ * La fonction de modification du $flux pour l'insertion dans le head qu'il
+ * soit privé ou public
+ *
+ * @param array $config La configuration du plugin
+ * @return string $data Le contenu textuel qui sera inséré dans le head
+ */
+function multilang_inserer_head($config = array()) {
+ /**
+ * N'activer multilang que si plus d'une langue dans le site
+ */
+ if (count(explode(',', $GLOBALS['meta']['langues_multilingue'])) > 1) {
+ $data = '
+<script type="text/javascript" src="'.generer_url_public('multilang.js', 'lang='.$GLOBALS['spip_lang']).'"></script>
+';
+ }
+ return $data;
+}
+
+/**
+ * Insertion dans le pipeline formulaire_traiter (SPIP)
+ * On purge le cache js à chaque changement de la config de langue
+ *
+ * @param $flux array
+ * Le contexte du pipeline
+ * @return $flux array
+ * Le contexte du pipeline modifié
+ */
+function multilang_formulaire_traiter($flux) {
+ if ($flux['args']['form'] == 'configurer_multilinguisme') {
+ include_spip('inc/invalideur');
+ $rep_js = _DIR_VAR.'cache-js/';
+ $rep_css = _DIR_VAR.'cache-css/';
+ purger_repertoire($rep_js);
+ purger_repertoire($rep_css);
+ suivre_invalideur('1');
+ }
+ return $flux;
+}
+
+/**
+ * Insertion dans le pipeline affichage_final (SPIP)
+ *
+ * Sur la page crayons.js, on insère également notre javascript pour être utilisable
+ * dans les crayons
+ *
+ * @param string $flux Le contenu de la page
+ * @return string $flux Le contenu de la page modifiée
+ */
+function multilang_affichage_final($flux) {
+ if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'crayons.js'
+ and (count(explode(',', $GLOBALS['meta']['langues_multilingue'])) > 1)) {
+ if (!function_exists('lire_config')) {
+ include_spip('inc/config');
+ }
+ $config = lire_config('multilang', array());
+
+ /**
+ * On n'utilise multilang que si l'espace public est activé ainsi que les crayons
+ */
+ if (($config['multilang_public'] == 'on') && ($config['multilang_crayons'] == 'on')) {
+ unset($config['multilang_public']);
+ unset($config['multilang_crayons']);
+ $root = array();
+
+ if (isset($config['siteconfig']) && $config['siteconfig']) {
+ $root[] = 'input[type=hidden][name*=name_][value|=meta-valeur]';
+ unset($config['siteconfig']);
+ }
+
+ foreach ($config as $conf => $val) {
+ if ($conf == 'gis') {
+ // Les points gis sont traités bizarrement dans les crayons qui enlèvent
+ // purement et simplement leur 's'
+ $conf = 'gi';
+ }
+ if ($val == 'on') {
+ $root[] = 'input[type=hidden][name*=name_][value|='.$conf.']:not(input[value|='.$conf.'-logo]):not(input[value|='.$conf.'-vignette]):not(input[value|='.$conf.'-fichier])';
+ unset($config[$conf]);
+ }
+ }
+ $texte = '
+ var crayons_multilang_init = function(){
+ if(typeof(multilang_init_lang) == "function"){
+ var crayons_root = ".formulaire_spip:has('.implode(',', $root).')",
+ fields_selector = "textarea,input:text:not(input.date,input.heure,*.nomulti)",
+ forms_selector = "form[class!=\'form_upload\'][class!=\'form_upload_icon\']",
+ root_opt = "form:has(.multilang)",
+ fields_selector_opt = ".multilang";
+ multilang_init_lang({fields:fields_selector,fields_opt:fields_selector_opt,root:crayons_root,root_opt:root_opt,forms:forms_selector,init_done:false});
+ }
+ }
+
+ cQuery(document).ready(function(){
+ if(typeof onAjaxLoad == "function") onAjaxLoad(crayons_multilang_init);
+ crayons_multilang_init();
+ });';
+ $flux .= $texte;
+ }
+ }
+ return $flux;
+}