Changeset 44250 in spip-zone


Ignore:
Timestamp:
Feb 6, 2011, 9:16:00 PM (9 years ago)
Author:
esj@…
Message:

admin_lang. Ce plugin semble à l'abandon, mais ce n'est vraiment pas la peine de dupliquer du code, ici celui chargé de fabrique des fichiers de langue. On en extrait donc une fonction bien séparée destinée à cette tâche, utile à validerPlugins. Mais ce plugin d'administration des langues devrait sans doute être fusionné avec langonet.

Location:
_plugins_/admin_lang_2_0
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/admin_lang_2_0/admin_lang_options.php

    r26458 r44250  
    106106}
    107107
    108 // ---------------------------------------------
    109 //      Write File, line by line
    110 // ---------------------------------------------
    111 function wf($myFile, $any_string, $end_line="\n") {
    112         global $display_debug_full;
    113        
    114         if ($display_debug_full) {
    115         print "-> write string : $any_string<br />";
    116         }
    117        
    118         if (substr($any_string, -2) != "?>") {$any_string = $any_string . $end_line;} // append end_line except ending php file
    119         if ($myFile != "") {fputs($myFile, "$any_string");}
    120         else {print "!! Error - File to write is undefined<br />\r";}
    121 }
    122108
    123109
  • _plugins_/admin_lang_2_0/exec/enregistrer_fichier_lang.php

    r26458 r44250  
    99// ---------------------------------------------
    1010
     11if (!defined('_ECRIRE_INC_VERSION')) return;
     12
    1113include_spip('inc/lang_trad');
    1214include_spip('inc/headers');
    1315include_spip('inc/charsets');
    14 
    15 
     16include_spip('inc/enregistrer_fichier_lang');
    1617
    1718function exec_enregistrer_fichier_lang() {
     
    2526        parametres_admin_lang();
    2627
    27         $new_file_full                   = $target_file_full; // could be != if needed
    28 
    29 
    3028        if(!$module or !$submit or !@file_exists($master_file_full) or !@file_exists($target_file_full))
    3129                redirige_par_entete(parametre_url(self(),'exec','admin_lang','&'));
     
    3432        //              TREAT
    3533        // ---------------------------------------------
    36                 $target_table = $_POST['target_table'];
     34        $target_table = $_POST['target_table'];
    3735       
    38                 if ($display_debug) {
     36        if ($display_debug) {
    3937                        print "<H1>TREAT : Enregistrement du fichier langue : $target_file</H1><br />";
    40                 }
     38        }
    4139       
    42                 if ($mode == 'work') {
     40        if ($mode == 'work') {
    4341                        // ---------------------------------------------
    4442                        //              backup init spip files if needed
     
    4846                                // print "<p class='arial2'>" . _T('adminlang:sauvegarde'). " $target_file" . "_bak</p>";       
    4947                        }
    50                 }
     48        }
    5149                // ---------------------------------------------
    5250                //              GET ADDITION
    5351                // ---------------------------------------------
    5452       
    55                 $new_value = $_POST['new_value'];
    56                 $new_trad = $_POST['new_trad'];
     53        $new_value = $_POST['new_value'];
     54        $new_trad = $_POST['new_trad'];
    5755               
    58                 if($new_value!=''){
     56        if($new_value!=''){
    5957                        for ($i = 0; $i < $addition_volume; $i++) {
    6058                                /* ici c'est meilleur! revision du 18 juin*/
     
    8583                // ---------------------------------------------
    8684               
    87                 $ctr = 0;
     85        $ctr = 0;
    8886       
    8987
    90                 if ($display_debug_full) {
     88        if ($display_debug_full) {
    9189                        print "<pre>";
    9290                        print "<H1>target table</H1>";
     
    9694       
    9795       
    98                 while (list($item, $trad) = each ($target_table)) {
     96        foreach($target_table as $item => $trad) {
    9997 
    100                 if ($trad != '') {
    101                          $target_to_change = "";
     98                if (empty($trad))
     99                        unset($target_table[$item]);
     100                else {
    102101                         //traitement pour enregistrement ok
    103102                         if ($charset == 'utf-8') { 
     
    106105                         $trans = get_html_translation_table(HTML_ENTITIES);
    107106                         $trad = strtr($trad, $trans);
    108                          //$trad = addslashes($trad);
    109                                
    110                         $any_line[$ctr] = "'$item' => '$trad$target_to_change',";
    111                         if ($display_debug) {
    112                                 print $any_line[$ctr]."<br />";
    113                         }
    114                         $ctr++;
     107                         $target_table[$item] = $trad;
    115108                }
    116109        }
    117        
    118         // remove last ,
    119         $any_line[$ctr - 1] = substr($any_line[$ctr - 1], 0, -1);
    120        
    121110
    122         // ---------------------------------------------
    123         //              WRITE RESULTING FILE
    124         // ---------------------------------------------
    125         $f = fopen($new_file_full,"w");
    126        
    127         // lock it
    128         flock ($f, LOCK_EX);
    129                        
    130         // ---------------------------------------------
    131         //              write header
    132         // ---------------------------------------------
    133         wf($f, "<?php");
    134         wf($f, "");
    135         wf($f, "// This is a SPIP language file  --  Ceci est un fichier langue de SPIP nommé $nompage genere le NOW()");
    136         wf($f, "// langue / language = $target_lang");
    137         wf($f, "");
    138         wf($f, "\$GLOBALS[\$GLOBALS['idx_lang']] = array(");
    139        
    140         // ---------------------------------------------
    141         //              write body
    142         // ---------------------------------------------
    143         $prev_letter = '';
    144         for ($i = 0; $i < count($any_line); $i++) {
    145                 $first_letter = substr($any_line[$i], 1,1);
    146                
    147                 if ($first_letter != $prev_letter) {
    148                         $first_cap_letter = strtoupper($first_letter);
    149                         wf($f, "");
    150                         wf($f, "");
    151                         wf($f, "// $first_cap_letter");
    152                         $prev_letter = $first_letter;
    153                 }
    154                
    155                 wf($f, $any_line[$i]);
    156         }
    157         wf($f, "");
    158        
    159         // ---------------------------------------------
    160         //              write footer
    161         // ---------------------------------------------
    162         wf($f, "");
    163         wf($f, ");");
    164         wf($f, "");
    165         wf($f, "?>");
    166        
    167         flock ($f, LOCK_UN);
    168         fclose ($f);
    169 
    170         $mode = 'work'; // end of create mode, switch to work mode
     111        $dir_lang = _request('dir_lang');
     112        if (!is_dir($dir_lang))
     113                // soit on prend le sous repertoire lang du plugin admin_lang 
     114                $dir_lang = _DIR_PLUGIN_ADMIN_LANG.'lang';
     115        enregister_fichier_lang($dir_lang, $target_lang, _request('module'), $target_table, $nompage);
    171116        redirige_par_entete(parametre_url(self(),'exec','traduire_module','&'));
    172117
    173118        // ================ end treatment ==========================
    174 
    175 
    176119}
    177120
Note: See TracChangeset for help on using the changeset viewer.