[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / multilang / javascript / multilang.js
index 72f0fb7..66caef0 100644 (file)
@@ -329,7 +329,7 @@ function multilang_init_field(el,lang,force) {
                        el.multi = true;\r
                        multilang_match_multi.lastIndex=0;\r
                        el.field_lang['full'] = el.value;\r
-                       while((langs=multilang_match_multi.exec(m[2]))!=null) {\r
+                       while((langs=multilang_match_multi.exec(m[2]))!=null && langs[0] != "") {\r
                                var text = langs[2].match(/^(\d+\.\s+)((?:.|\n|\s)*)/), value;\r
                                // Suppression du numero uniquement pour les titres\r
                                if(multilang_is_title(el) && text!=null) {\r
@@ -372,13 +372,19 @@ function multilang_init_field(el,lang,force) {
                if(el.name.match(/^content_[a-z0-9_]+_titre/)){\r
                        if($(el).parent().is('li'))\r
                                $(el).parent()\r
-                                       .before('<li class="editer_'+numid+'"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /></li>');\r
+                                       .before('<li class="editer editer_'+numid+'"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /></li>');\r
                        else\r
                                $(el)\r
-                                       .before('<div class="editer_titre_numero"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /><br /><br /></div>');\r
-               }else\r
+                                       .before('<div class="editer editer_'+numid+'"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /><br /><br /></div>');\r
+               }else{\r
+                       /* Le formalisme des formulaires peut etre en li ou en div (SPIP 3.1) mais on a toujours un conteneur .editer */\r
+                       var tag = 'div';\r
+                       if($(el).parent().is('li')) {\r
+                               tag = 'li';\r
+                       }\r
                        $(el).parent()\r
-                               .before('<li class="editer_'+numid+'"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /></li>');\r
+                               .before('<'+tag+' class="editer editer_'+numid+'"><label for="titre_numero">'+multilang_lang.numero+'</label><input id="'+numid+'" name="titre_numero" type="text" value="'+el.field_pre_lang+'" size="4" class="text nomulti" /></'+tag+'>');\r
+               }\r
                $('#'+numid).totreat = false;\r
        }\r
 }\r
@@ -483,7 +489,7 @@ function multilang_mark_empty_langs(container,target) {
 \r
 /**\r
  * Action au changement de la langue\r
- * Lorsque l'on clique sur une le menu de langue\r
+ * Lorsque l'on clique sur le menu de langue\r
  * On affiche pour le champ "el" son contenu dans la langue "lang"\r
  *\r
  * @param el Un champ du formulaire (input ou textarea)\r
@@ -502,7 +508,7 @@ function multilang_set_lang(el,lang) {
        el.value = (el.field_lang[lang] == undefined ? "" : el.field_lang[lang]);\r
 \r
        el.titre_el.html(el.value);\r
-\r
+       \r
        multilang_field_set_background(el,lang);\r
 }\r
 \r
@@ -518,33 +524,35 @@ function multilang_set_lang(el,lang) {
 function multilang_field_set_background(el,lang) {\r
        if(lang != 'full'){\r
                if(el.totreat){\r
-                       $(el).removeAttr('readonly').removeClass('multilang_readonly');\r
+                       $(el).removeAttr('readonly').removeClass('multilang_readonly').removeClass('multilang_ltr').removeClass('multilang_rtl');\r
                        if(typeof($(el).attr('class')) != 'undefined'){\r
                                $($(el).attr('class').split(' ')).each(function(){\r
                                        var m = this.match(/^multi_lang_*/);\r
-                                       if(m!=null)\r
-                                               $(el).removeClass(m.input).addClass('multi_lang_'+lang);\r
+                                       if(m!=null) {\r
+                                               $(el).removeClass(m.input).removeClass('multilang_ltr').removeClass('multilang_rtl').addClass('multi_lang_'+lang).addClass('multi_lang_'+multilang_dir_langs[lang]).attr('dir',multilang_dir_langs[lang]);\r
+                                       }\r
                                });\r
                        }\r
-                       $(el).addClass('multi_lang_'+(el.multi?lang:'no_multi'));\r
+                       $(el).addClass('multi_lang_'+(el.multi?lang:'no_multi')).addClass('multi_lang_'+multilang_dir_langs[lang]).attr('dir',multilang_dir_langs[lang]);\r
                }\r
                else{\r
                        if(typeof($(el).attr('class')) != 'undefined'){\r
                                $($(el).attr('class').split(' ')).each(function(){\r
                                        var m = this.match(/^multi_lang_*/);\r
                                        if(m!=null)\r
-                                               $(el).removeClass(m.input);\r
+                                               $(el).removeClass(m.input).removeClass('multilang_ltr').removeClass('multilang_rtl');\r
                                });\r
                        }\r
-                       $(el).css({"background":"url("+multilang_dir_plugin+"/images/multi_forbidden.png) no-repeat right top"});\r
+                       align = multilang_dir_langs[lang] ? (multilang_dir_langs[lang] == 'ltr' ? 'right' : 'left') : 'right';\r
+                       $(el).css({"background":"url("+multilang_dir_plugin+"/images/multi_forbidden.png) no-repeat "+align+" top"});\r
                }\r
        }else{\r
-               $(el).attr('readonly','readonly').addClass('multilang_readonly');\r
+               $(el).attr('readonly','readonly').addClass('multilang_readonly').attr('dir','');\r
                if(typeof($(el).attr('class')) != 'undefined'){\r
                        $($(el).attr('class').split(' ')).each(function(){\r
                                var m = this.match(/^multi_lang_*/);\r
                                if(m!=null)\r
-                                       $(el).removeClass(m.input);\r
+                                       $(el).removeClass(m.input).removeClass('multilang_ltr').removeClass('multilang_rtl');\r
                        });\r
                }\r
        }\r