Changeset 119822 in spip-zone


Ignore:
Timestamp:
Jan 17, 2020, 5:42:43 PM (8 months ago)
Author:
Cerdic
Message:

debut refactoring ecriveur

Location:
_plugins_/trad-lang/trunk
Files:
1 added
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk

    • Property subgit:lock:eac69509a9798e3e195960b113c8cba41125e8b5 deleted
    • Property subgit:lock:fe9c68409dad135dee1eaf013161d49a777e85b9 set to 2020-01-17T18:47:13.931
  • _plugins_/trad-lang/trunk/inc/salvatore_ecriveur.php

    r119821 r119822  
    1818    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    1919
    20     Copyright 2003-2013
     20    Copyright 2003-2020
    2121        Florent Jugla <florent.jugla@eledo.com>,
    2222        Philippe Riviere <fil@rezo.net>,
    2323        Chryjs <chryjs!@!free!.!fr>,
    24                 kent1 <kent1@arscenic.info>
     24        kent1 <kent1@arscenic.info>
     25        Cerdic <cedric@yterium.com>
    2526*/
    2627
    27 require_once(dirname(__FILE__) . '/inc_tradlang.php');
    28 $tmp = _DIR_SALVATORE_TMP;
    29 
    30 salvatore_log("\n=======================================\nECRIVEUR\nExporte les fichiers de traduction dans sa copie locale a partir de la base de donnees\n=======================================\n");
    31 
    32 $liste_sources = salvatore_charger_fichier_traductions(); // chargement du fichier traductions.txt
    33 
    34 if (!is_dir($tmp)){
    35         die('Manque le repertoire ' . $tmp);
    36 }
    37 
    3828include_spip('base/abstract_sql');
     29include_spip('inc/charsets');
     30include_spip('inc/config');
    3931include_spip('inc/filtres');
    4032include_spip('inc/texte');
    41 include_spip('inc/config');
    4233include_spip('inc/xml');
     34include_spip('inc/lang_liste');
     35include_spip('inc/session');
     36
    4337
    4438/**
    45  * On récupère l'URL du site de traduction
    46  * Elle servira à :
    47  * -* empêcher l'export de fichiers traduits sur une autre plateforme
    48  * -* générer l'url de l'interface de traduction d'un module
     39 * @param array $liste_sources
     40 * @param string $dir_modules
     41 * @throws Exception
    4942 */
    50 $url_site = $GLOBALS['meta']['adresse_site'];
    51 
    52 if (isset($argv[1]) and strlen($argv[1])>1){
    53         $message_commit = $argv[1] . "\n\n";
     43function salvatore_ecriveur($liste_sources, $dir_modules = null, $message_commit=''){
     44        include_spip('inc/salvatore');
     45        salvatore_init();
     46
     47        // on va lire dans la base, il faut qu'elle soit a jour
     48        salvatore_verifier_base_upgradee();
     49
     50        if (is_null($dir_modules)){
     51                $dir_modules = _DIR_SALVATORE_MODULES;
     52        }
     53        salvatore_check_dir($dir_modules);
     54        $gestionnaire_url = $GLOBALS['meta']['adresse_site'];
     55        if (defined('_SALVATORE_TEST_URL_GESTIONNAIRE')) {
     56                $gestionnaire_url = _SALVATORE_TEST_URL_GESTIONNAIRE;
     57        }
     58
     59        foreach ($liste_sources as $source){
     60                salvatore_log("\n<info>--- Module " . $source['module'] . " | " . $source['dir_module'] . " | " . $source['url'] . "</info>");
     61
     62                $module = $source['module'];
     63                $dir_module = $dir_modules . $source['dir_module'];
     64
     65                if ($autre_gestionnaire = salvatore_verifier_gestionnaire_traduction($dir_module, $module)){
     66                        salvatore_fail("[Lecteur] Erreur sur $module", "Erreur : import impossible, le fichier est traduit autre part : $autre_gestionnaire\n");
     67                }
     68
     69                $id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'module = ' . sql_quote($source[1]));
     70
     71                // url de l'interface de traduction d'un module
     72                $url_trad = url_absolue(generer_url_entite($id_tradlang_module, 'tradlang_module'), $gestionnaire_url);
     73                export_trad_module($source, $gestionnaire_url, $url_trad, $message_commit);
     74        }
    5475}
    55 
    56 foreach ($liste_sources as $source){
    57         salvatore_log('==== Module ' . $source[1] . " =======================================\n");
    58         $export = true;
    59         /**
    60          * On test ici si le fichier est géré par un autre salvatore
    61          * Si oui on empeche son export en le signifiant
    62          */
    63         if (file_exists($xml = $tmp . $source[1] . '/' . $source[1] . '.xml')){
    64                 $xml_content = spip_xml_load($xml);
    65                 if (is_array($xml_content)){
    66                         spip_xml_match_nodes('/^traduction/', $xml_content, $matches);
    67                         $test = '<' . key($matches) . '>';
    68                         $url = extraire_attribut($test, 'url');
    69                         if ($url && (str_replace(array('http://', 'https://'), '', $url)!=str_replace(array('http://', 'https://'), '', $url_site))){
    70                                 $export = false;
    71                                 $sujet = 'Ecriveur : Erreur sur ' . $source[1];
    72                                 $corps = "\nErreur : export impossible, le fichier est traduit autre part : $url != $url_site\n\n";
    73                                 salvatore_envoyer_mail($sujet, $corps);
    74                                 salvatore_log("\nErreur : export impossible, le fichier est traduit autre part : $url != $url_site\n\n");
    75                         }
    76                 }
    77         }
    78         /**
    79          * Si on l'exporte
    80          */
    81         if ($export){
    82                 $id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'module = ' . sql_quote($source[1]));
    83                 $url_trad = url_absolue(generer_url_entite($id_tradlang_module, 'tradlang_module'), $url_site);
    84                 export_trad_module($source, $url_site, $url_trad, $message_commit);
    85         }
    86 }
    87 
    88 return 0;
    8976
    9077//
    9178// Genere les fichiers de traduction d'un module
     79// TODO
    9280//
    9381function export_trad_module($source, $url_site, $url_trad, $message_commit = ''){
Note: See TracChangeset for help on using the changeset viewer.