3 if (!defined("_ECRIRE_INC_VERSION")) return;
6 * Insertion dans le pipeline insert_head_css (SPIP)
7 * si on a configuré multilang pour s'insérer dans l'espace public
9 * @param string $flux Le contenu du head CSS
10 * @return string $flux Le contenu du head CSS modifié
12 function multilang_insert_head_css($flux){
13 if(!function_exists('lire_config'))
14 include_spip('inc/config');
16 $multilang_public = lire_config('multilang/multilang_public','off');
17 if($multilang_public == 'on'){
23 $flux .= '<link rel="stylesheet" href="'.url_absolue(generer_url_public('multilang.css')).'" type="text/css" media="all" />';
30 * Insertion dans le pipeline insert_head_prive (SPIP)
31 * Ajoute css et javascript dans le <head> privé
35 * @return string $flux
36 * Le contenu du head modifié
38 function multilang_insert_head_prive($flux){
39 if(!function_exists('lire_config'))
40 include_spip('inc/config');
41 $config = lire_config('multilang',array());
43 $flux .= multilang_inserer_head($config);
49 * Insertion dans le pipeline insert_head (SPIP)
50 * si on a configuré multilang pour s'insérer dans l'espace public
54 * @return string $flux
55 * Le contenu du head modifié
57 function multilang_insert_head($flux){
58 if(!function_exists('lire_config'))
59 include_spip('inc/config');
60 $config = lire_config('multilang',array());
62 if($config['multilang_public'] == 'on'){
63 $flux .= multilang_insert_head_css(''); // au cas ou il n'est pas implemente
64 $flux .= multilang_inserer_head($config);
70 * La fonction de modification du $flux pour l'insertion dans le head qu'il
71 * soit privé ou public
73 * @param array $config La configuration du plugin
74 * @return string $data Le contenu textuel qui sera inséré dans le head
76 function multilang_inserer_head($config=array()){
78 * N'activer multilang que si plus d'une langue dans le site
80 if(count($langues = explode(',',$GLOBALS["meta"]["langues_multilingue"])) > 1){
82 <script type="text/javascript" src="'.generer_url_public("multilang.js","lang=".$GLOBALS["spip_lang"]).'"></script>
89 * Insertion dans le pipeline affichage_final (SPIP)
91 * Sur la page crayons.js, on insère également notre javascript pour être utilisable
94 * @param string $flux Le contenu de la page
95 * @return string $flux Le contenu de la page modifiée
97 function multilang_affichage_final($flux){
98 if(isset($_REQUEST['page']) && $_REQUEST['page'] == 'crayons.js'){
99 if(!function_exists('lire_config'))
100 include_spip('inc/config');
101 $config = lire_config('multilang',array());
104 * On n'utilise multilang que si l'espace public est activé ainsi que les crayons
106 if(($config['multilang_public'] == 'on') && ($config['multilang_crayons'] == 'on')){
107 unset($config['multilang_public']);
108 unset($config['multilang_crayons']);
111 if(isset($config['siteconfig']) && $config['siteconfig']){
112 $root .= ',input[type=hidden][name*=name_][value|=meta-valeur]';
113 unset($config['siteconfig']);
116 foreach($config as $conf => $val){
117 if($val == 'on') { // Articles
118 $root .= ',input[type=hidden][name*=name_][value|='.$conf.']:not(input[value|='.$conf.'-logo])';
119 unset($config[$conf]);
123 var crayons_multilang_init = function(){
124 var crayons_root = ".formulaire_spip:has('.$root.')";
125 var fields_selector = "textarea,input:text:not(input.date,input.heure,*.nomulti)";
126 var forms_selector = "form[class!=\'form_upload\'][class!=\'form_upload_icon\']";
127 var root_opt = "form:has(.multilang)";
128 var fields_selector_opt = ".multilang";
129 multilang_init_lang({fields:fields_selector,fields_opt:fields_selector_opt,root:crayons_root,root_opt:root_opt,forms:forms_selector,init_done:false});
132 cQuery(document).ready(function(){
133 if(typeof onAjaxLoad == "function") onAjaxLoad(crayons_multilang_init);
134 crayons_multilang_init();