Changeset 57235 in spip-zone


Ignore:
Timestamp:
Jan 16, 2012, 3:29:10 PM (8 years ago)
Author:
kent1@…
Message:

Passage en version 1.1.10 :

On affiche tout en UTF-8 même si dans la base ce n'est pas de la sorte (chaque modification d'une chaine l'enregistrera en UTF-8 du coup)
=> Nécessite le filtre tradlang_utf8 dans les fonctions

Amélioration des js dans le crayons et le formulaire de modification de chaine de langue :
-* Dans les crayons on passe par un confirm() si on n'a pas changé le statut, on empêche le crayon de fonctionner si on annule
-* Dans le formulaire d'édition, on utilise le même mécanisme en affichant un message au keyup si le statut n'est pas modifié + confirm() lors de la validation

On n'affiche que les révisions générales sur le sommaire

Location:
_plugins_/trad-lang/trad-lang_spip2
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trad-lang_spip2/action/editer_tradlang.php

    r56657 r57235  
    4949       
    5050        $invalideur = "id='id_tradlang/$id_tradlang'";
    51        
    5251        if ($err = objet_modifier_champs('tradlang', $id_tradlang,
    5352                array(
  • _plugins_/trad-lang/trad-lang_spip2/controleurs/str_statut.html

    r56654 r57235  
    66#CACHE{0}
    77<B_a>
     8<BOUCLE_a(TRADLANG tradlang_modules){id_tradlang}>
    89<fieldset style="#ENV{style}">
    910<ul>
    10 <BOUCLE_a(TRADLANG tradlang_modules){id_tradlang}>
     11
    1112<li class="editer_statut">
    12         <script type='text/javascript'>
    13         var contenu_orig = '[(#STR**|entites_html|replace{"\n","_"}|replace{"\r",""}|replace{"\t",""})]';
    14         var me = cQuery(".tradlang-str_statut-#ID_TRADLANG");
    15         var id = me.crayon().find('form');
    16         cQuery(id).submit(function(){
    17                 var newstatut = $(this).find('#statut').val();
    18                 var new_contenu = $(this).find('#str').val().replace(/\n/,'_');
    19                 if((new_contenu != contenu_orig) && (newstatut != 'OK'))
    20                         alert('<:tradlang:crayon_changer_statut|filtrer_entites|texte_script:>');
    21         });
    22         </script>
    2313        <label><:tradlang:label_tradlang_status:></label>
    2414        <select class="text crayon_active" name="#ENV{name_statut}" id="statut">
     
    2919</li>
    3020<BOUCLE_orig(TRADLANG){id=#ID}{module=#MODULE}{lang=#LANG_MERE}>
     21<script type='text/javascript'>
     22        var contenu_orig = '[(#STR**|tradlang_utf8|entites_html|replace{"\n","_"}|replace{"\r",""}|replace{"\t",""})]';
     23        var me = cQuery(".tradlang-str_statut-#_a:ID_TRADLANG");
     24        var id = me.crayon().find('form');
     25        cQuery(id).bind('form-submit-validate',function(truc,a, e, options, veto){
     26                var newstatut = cQuery(id).find('#statut').val();
     27                var new_contenu = cQuery(id).find('#str').val().replace(/\n/,'_');
     28                if((new_contenu != contenu_orig) && (newstatut != 'OK'))
     29                        if(!window.confirm('<:tradlang:crayon_changer_statut|filtrer_entites|texte_script:>')){
     30                                veto.veto = true;
     31                        }
     32        });
     33</script>
    3134<li class="original">
    3235        <div>
    3336        <label><:tradlang:label_version_originale{lang=#LANG}:></label>
    34         <textarea readonly="readonly" class="crayon-active readonly" style="width:#ENV{largeur}px;text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|entites_html)]</textarea>
     37        <textarea readonly="readonly" class="crayon-active readonly" style="width:#ENV{largeur}px;text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|tradlang_utf8|entites_html)]</textarea>
    3538        </div>
    3639</li>
     
    3942        <label><:tradlang:label_tradlang_str:></label>
    4043        <textarea class="crayon-active" name="#ENV{name_str}" id="str"
    41          style="width:#ENV{largeur}px; height:#ENV{hauteur}px;#ENV{style};text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|entites_html)]</textarea>
     44         style="width:#ENV{largeur}px; height:#ENV{hauteur}px;#ENV{style};text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|tradlang_utf8|entites_html)]</textarea>
    4245</li>
    43 </BOUCLE_a>
    4446</ul>
    4547</fieldset>
     48</BOUCLE_a>
    4649</B_a>
  • _plugins_/trad-lang/trad-lang_spip2/formulaires/editer_tradlang.html

    r56168 r57235  
    11<div class="formulaire_spip formulaire_tradlang_ajout_codelangue" id="formulaire_tradlang_ajout_codelangue">
    2         <!-- <br class='bugajaxie' /> -->
    32        [<p class='reponse_formulaire reponse_formulaire_ok'>(#ENV*{message_ok})</p>]
    43        [<p class='reponse_formulaire reponse_formulaire_erreur'>(#ENV*{message_erreur})</p>]
     
    98                #ACTION_FORMULAIRE{#ENV{action}}
    109                <ul>
    11                         <li class="editer_statut obligatoire[(#ENV{erreurs}|table_valeur{statut}|oui)erreur]">
     10                        <li class="editer editer_statut obligatoire[(#ENV{erreurs}|table_valeur{statut}|oui)erreur]">
    1211                                <label for="statut"><:tradlang:label_tradlang_status:></label>[
    1312                                <span class="erreur_message">(#ENV{erreurs}|table_valeur{statut})</span>]
     
    1817                                </select>
    1918                        </li>
    20                         <li class="readonly">
     19                        <li class="editer readonly">
    2120                                <BOUCLE_orig(TRADLANG){id=#ENV{id}}{lang=#ENV{lang_orig}}{0,1}>
    2221                                #SET{comm_orig,#COMM}
    2322                                [(#ENV{lang_orig}|=={#ENV{lang_mere}}|oui)<label><:tradlang:label_version_originale{lang=#ENV{lang_orig}}:></label>]
    2423                                [(#ENV{lang_orig}|=={#ENV{lang_mere}}|non)<label><:tradlang:label_version_selectionnee{lang=#ENV{lang_orig}}:></label>]
    25                                 <textarea class="texte" name="lang_orig" id="lang_orig_str" readonly="readonly" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR*|entites_html)]</textarea>
     24                                <textarea class="texte" name="lang_orig" id="lang_orig_str" readonly="readonly" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR*|tradlang_utf8|entites_html)]</textarea>
    2625                                </BOUCLE_orig>
    2726                                </B_orig>
     
    2928                                #SET{comm_orig,#COMM}
    3029                                <label><:tradlang:label_version_originale{lang=#ENV{lang_mere}}:></label>
    31                                 <textarea class="texte" name="lang_orig" id="lang_orig_str" readonly="readonly" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR*|entites_html)]</textarea>
     30                                <textarea class="texte" name="lang_orig" id="lang_orig_str" readonly="readonly" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR*|tradlang_utf8|entites_html)]</textarea>
    3231                                </BOUCLE_mere>
    3332                                <//B_orig>
    3433                                <input type="hidden" class="hidden" value="#ENV{lang_orig}" />
    3534                        </li>
    36                         <li class='editer_str obligatoire[(#ENV{erreurs}|table_valeur{str}|oui)erreur]'>
     35                        <li class='editer editer_str obligatoire[(#ENV{erreurs}|table_valeur{str}|oui)erreur]'>
    3736                                <label for='str'><:tradlang:label_tradlang_str:></label>[
    3837                                <span class="erreur_message">(#ENV{erreurs}|table_valeur{str})</span>]
    39                                 <textarea class="texte" name="str" id="str">[(#ENV**{str})]</textarea>
     38                                <div class="notice" style="display:none;"><:tradlang:crayon_changer_statut:></div>
     39                                <textarea class="texte" name="str" id="str">[(#ENV**{str}|tradlang_utf8|entites_html)]</textarea>
    4040                        </li>
    41                         <li class='readonly'>
     41                        <li class='editer readonly'>
    4242                                [(#ENV{lang_orig}|=={#ENV{lang_mere}}|oui)<label><:tradlang:label_version_originale_comm{lang=#ENV{lang_orig}}:></label>]
    4343                                [(#ENV{lang_orig}|=={#ENV{lang_mere}}|non)<label><:tradlang:label_version_selectionnee_comm{lang=#ENV{lang_orig}}:></label>]
    4444                                <textarea class="texte" name="comm_orig" id="comm_orig" readonly="readonly" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#GET*{comm}|entites_html)]</textarea>
    4545                        </li>
    46                         <li class='editer_comm[(#ENV{erreurs}|table_valeur{comm}|oui)erreur]'>
     46                        <li class='editer editer_comm[(#ENV{erreurs}|table_valeur{comm}|oui)erreur]'>
    4747                                <label for='comm'><:tradlang:label_tradlang_comm:></label>[
    4848                                <span class="erreur_message">(#ENV{erreurs}|table_valeur{comm})</span>]
     49                                <p class="explication"><:tradlang:explication_comm:></p>
    4950                                <textarea class="texte" name="comm" id="comm" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#ENV*{comm}|entites_html)]</textarea>
    5051                        </li>
     
    5657        </BOUCLE_si_editable>
    5758</div>
     59
     60<script type='text/javascript'>
     61        var contenu_orig = '[(#ENV**{str}|tradlang_utf8|entites_html|replace{"\n","_"}|replace{"\r",""}|replace{"\t",""})]';
     62        var statut_orig = '#STATUT';
     63        jQuery('#formulaire_tradlang_ajout_codelangue form').submit(function(){
     64                var newstatut = jQuery(this).find('#statut').val();
     65                var new_contenu = jQuery(this).find('#str').val().replace(/\n/,'_');
     66                if((new_contenu != contenu_orig) && (newstatut != 'OK'))
     67                        if(!window.confirm('<:tradlang:crayon_changer_statut|filtrer_entites|texte_script:>'))
     68                                return false;
     69        });
     70        jQuery('#formulaire_tradlang_ajout_codelangue #str').keyup(function(){
     71                var newstatut = jQuery('#formulaire_tradlang_ajout_codelangue #statut').val();
     72                var new_contenu = jQuery(this).val().replace(/\n/,'_');
     73                if((new_contenu != contenu_orig) && (newstatut != 'OK') && jQuery(this).parent('li').find('.notice').is(':hidden')){
     74                        jQuery(this).parent('li').find('.notice').toggle();
     75                }else if((new_contenu == contenu_orig) && jQuery(this).parent('li').find('.notice').is(':visible')){
     76                        jQuery(this).parent('li').find('.notice').toggle();
     77                }
     78        });
     79        jQuery('#formulaire_tradlang_ajout_codelangue #statut').change(function(){
     80                var newstatut = jQuery(this).val();
     81                var new_contenu = jQuery('#formulaire_tradlang_ajout_codelangue #str').val().replace(/\n/,'_');
     82                if((new_contenu != contenu_orig) && (newstatut != 'OK') && (newstatut == statut_orig) && jQuery('#formulaire_tradlang_ajout_codelangue .editer_str .notice').is(':hidden')){
     83                        jQuery('#formulaire_tradlang_ajout_codelangue .editer_str .notice').toggle();
     84                }else if((new_contenu != contenu_orig) && (newstatut == 'OK') && jQuery('#formulaire_tradlang_ajout_codelangue .editer_str .notice').is(':visible')){
     85                        jQuery('#formulaire_tradlang_ajout_codelangue .editer_str .notice').toggle();
     86                }
     87                else if((new_contenu == contenu_orig) && jQuery('#formulaire_tradlang_ajout_codelangue .editer_str .notice').is(':visible')){
     88                        jQuery('#formulaire_tradlang_ajout_codelangue .editer_str .notice').toggle();
     89                }
     90        });
     91</script>
  • _plugins_/trad-lang/trad-lang_spip2/inclure/tr_tradlang.html

    r57040 r57235  
    33                <td class="code_langue">#ID</td>
    44                <BOUCLE_revise_orig(TRADLANG){module}{lang=#ENV{lang_orig}}{id=#ID}>
    5                 <td class="origine" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[&lt;(#STATUT|!={OK}|?{#STATUT})&gt; ][(#STR**|entites_html|nl2br)]</td>
     5                <td class="origine" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|tradlang_utf8|entites_html|nl2br)]</td>
    66                </BOUCLE_revise_orig>
    77                <td class="origine" style="text-align:#LANG_LEFT;" dir="#LANG_DIR"><:tradlang:str_existe_plus:></td>
    88                <//B_revise_orig>
    9                 <td class="cible #EDIT{str_statut}" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|entites_html|nl2br)]</td>
     9                <td class="cible #EDIT{str_statut}" style="text-align:#LANG_LEFT;" dir="#LANG_DIR">[(#STR**|tradlang_utf8|entites_html|nl2br)]</td>
    1010                <td class="statut" width="50px">[(#STATUT|sinon{<:tradlang:info_status_ok:>})]</td>
    1111                <td class="modifier" width="50px"><a href="[(#URL_TRADLANG|parametre_url{lang_orig,#ENV{lang_orig}}|parametre_url{retour,#SELF})]"><:tradlang:lien_editer_chaine:></a></td>
  • _plugins_/trad-lang/trad-lang_spip2/lang/tradlang_fr.php

    r57194 r57235  
    3030
    3131        // E
    32         'entrerlangue' => 'Ajouter un code langue',
     32        'entrerlangue' => 'Ajouter un code langue', 
    3333        'erreur_aucun_item_langue_mere' => 'La langue mère "@lang_mere@" ne contient aucun item de langue.',
    3434        'erreur_aucun_module' => 'Il n\'y a pas de modules disponibles dans la base.',
     
    4545        'erreur_pas_langue_cible' => 'Sélectionnez une langue cible',
    4646        'erreur_repertoire_local_inexistant' => 'Attention : le répertoire pour la sauvegarde locale "squelettes/lang" est inexistant',
     47        'explication_comm' => 'Le commentaire est une information ajoutée dans le fichier de langue afin d\'expliciter par exemple un choix de traduction particulier.',
    4748        'explication_langue_cible' => 'La langue vers laquelle vous traduisez.',
    4849        'explication_langue_origine' => 'La langue depuis laquelle vous traduisez (Seules les langues 100% complètes sont disponibles).',
  • _plugins_/trad-lang/trad-lang_spip2/noisettes/infos/tradlang_infos_module.html

    r56659 r57235  
    2828                <p><img src="#CHEMIN{images/rouge.gif}" alt="" />&nbsp;<:tradlang:message_synchro_base_fichier_pas_ok:></p>
    2929                [(#GET{auth_trad}|oui)
    30                         [(#BOUTON_ACTION{<:tradlang:label_synchro_base_fichier:>,#URL_ACTION_AUTEUR{tradlang_synchro_base_fichier,#ENV{module},#SELF}})]
     30                        [(#BOUTON_ACTION{<:tradlang:label_synchro_base_fichier:>,#URL_ACTION_AUTEUR{tradlang_synchro_base_fichier,#MODULE,#SELF}})]
    3131                ]
    3232        ]]
     
    7272        [(#GET{update}|=={oui}|oui)
    7373                [(#GET{auth_trad}|oui)
    74                         [(#BOUTON_ACTION{<:tradlang:label_update_langues_cible_mere:>,#URL_ACTION_AUTEUR{tradlang_verifier_langue_base,#ENV{module}-#LANG,#SELF}})]
     74                        [(#BOUTON_ACTION{<:tradlang:label_update_langues_cible_mere:>,#URL_ACTION_AUTEUR{tradlang_verifier_langue_base,#MODULE/#LANG,#SELF}})]
    7575                ]
    7676                [(#GET{auth_trad}|non)
     
    8484                <p><img src="#CHEMIN{images/rouge.gif}" alt="" />&nbsp;<:tradlang:message_synchro_base_fichier_pas_ok:></p>
    8585                [(#GET{auth_trad}|oui)
    86                         [(#BOUTON_ACTION{<:tradlang:label_synchro_base_fichier:>,#URL_ACTION_AUTEUR{tradlang_synchro_base_fichier,#ENV{module},#SELF}})]
     86                        [(#BOUTON_ACTION{<:tradlang:label_synchro_base_fichier:>,#URL_ACTION_AUTEUR{tradlang_synchro_base_fichier,#MODULE,#SELF}})]
    8787                ]
    8888        ]]
  • _plugins_/trad-lang/trad-lang_spip2/noisettes/listes/tradlang_liste_revision.html

    r55492 r57235  
    33<div>
    44        <h3><:tradlang:titre_revisions_sommaire:></h3>
    5         <B_versions_auteur>
    6         <BOUCLE_versions_auteur(VERSIONS){objet=tradlang}{id_auteur=#SESSION{id_auteur}}{0,1}>
    7         <div class="onglets_simple clearfix">
    8                 <ul>
    9                         <li>[(#SELF|parametre_url{id_auteur,''}|parametre_url{debut_liste_rev,''}|lien_ou_expose{<:revisions:voir_toutes_les_revisions:>,[(#SESSION{id_auteur}|=={#ENV{id_auteur}}|non)],ajax})]</li>
    10                         <li>[(#SELF|parametre_url{id_auteur,#SESSION{id_auteur}}|parametre_url{debut_liste_rev,''}|lien_ou_expose{<:revisions:voir_mes_revisions:>,[(#SESSION{id_auteur}|=={#ENV{id_auteur}}|oui)],ajax})]</li>
    11                 </ul>
    12         </div>
    13         </BOUCLE_versions_auteur>
    14         </B_versions_auteur>
    155        #SET{url_modif,#URL_PAGE{tradlang_revision}}
    16         <INCLURE{fond=prive/objets/liste/versions,objet=tradlang,url_modif=#GET{url_modif},env,ajax,sinon=<:revisions:info_aucune_revision:>} />
     6        <INCLURE{fond=prive/objets/liste/versions,objet=tradlang,url_modif=#GET{url_modif},ajax,sinon=<:revisions:info_aucune_revision:>} />
    177</div>
    188</BOUCLE_versions>
    19 </B_versions>
  • _plugins_/trad-lang/trad-lang_spip2/paquet.xml

    r56962 r57235  
    22        prefix="tradlang"
    33        categorie="outil"
    4         version="1.1.9"
     4        version="1.1.10"
    55        etat="dev"
    66        compatibilite="[3.0.0-dev;["
     
    2828        <necessite nom="revisions" compatibilite="[1.4.1;[" />
    2929        <necessite nom="saisies" compatibilite="[1.9.1;[" />
    30         <necessite nom="crayons" compatibilite="[1.9.8;[" />
     30        <necessite nom="crayons" compatibilite="[1.13.4;[" />
    3131        <necessite nom="Zpip" compatibilite="[2.0.3;[" />
    3232        <necessite nom="Zcore" compatibilite="[2.0.0-dev;[" />
  • _plugins_/trad-lang/trad-lang_spip2/tradlang_fonctions.php

    r56962 r57235  
    239239        return $having;
    240240}
     241
     242function tradlang_utf8($str){
     243        $str = unicode_to_utf_8(
     244                html_entity_decode(
     245                        preg_replace('/&([lg]t;)/S', '&amp;\1', $str),
     246                        ENT_NOQUOTES, 'utf-8')
     247        );
     248        return $str;
     249}
    241250?>
  • _plugins_/trad-lang/trad-lang_spip2/vues/str_statut.html

    r57040 r57235  
    11<BOUCLE_a(TRADLANG){id_tradlang}>
    2 [(#STR**|entites_html|nl2br)]
     2[(#STR**|tradlang_utf8|entites_html|nl2br)]
    33<script type="text/javascript">
    44$('#tradlang-#ID_TRADLANG').ajaxReload();
Note: See TracChangeset for help on using the changeset viewer.