Changeset 118773 in spip-zone for _plugins_/crayons/trunk


Ignore:
Timestamp:
Nov 27, 2019, 10:27:43 AM (13 days ago)
Author:
gouz@…
Message:

modification revision_traduction() pour modification uniquement du 1er fichier de lang ou le motif est trouvé

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/crayons/trunk/action/crayons_store.php

    r118766 r118773  
    528528 * suite à un crayon sur une chaine de langue
    529529 *
    530  *
    531530 * @param string $a
    532531 *   Nom ou clé du module de langue
     
    537536**/
    538537function revision_traduction($a, $c = false) {
    539   if (  $a == "public" && ! test_espace_prive() ) $a="local";
    540         if ( $fichier_lang = find_in_path("lang/".$a."_".substr($GLOBALS['idx_lang'],-2).".php") ){
    541     foreach ($c as $key => $value){
    542       $GLOBALS[$GLOBALS['idx_lang']][$key] = $value;
    543       spip_log("revision_traduction(): MAJ motif langue $key dans $fichier_lang", _LOG_INFO_IMPORTANTE);
    544     }
    545     // TODO : enregistrer la modification dans le fichier de langue
    546     $contenu_original = file_get_contents($fichier_lang);
    547     $contenu_modifie = "<?php\nif (!defined('_ECRIRE_INC_VERSION')) return;\n".'$GLOBALS[$GLOBALS[\'idx_lang\']] = array(';
    548     foreach ($GLOBALS[$GLOBALS['idx_lang']] as $key => $value){
    549       if ( strpos($contenu_original, "'$key'") !== false ){
    550         $contenu_modifie.= "'".$key."' => '".str_replace("'", "\'", $value)."',\n";
    551       } else {
    552         spip_log("clé de GLOBALS incohérente :  \$GLOBALS[".$GLOBALS['idx_lang']."][$key] = ".$GLOBALS[$GLOBALS['idx_lang']][$key], _LOG_INFO_IMPORTANTE);
    553       }
    554     }
    555     $contenu_modifie .=');';   
    556     include_spip('inc/flock');
    557     ecrire_fichier($fichier_lang, $contenu_modifie);
    558   }
     538        if ( $a == "public" && ! test_espace_prive() ) $a="local";
     539        foreach ( chercher_module_lang($a, substr($GLOBALS['idx_lang'],-2)) as $fichier_lang ) {
     540                $motif = array_keys($c)[0];
     541                $valeur = array_values($c)[0];
     542                $contenu_original = file_get_contents($fichier_lang);
     543                if ( strpos($contenu_original, "'$motif'") === false) // motif absent du fichier
     544                        continue; // fichier suivant
     545
     546                $GLOBALS[$GLOBALS['idx_lang']][$motif] = $valeur;
     547                spip_log("revision_traduction(): MAJ motif '$motif' dans $fichier_lang", _LOG_INFO_IMPORTANTE);
     548                $contenu_modifie = "<?php\nif (!defined('_ECRIRE_INC_VERSION')) return;\n".'$GLOBALS[$GLOBALS[\'idx_lang\']] = array(';
     549                foreach ($GLOBALS[$GLOBALS['idx_lang']] as $key => $value){
     550                        if ( strpos($contenu_original, "'$key'") !== false ){
     551                                $contenu_modifie.= "'".$key."' => '".str_replace("'", "\'", $value)."',\n";
     552                        }
     553                }
     554                $contenu_modifie .=');';
     555                if ( strpos($contenu_modifie, "' => '") !== false ) {
     556                        include_spip('inc/flock');
     557                        ecrire_fichier($fichier_lang, $contenu_modifie);
     558                        break; // on modifie uniquement le 1er fichier retourné, les autres sont des surcharges
     559                }
     560        }
    559561}
    560562
Note: See TracChangeset for help on using the changeset viewer.