Changeset 82790 in spip-zone


Ignore:
Timestamp:
May 29, 2014, 12:51:58 PM (5 years ago)
Author:
kent1@…
Message:

Utiliser sql_allfetsel + foreach plutot que spip_query et while + spip_fetch_array

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _dev_/salvatore2/ecriveur.php

    r77237 r82790  
    4646 * -* générer l'url de l'interface de traduction d'un module
    4747 */
    48 $url_site = sql_getfetsel('valeur','spip_meta','nom="adresse_site"');
     48$url_site = $GLOBALS['meta']['adresse_site'];
    4949
    5050if(isset($argv[1]) && strlen($argv[1]) > 1)
     
    9595                return false;
    9696
    97         $module = sql_fetsel('*','spip_tradlang_modules','module='.sql_quote($source[1]));
     97        $module = sql_fetsel('id_tradlang_module,limite_trad,lang_mere','spip_tradlang_modules','module='.sql_quote($source[1]));
    9898
    9999        $seuil_export = 50;
     
    106106                // charger la langue originale, pour la copier si necessaire
    107107                $count_original = 0;
    108                 $res=sql_allfetsel("id,id_tradlang_module,str,comm,statut","spip_tradlangs","id_tradlang_module='".$module['id_tradlang_module']."' and lang='".$module['lang_mere']."' AND statut='OK'","id");
     108                $res=sql_allfetsel("id,id_tradlang_module,str,comm,statut","spip_tradlangs","id_tradlang_module=".intval($module['id_tradlang_module'])." and lang=".sql_quote($module['lang_mere'])." AND statut='OK'","id");
    109109                foreach ($res as $row) {
    110110                        $row['statut'] = 'NEW';
     
    114114                }
    115115
    116                 $res=spip_query("SELECT lang,COUNT(*) as N FROM spip_tradlangs WHERE module='".$source[1]."' AND statut != 'NEW' AND statut != 'attic' GROUP BY lang ORDER BY lang");
    117116                $liste_lang = $liste_lang_non_exportees = $liste_lang_supprimer = array();
    118117                $minimal = ceil((($count_original*$seuil_export)/100));
    119118                trad_log("\n Minimal = $minimal ($seuil_export %)\n");
    120                
    121                 while ($row=spip_fetch_array($res)) {
     119
     120                //$res=spip_query("SELECT lang,COUNT(*) as N FROM spip_tradlangs WHERE module='".$source[1]."' AND statut != 'NEW' AND statut != 'attic' GROUP BY lang ORDER BY lang");
     121                $res=sql_allfetsel("lang,COUNT(*) as N","spip_tradlangs","module=".sql_quote($source[1])." AND statut != 'NEW' AND statut != 'attic'","lang","lang");
     122                foreach ($res as $row) {
    122123                        /**
    123124                         * Le fichier est il suffisamment traduit
     
    129130                                 * Le fichier n'est pas suffisamment traduit et n'existe pas, on ne fera donc rien
    130131                                 */
    131                                 if(!file_exists($tmp.$source[1]."/".$source[1].'_'.$row['lang'].'.php')){
     132                                if(!file_exists($tmp.$source[1]."/".$source[1].'_'.$row['lang'].'.php'))
    132133                                        $liste_lang_non_exportees[]=$row['lang'];
    133                                 }
     134
    134135                                /**
    135136                                 * Il n'est pas suffisamment traduit, cependant, il existe déjà
     
    149150                $infos = $commiteurs = array();
    150151                foreach($liste_lang as $lang) {
    151                         spip_timer('temp');
    152152                        //trad_log(" generation de la langue $lang ");
    153153                        // Proteger les caracteres typographiques a l'interieur des tags html
     
    156156                        $tab = "\t";
    157157                       
    158                         $x = $tradlangs = array();
     158                        $x = $tous = $tradlangs = array();
    159159                        $prev="";
    160160                        $traduits = $modifs = $relire = 0;
    161                         //$tous = $lorigine; // on part de l'origine comme ca on a tout meme si c'est pas dans la base de donnees (import de salvatore/lecteur.php)
    162                         $tous = array();
    163                         //while ($row=spip_mysql_fetch($res)) {
     161
    164162                        // On ne prend que les MODIF, les RELIRE et les OK pour ne pas rendre les sites multilingues en français
    165163                        $res=sql_allfetsel("id_tradlang,id,str,comm,statut,md5","spip_tradlangs", "module='".$source[1]."' AND lang='".$lang."' AND statut != 'NEW' AND statut != 'attic'","id");
     
    169167                        }
    170168                        ksort($tous);
     169                       
    171170                        foreach ($tous as $row) {
    172171                                if ($row['statut'] == 'OK')
     
    308307                        if(defined('_ID_AUTEUR_SALVATORE') && intval(_ID_AUTEUR_SALVATORE) > 0)
    309308                                $people_unique[] = _ID_AUTEUR_SALVATORE;
    310                         $s = spip_query('SELECT DISTINCT(traducteur) FROM spip_tradlangs WHERE module='._q($source[1])." and lang="._q($lang));
    311                         while ($t = sql_fetch($s)){
     309                        $s = sql_allfetsel('DISTINCT(traducteur)','spip_tradlangs','id_tradlang_module='.intval($module['id_tradlang_module']).' AND lang='.sql_quote($lang));
     310                        foreach ($s as $t){
    312311                                $traducteurs_lang = explode(',',$t['traducteur']);
    313312                                foreach($traducteurs_lang as $traducteur){
     
    337336                                }
    338337                        }
    339                         // fichier modifié
     338                        /**
     339                         * Le fichier a été modifié ou ajouté (svn status A ou M)
     340                         *
     341                         * On récupère la date de dernier changement avec svn info
     342                         * On cherche toutes les dernières modifications dans la base de donnée
     343                         * Si un seul auteur de révisions (Hors salvatore et -1) on l'ajoute comme commiteur
     344                         * Si plusieurs auteurs le commiteur sera Salvatore
     345                         */
    340346                        if(in_array(substr(exec("svn status "._SALVATORE_TMP.$source[1]."/".$source[1]."_$lang.php"),0,1),array('A','M'))){
    341347                                $last_change = exec("env LC_MESSAGES=en_US.UTF-8 svn info "._SALVATORE_TMP.$source[1]."/".$source[1]."_$lang.php | awk '/^Last Changed Date/ { print $4 \" \" $5 }'");
    342348                                $auteur_versions = sql_allfetsel('id_auteur','spip_versions','objet="tradlang" AND date > '.sql_quote($last_change).' AND '.sql_in('id_objet',$tradlangs).' AND id_auteur != "-1" AND id_auteur !='.intval(_ID_AUTEUR_SALVATORE),"id_auteur");
    343                                 trad_log($auteur_versions[0]['id_auteur']);
    344349                                if(count($auteur_versions) == 1){
    345350                                        $email = sql_getfetsel('email','spip_auteurs','id_auteur='.intval($auteur_versions[0]['id_auteur']));
    346351                                        if($email)
    347352                                                $commiteurs[$lang] = $email;
    348                                 }
    349 
    350                                 trad_log("\nLe commiteur sera pour la langue $lang : ".$commiteurs[$lang]." \n");
    351                                 //die("Last change = $last_change");
     353                                        trad_log("\nLe commiteur sera pour la langue $lang : ".$commiteurs[$lang]." \n");
     354                                }
    352355                        }
    353356                }
     
    396399                }
    397400                trad_log("\n".passthru("svn status "._SALVATORE_TMP.$source[1]."/")."\n");
    398                 trad_log(var_export($commiteurs,1));
    399401                if(strlen($message_commit) > 1 || count($commiteurs) > 0){
    400402                        $fd = fopen($tmp.$source[1]."/message_commit.inc", 'w');
     
    411413                        fclose($fd);
    412414                }
    413         }else{
     415        }else
    414416                trad_log("\n Ce module n'existe pas\n");
    415         }
     417
    416418}
    417419
Note: See TracChangeset for help on using the changeset viewer.