source: spip-zone/_plugins_/multilang/trunk/alire.txt @ 106748

Last change on this file since 106748 was 106748, checked in by marcimat@…, 3 years ago

Mauvais caractères utf8.

File size: 3.6 KB
Line 
1
2Tous les champs input:text et textarea sauf ceux des forms .form_upload et .form_upload_icon sont traites dans :
3- articles
4- rubriques
5- configuration du site
6- auteurs (interessant uniquement pour le champs BIO)
7- documents dans les colonnes de gauche des pages d'edition d'articles et de rubriques
8- documents dans les parties basses des pages de presentation des articles et rubriques
9- groupe de mots cles
10- mots cles
11- sites
12- Breves
13
14
15A faire :
16- F&T : pb de doublon avec forms_lang.js
17- Integration avec Porte-Plume : quand on change de langue, la previsu "Voir" ne bascule pas
18
19- Suggestion de RastaPopoulos : J'avais une idée supplémentaire pour que ce soit extensible : activer également ce système sur tous les champs ayant une classe "multilang". Fait, a tester avec class "multilang"
20
21Trucs a regler :
221.-------------
23Avec Mediatheque, l'init est rappelee grace au onAjaxLoad. Et affiche bien le menu lang dans la modale. Mais un 2e menu est aussi rajoute dans le doc principal sous la modale de mediatheque... De meme quand on ferme la modale, on repasse par l'init... Et on se retrouve avec un 3e menu. J'ai donc interdit la creation d'un menu s'il en existe deja un dans la div :
24fct forms_init_multi :
25                if(!container.find('.menu_lang').size())
26                        container.prepend("<div class='menu_lang'>");
27et supprime le test de la fonction d'init (qui est un peu bourrin de toute facon):
28        //if(multilang_root.find('.menu_lang').length > 0) return;
29
30Premier bug : Dans une page d'edition article ou rubrique, si on modifie le doc + enregistrer le doc, PUIS enregistrer l'article (ou la rubrique) on passe 2 fois dans le submit et les champs ont la structure multi en double
31
32Solution :
33function forms_attach_submit() {
34        if($(this).parents('.ajax').size() && $(this).find('input[name=var_ajax]')){
35                $(this).on('form-pre-serialize',forms_multi_submit);
36        }else{
37                var oldsubmit = this.onsubmit;
38                this.onsubmit = "";
39                if(oldsubmit && oldsubmit != "")
40                        $(this).submit(function(){forms_multi_submit.apply(this);return oldsubmit.apply(this);})
41                else
42                        if(oldsubmit != "")$(this).submit(forms_multi_submit);
43        }
44}
45Ca marche mais je ne pige pas bien...  En fait quand on charge la page d'edition, le this.onsubmit est undefined et on rajoute une action sur le submit : forms_multi_submit . Lors du 2e passage (onAjaxLoad), le this.onsubmit vaut "" et on rajoutait une 2e fois le forms_multi_submit... Mais pourquoi une chaine vide ?
46
47Avec ou sans mediatheque, donc maintenant ca fonctionne
48
492.---------------
50Dans le pipeline, j'ai rajoute un 2e passage par l'init pour la suggestion de Rasta :
51forms_selector = $(".multilang").parents("form")
52multilang_init_lang({fields:".multilang",forms:forms_selector});
53du coup, y'a pas de root de defini, donc le multilang agit sur tout le document
54
55Effet, le le menu lang s'affiche bien, mais ne fonctionne plus
56
57En fait faut pas passer 2 fois dans la fonction d'init. Ce n'est pas prevu pour. Donc faut tout integrer en un appel :
58
59        jQuery(document).ready(function(){
60                function multilang_init(){
61                        root = "'.$root.'" ;
62                        fields_selector = "textarea,input:text:not(input#id_parent,input.password,input#new_login,#titreparent,*.nomulti),.multilang" ;
63                        forms_selector = ".multilang:parent,form[class!=\'form_upload\'][class!=\'form_upload_icon\']" ;
64                        multilang_init_lang({fields:fields_selector,root:root,forms:forms_selector});
65                }
66                multilang_init();
67                if(typeof onAjaxLoad == "function") onAjaxLoad(multilang_init);
68        });
69
70Bon donc ca marche toujours avec ou sans mediatheque... Reste plus qu'a tester avec un plugin qui veut du multilang
71
Note: See TracBrowser for help on using the repository browser.