Changeset 97004 in spip-zone


Ignore:
Timestamp:
May 6, 2016, 11:43:42 AM (5 years ago)
Author:
kent1@…
Message:

PSR SPIP

Location:
_plugins_/trad-lang/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk/tradlang_administrations.php

    r93933 r97004  
    1717 * @param unknown_type $version_cible
    1818 */
    19 function tradlang_upgrade($nom_meta_base_version,$version_cible){
     19function tradlang_upgrade($nom_meta_base_version, $version_cible) {
    2020        $current_version = 0.0;
    2121        $maj = array();
     
    3030        );
    3131        $maj['0.3.2'] = array(
    32                 array('sql_alter',"TABLE spip_tradlang_modules CHANGE nom_mod nom_mod VARCHAR(32) NOT NULL"),
    33                 array('sql_alter',"TABLE spip_tradlang_modules CHANGE lang_prefix lang_prefix VARCHAR(32) NOT NULL")
     32                array('sql_alter','TABLE spip_tradlang_modules CHANGE nom_mod nom_mod VARCHAR(32) NOT NULL'),
     33                array('sql_alter','TABLE spip_tradlang_modules CHANGE lang_prefix lang_prefix VARCHAR(32) NOT NULL')
    3434        );
    3535        $maj['0.3.3'] = array(
     
    5454        );
    5555        $maj['0.3.9'] = array(
    56                 array('sql_alter',"TABLE spip_tradlang_modules DROP INDEX nom_mod"),
    57                 array('sql_alter',"TABLE spip_tradlang_modules CHANGE nom_mod nom_mod text DEFAULT '' NOT NULL"),
    58                 array('sql_alter',"TABLE spip_tradlang_modules ADD INDEX `nom_mod` ( `nom_mod` ( 255 ) )")
     56                array('sql_alter','TABLE spip_tradlang_modules DROP INDEX nom_mod'),
     57                array('sql_alter','TABLE spip_tradlang_modules CHANGE nom_mod nom_mod text DEFAULT "" NOT NULL'),
     58                array('sql_alter','TABLE spip_tradlang_modules ADD INDEX `nom_mod` ( `nom_mod` ( 255 ) )')
    5959        );
    6060        $maj['0.4.0'] = array(
    61                 array('maj_tables',array('spip_auteurs'))
     61                array('maj_tables', array('spip_auteurs'))
    6262        );
    6363        $maj['0.4.1'] = array(
    64                 array('sql_alter',"TABLE spip_tradlang DROP maj"),
    65                 array('sql_alter',"TABLE spip_tradlang CHANGE ts maj timestamp(14) NOT NULL"),
     64                array('sql_alter', 'TABLE spip_tradlang DROP maj'),
     65                array('sql_alter', 'TABLE spip_tradlang CHANGE ts maj timestamp(14) NOT NULL'),
    6666        );
    6767        $maj['0.4.2'] = array(
    68                 array('sql_alter',"TABLE spip_tradlang RENAME spip_tradlangs")
     68                array('sql_alter', 'TABLE spip_tradlang RENAME spip_tradlangs')
    6969        );
    7070        $maj['0.4.3'] = array(
    71                 array('maj_tables',array('spip_auteurs'))
     71                array('maj_tables', array('spip_auteurs'))
    7272        );
    7373        $maj['0.4.4'] = array(
    74                 array('maj_tables',array('spip_tradlang_modules'))
     74                array('maj_tables', array('spip_tradlang_modules'))
    7575        );
    7676        $maj['0.4.5'] = array(
    77                 array('sql_alter',"TABLE spip_tradlangs ADD INDEX id_tradlang_module (id_tradlang_module)"),
     77                array('sql_alter', 'TABLE spip_tradlangs ADD INDEX id_tradlang_module (id_tradlang_module)'),
    7878        );
    7979        $maj['0.4.6'] = array(
    80                 array('sql_alter',"TABLE spip_tradlangs ADD INDEX statut (statut)"),
     80                array('sql_alter', 'TABLE spip_tradlangs ADD INDEX statut (statut)'),
    8181        );
    8282        $maj['0.5.0'] = array(
     
    9595
    9696/**
    97  * Fonction d'import de l'ancien tradlang 
     97 * Fonction d'import de l'ancien tradlang
    9898 * Ne devrait être utile que sur spip.net mais sais t on jamais
    9999 */
    100 function tradlang_import_ancien_tradlang($affiche=false){
     100function tradlang_import_ancien_tradlang($affiche = false) {
    101101        /**
    102102         * On insère les modules
    103103         */
    104         $modules = sql_select('*','trad_lang','', array('module'));
    105         while($module=sql_fetch($modules)){
    106                 $id_module = sql_insertq('spip_tradlang_modules',array('module'=>$module['module'],'nom_mod' =>$module['module']));
     104        $modules = sql_select('*', 'trad_lang', '', array('module'));
     105        while ($module=sql_fetch($modules)) {
     106                $id_module = sql_insertq('spip_tradlang_modules', array('module' => $module['module'], 'nom_mod' => $module['module']));
    107107                /**
    108108                 * On insére les anciens tradlang
    109109                 */
    110110                //$docs = array_map('reset',sql_allfetsel('id_document','spip_documents',"statut='0'",'','',"0,100"));
    111                 $strings = sql_allfetsel('id,module,lang,str,comm,status,traducteur,ts,md5,orig,date_modif','trad_lang',"module=".sql_quote($module['module']). " AND orig!='2'",'','',"0,100");
     111                $strings = sql_allfetsel('id,module,lang,str,comm,status,traducteur,ts,md5,orig,date_modif', 'trad_lang', 'module = ' . sql_quote($module['module']). ' AND orig!="2"', '', '', '0,100');
    112112                $count = 0;
    113                 while (count($strings)){
    114                         foreach($strings as $id => $string){
     113                while (count($strings)) {
     114                        foreach ($strings as $id => $string) {
    115115                                $string['titre'] = $string['id'].' : '.$string['module'].' - '.$string['lang'];
    116                                 if(!$string['md5'])
     116                                if (!$string['md5']) {
    117117                                        $string['md5'] = md5($string['str']);
     118                                }
    118119                                $string['langue_choisie'] = 'non';
    119120                                $string['id_tradlang_module'] = $id_module;
     
    122123                                unset($string['ts']);
    123124                                unset($string['status']);
    124                                 sql_insertq('spip_tradlangs',$string);
    125                                 sql_updateq('trad_lang',array('orig' => 2),'str='.sql_quote($string['str']).' AND lang='.sql_quote($string['lang']));
    126                         }
    127                         if ($affiche) echo " .";
     125                                sql_insertq('spip_tradlangs', $string);
     126                                sql_updateq('trad_lang', array('orig' => 2), 'str=' . sql_quote($string['str']) . ' AND lang= ' . sql_quote($string['lang']));
     127                        }
     128                        if ($affiche) {
     129                                echo ' .';
     130                        }
    128131                        $count = $count+count($strings);
    129                         spip_log($count,'tradlang');
    130                         $strings = sql_allfetsel('id,module,lang,str,comm,status,traducteur,ts,md5,orig,date_modif','trad_lang',"module=".sql_quote($module['module']). " AND orig!='2'",'','',"0,100");
    131                 }
    132         }
    133 }
    134 function tradlang_maj_id_tradlang_modules($affiche = false){
    135         $strings = array_map('reset',sql_allfetsel('id_tradlang','spip_tradlangs',"id_tradlang_module='0'",'','',"0,100"));
    136         while (count($strings)){
    137                 foreach($strings as $id_tradlang){
    138                         $module = sql_getfetsel('module','spip_tradlangs','id_tradlang='.intval($id_tradlang));
    139                         $id_tradlang_module = sql_getfetsel('id_tradlang_module','spip_tradlang_modules','module='.sql_quote($module));
    140                         sql_updateq('spip_tradlangs',array('id_tradlang_module' => $id_tradlang_module),'id_tradlang='.intval($id_tradlang));
    141                 }
    142                 if ($affiche) echo " .";
    143                 $strings = array_map('reset',sql_allfetsel('id_tradlang','spip_tradlangs',"id_tradlang_module='0'",'','',"0,100"));
    144         }
    145 }
    146 
    147 function tradlang_maj_tradlang_titre($affiche = false){
    148         $strings = array_map('reset',sql_allfetsel('id_tradlang','spip_tradlangs',"titre=''",'','',"0,500"));
    149         while (count($strings)){
    150                 foreach($strings as $id_tradlang){
    151                         $tradlang = sql_fetsel('*','spip_tradlangs','id_tradlang='.intval($id_tradlang));
     132                        spip_log($count, 'tradlang');
     133                        $strings = sql_allfetsel('id,module,lang,str,comm,status,traducteur,ts,md5,orig,date_modif', 'trad_lang', 'module = ' . sql_quote($module['module']). ' AND orig!="2"', '', '', '0,100');
     134                }
     135        }
     136}
     137function tradlang_maj_id_tradlang_modules($affiche = false) {
     138        $strings = array_map('reset', sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module=0', '', '', '0,100'));
     139        while (count($strings)) {
     140                foreach ($strings as $id_tradlang) {
     141                        $module = sql_getfetsel('module', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
     142                        $id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'module = ' . sql_quote($module));
     143                        sql_updateq('spip_tradlangs', array('id_tradlang_module' => $id_tradlang_module), 'id_tradlang = ' . intval($id_tradlang));
     144                }
     145                if ($affiche) {
     146                        echo ' .';
     147                }
     148                $strings = array_map('reset', sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module=0', '', '', '0,100'));
     149        }
     150}
     151
     152function tradlang_maj_tradlang_titre($affiche = false) {
     153        $strings = array_map('reset', sql_allfetsel('id_tradlang', 'spip_tradlangs', 'titre=""', '', '', '0,500'));
     154        while (count($strings)) {
     155                foreach ($strings as $id_tradlang) {
     156                        $tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
    152157                        $titre = $tradlang['id'].' : '.$tradlang['module'].' - '.$tradlang['lang'];
    153                         sql_updateq('spip_tradlangs',array('titre' => $titre),'id_tradlang='.intval($id_tradlang));
    154                 }
    155                 if ($affiche) echo " .";
    156                 $strings = array_map('reset',sql_allfetsel('id_tradlang','spip_tradlangs',"titre=''",'','',"0,500"));
    157         }
    158 }
    159 
    160 function tradlang_maj_modules($affiche=false){
    161         $tradlang_verifier_langue_base = charger_fonction('tradlang_verifier_langue_base','inc');
     158                        sql_updateq('spip_tradlangs', array('titre' => $titre), 'id_tradlang='.intval($id_tradlang));
     159                }
     160                if ($affiche) {
     161                        echo ' .';
     162                }
     163                $strings = array_map('reset', sql_allfetsel('id_tradlang', 'spip_tradlangs', 'titre=""', '', '', '0,500'));
     164        }
     165}
     166
     167function tradlang_maj_modules($affiche = false) {
     168        $tradlang_verifier_langue_base = charger_fonction('tradlang_verifier_langue_base', 'inc');
    162169        /**
    163170         * On update les modules
    164171         */
    165         $modules = sql_select('*','spip_tradlang_modules','module NOT LIKE "attic%" AND module !='.sql_quote('attic'));
    166        
    167         while($module = sql_fetch($modules)){
    168                 spip_log($module['module'],'tradlang');
    169                 if ($affiche) echo " .";
    170                 $langues = sql_select('lang','spip_tradlangs','id_tradlang_module='.intval($module['id_tradlang_module']).' AND lang!='.sql_quote($module['lang_mere']), array('lang'));
    171                 while($lang = sql_fetch($langues)){
     172        $modules = sql_select('*', 'spip_tradlang_modules', 'module NOT LIKE "attic%" AND module !=' . sql_quote('attic'));
     173
     174        while ($module = sql_fetch($modules)) {
     175                spip_log($module['module'], 'tradlang');
     176                if ($affiche) {
     177                        echo ' .';
     178                }
     179                $langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($module['id_tradlang_module']).' AND lang!='.sql_quote($module['lang_mere']), array('lang'));
     180                while ($lang = sql_fetch($langues)) {
    172181                        $modifs = $tradlang_verifier_langue_base($module['module'],$lang['lang']);
    173182                }
     
    176185
    177186/**
    178  * On remet les traducteurs des locutions 
    179  */
    180 function tradlang_maj_traducteurs($affiche=false){
    181         $chaines_traducteurs = sql_select('*','trad_lang','status = "" AND traducteur != ""');
    182         while($traduction = sql_fetch($chaines_traducteurs)){
    183                 sql_updateq('spip_tradlangs',array('traducteur'=>$traduction['traducteur']),'module = '.sql_quote($traduction['module']).' AND id='.sql_quote($traduction['id']).' AND lang='.sql_quote($traduction['lang']));
    184         }
    185        
    186         $chaines_traducteurs_modif = sql_select('*','trad_lang','status = "MODIF" AND traducteur != ""');
    187         while($traduction = sql_fetch($chaines_traducteurs_modif)){
    188                 sql_updateq('spip_tradlangs',array('traducteur'=>$traduction['traducteur']),'module = '.sql_quote($traduction['module']).' AND id='.sql_quote($traduction['id']).' AND lang='.sql_quote($traduction['lang']));
     187 * On remet les traducteurs des locutions
     188 */
     189function tradlang_maj_traducteurs($affiche = false) {
     190        $chaines_traducteurs = sql_select('*', 'trad_lang', 'status = "" AND traducteur != ""');
     191        while ($traduction = sql_fetch($chaines_traducteurs)) {
     192                sql_updateq('spip_tradlangs', array('traducteur' => $traduction['traducteur']), 'module = '.sql_quote($traduction['module']).' AND id = ' . sql_quote($traduction['id']) . ' AND lang = ' . sql_quote($traduction['lang']));
     193        }
     194
     195        $chaines_traducteurs_modif = sql_select('*', 'trad_lang', 'status = "MODIF" AND traducteur != ""');
     196        while ($traduction = sql_fetch($chaines_traducteurs_modif)) {
     197                sql_updateq('spip_tradlangs', array('traducteur' => $traduction['traducteur']), 'module = '.sql_quote($traduction['module']).' AND id='.sql_quote($traduction['id']).' AND lang='.sql_quote($traduction['lang']));
    189198        }
    190199}
     
    193202 * On crée les bilans de chaque langue de chaque module
    194203 */
    195 function tradlang_maj_bilans($affiche=false){
    196         $modules = sql_select('id_tradlang_module,module,lang_mere','spip_tradlang_modules');
    197        
     204function tradlang_maj_bilans($affiche = false) {
     205        $modules = sql_select('id_tradlang_module, module, lang_mere', 'spip_tradlang_modules');
     206
    198207        /**
    199208         * On passe d'abord les modules un par un
    200209         * On récupère $total qui est le total des chaines de la langue mère
    201210         */
    202         while($module = sql_fetch($modules)){
     211        while ($module = sql_fetch($modules)) {
    203212                /**
    204213                 * Si on n'est pas dans un module type attic
    205214                 */
    206                 if(substr($module['module'],0,5) != 'attic'){
    207                         $total = sql_countsel('spip_tradlangs','module='.sql_quote($module['module']).' AND lang='.sql_quote($module['lang_mere']));
    208                         $langues_base = sql_select('lang','spip_tradlangs','module='.sql_quote($module['module']),'lang');
     215                if (substr($module['module'], 0, 5) != 'attic') {
     216                        $total = sql_countsel('spip_tradlangs', 'module = ' . sql_quote($module['module']) . ' AND lang = ' . sql_quote($module['lang_mere']));
     217                        $langues_base = sql_select('lang', 'spip_tradlangs', 'module = ' . sql_quote($module['module']), 'lang');
    209218                        /**
    210219                         * On passe ensuite chaque langue de ce module en revue
    211220                         * On insère une entrée pour chaque langue de chaque module
    212221                         */
    213                         while($langue = sql_fetch($langues_base)){
     222                        while ($langue = sql_fetch($langues_base)) {
    214223                                $lang = $langue['lang'];
    215                                 $chaines_ok = sql_countsel('spip_tradlangs','module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="OK"');
    216                                 $chaines_relire = sql_countsel('spip_tradlangs','module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="RELIRE"');
    217                                 $chaines_modif = sql_countsel('spip_tradlangs','module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="MODIF"');
    218                                 $chaines_new = sql_countsel('spip_tradlangs','module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="NEW"');
     224                                $chaines_ok = sql_countsel('spip_tradlangs', 'module=' . sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="OK"');
     225                                $chaines_relire = sql_countsel('spip_tradlangs', 'module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="RELIRE"');
     226                                $chaines_modif = sql_countsel('spip_tradlangs', 'module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="MODIF"');
     227                                $chaines_new = sql_countsel('spip_tradlangs', 'module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="NEW"');
    219228                                $infos_bilan = array(
    220229                                                                        'id_tradlang_module' => $module['id_tradlang_module'],
     
    227236                                                                        'chaines_new' => $chaines_new
    228237                                                                );
    229                                 sql_insertq('spip_tradlangs_bilans',$infos_bilan);
    230                         }
    231                 }
    232         }
    233 }
    234 
    235 function tradlang_maj_attic($affiche=false){
     238                                sql_insertq('spip_tradlangs_bilans', $infos_bilan);
     239                        }
     240                }
     241        }
     242}
     243
     244function tradlang_maj_attic($affiche = false) {
    236245        /**
    237246         * Dans un premier temps, on supprimer les attics qui ont un statut NEW,
    238247         * il ne serviront jamaiscar même récupérés, ils ne sont pas traduit
    239248         */
    240         sql_delete('spip_tradlangs','module LIKE "attic%" AND statut="NEW"');
    241         $select_attic_id_module = sql_select('*','spip_tradlangs','module LIKE "attic%"','id_tradlang_module');
    242         while($id_module = sql_fetch($select_attic_id_module)){
    243                 $module = sql_getfetsel('module','spip_tradlang_modules','id_tradlang_module='.intval($id_module['id_tradlang_module']));
    244                 if($module){
    245                         $attics_module = sql_select('id_tradlang,id,module,lang','spip_tradlangs','id_tradlang_module='.intval($id_module['id_tradlang_module']).' AND module LIKE "attic%"');
    246                         while($id_tradlang = sql_fetch($attics_module)){
    247                                 if(!sql_getfetsel('id_tradlang','spip_tradlangs','id='.sql_quote($id_tradlang['id']).' AND module='.sql_quote($id_tradlang['module']).' AND lang='.sql_quote($id_tradlang['lang'])))
    248                                         sql_updateq('spip_tradlangs',array('statut'=>'attic','module'=>$module),'id_tradlang='.intval($id_tradlang['id_tradlang']));
    249                                 else
    250                                         sql_delete('spip_tradlangs','id_tradlang='.intval($id_tradlang['id_tradlang']));
    251                         }
    252                 }
    253         }
    254         sql_delete('spip_tradlang_modules','module LIKE "attic%"');
     249        sql_delete('spip_tradlangs', 'module LIKE "attic%" AND statut="NEW"');
     250        $select_attic_id_module = sql_select('*', 'spip_tradlangs', 'module LIKE "attic%"', 'id_tradlang_module');
     251        while ($id_module = sql_fetch($select_attic_id_module)) {
     252                $module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_module['id_tradlang_module']));
     253                if ($module) {
     254                        $attics_module = sql_select('id_tradlang,id,module,lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_module['id_tradlang_module']) . ' AND module LIKE "attic%"');
     255                        while ($id_tradlang = sql_fetch($attics_module)) {
     256                                if (!sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id = ' . sql_quote($id_tradlang['id']).' AND module = ' . sql_quote($id_tradlang['module']).' AND lang = ' . sql_quote($id_tradlang['lang']))) {
     257                                        sql_updateq('spip_tradlangs', array('statut' => 'attic', 'module' => $module), 'id_tradlang = ' . intval($id_tradlang['id_tradlang']));
     258                                } else {
     259                                        sql_delete('spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang['id_tradlang']));
     260                                }
     261                        }
     262                }
     263        }
     264        sql_delete('spip_tradlang_modules', 'module LIKE "attic%"');
    255265}
    256266/**
     
    265275 */
    266276function tradlang_vider_tables($nom_meta_base_version) {
    267         sql_drop_table("spip_tradlangs");
    268         sql_drop_table("spip_tradlang_modules");
    269         sql_drop_table("spip_tradlangs_bilans");
    270         sql_delete('spip_versions','objet='.sql_quote('tradlang'));
    271         sql_delete('spip_versions_fragments','objet='.sql_quote('tradlang'));
     277        sql_drop_table('spip_tradlangs');
     278        sql_drop_table('spip_tradlang_modules');
     279        sql_drop_table('spip_tradlangs_bilans');
     280        sql_delete('spip_versions', 'objet = ' . sql_quote('tradlang'));
     281        sql_delete('spip_versions_fragments', 'objet = ' . sql_quote('tradlang'));
    272282        effacer_meta($nom_meta_base_version);
    273283}
    274 ?>
  • _plugins_/trad-lang/trunk/tradlang_autoriser.php

    r93933 r97004  
    44 * Plugin SPIP de traduction de fichiers de langue
    55 * © Florent Jugla, Fil, kent1
    6  * 
     6 *
    77 * Fichier des autorisations spécifiques du plugin
    8  * 
     8 *
    99 * @package SPIP\Tradlang\Autorisations
    1010 */
     
    2020 * @return
    2121 */
    22 function tradlang_autoriser(){}
     22function tradlang_autoriser() {
     23}
    2324
    2425/**
    2526 * Renvoie la liste des auteurs ou des statuts autorises pour une action donnee
    26  * 
    27  * @param string $action 
     27 *
     28 * @param string $action
    2829 *              L'action que l'on souhaite faire
    2930 * @param boolean $utiliser_defaut [optional]
    3031 * @return array, boolean
    31  */ 
    32 function definir_autorisations_tradlang($action,$utiliser_defaut=true){
     32 */
     33function definir_autorisations_tradlang($action, $utiliser_defaut = true) {
    3334        $aut = null;
    3435
    35         switch(strtolower($action)){
     36        switch (strtolower($action)) {
    3637                case 'configurer':
    3738                        $define = (defined('_TRADLANG_AUTORISATION_CONFIGURER')) ? _TRADLANG_AUTORISATION_CONFIGURER : false;
     
    4546        }
    4647
    47         if($define){
     48        if ($define) {
    4849                $liste = explode(':', $define);
    49                 if (in_array('webmestre', $liste))
     50                if (in_array('webmestre', $liste)) {
    5051                        $aut['auteur'] = explode(':', _ID_WEBMESTRES);
    51                 else if (in_array('0minirezo', $liste))
     52                } elseif (in_array('0minirezo', $liste)) {
    5253                        $aut['statut'] = array('0minirezo');
    53                 else if (in_array('1comite', $liste))
     54                } elseif (in_array('1comite', $liste)) {
    5455                        $aut['statut'] = array('0minirezo', '1comite');
    55                 else
     56                } else {
    5657                        $aut['auteur'] = $liste;
     58                }
    5759                return $aut;
    5860        }
    59        
     61
    6062        return false;
    6163}
     
    6365/**
    6466 * Autorisation de configurer et d'administrer trad-lang
    65  * Permet de : 
     67 * Permet de :
    6668 * - importer un nouveau module de langue
    6769 * - créer une nouvelle version dans une langue
    6870 * - synchroniser les fichiers de langue avec la base
    6971 * - traduire des locutions
    70  * 
     72 *
    7173 * @param string $faire
    7274 * @param string $type
     
    7678 * @return boolean
    7779 */
    78 function autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt){
     80function autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt) {
    7981        $autorise = false;
    8082        $utiliser_defaut = true;
    8183
    82         if(!function_exists('lire_config'))
    83                 include_spip('inc/config');     
     84        if (!function_exists('lire_config')) {
     85                include_spip('inc/config');
     86        }
    8487
    8588        $type = lire_config('tradlang/autorisations/configurer_type');
    86         if($type){
    87                 switch($type) {
     89        if ($type) {
     90                switch ($type) {
    8891                        case 'webmestre':
    8992                                // Webmestres uniquement
     
    9295                        case 'par_statut':
    9396                                // Traitement spécifique pour la valeur 'tous'
    94                                 if(in_array('tous',lire_config('tradlang/autorisations/configurer_statuts',array('0minirezo'))))
     97                                if (in_array('tous', lire_config('tradlang/autorisations/configurer_statuts', array('0minirezo')))) {
    9598                                        return true;
     99                                }
    96100                                // Autorisation par statut
    97                                 $autorise = in_array($qui['statut'], lire_config('tradlang/autorisations/configurer_statuts',array()));
     101                                $autorise = in_array($qui['statut'], lire_config('tradlang/autorisations/configurer_statuts', array()));
    98102                                break;
    99103                        case 'par_auteur':
    100104                                // Autorisation par id d'auteurs
    101                                 $autorise = in_array($qui['id_auteur'], lire_config('tradlang/autorisations/configurer_auteurs',array()));
    102                                 break;
    103                 }
    104                 if($autorise == true)
     105                                $autorise = in_array($qui['id_auteur'], lire_config('tradlang/autorisations/configurer_auteurs', array()));
     106                                break;
     107                }
     108                if ($autorise == true) {
    105109                        return $autorise;
     110                }
    106111                $utiliser_defaut = false;
    107112        }
     
    110115         * Si pas de CFG ou pas autorise dans le cfg => on teste les define
    111116         */
    112         $liste = definir_autorisations_tradlang('configurer',$utiliser_defaut);
    113         if($liste){
    114                 if ($liste['statut'])
     117        $liste = definir_autorisations_tradlang('configurer', $utiliser_defaut);
     118        if ($liste) {
     119                if ($liste['statut']) {
    115120                        $autorise = in_array($qui['statut'], $liste['statut']);
    116                 else if ($liste['auteur'])
     121                } elseif ($liste['auteur']) {
    117122                        $autorise = in_array($qui['id_auteur'], $liste['auteur']);
     123                }
    118124                return $autorise;
    119         }
    120         /**
    121          * Si vraiment on n'a rien, on utilise une fonction par défaut
    122          */
    123         else
     125        } else {
     126                /**
     127                 * Si vraiment on n'a rien, on utilise une fonction par défaut
     128                 */
    124129                return autoriser('configurer', 'lang');
     130        }
    125131}
    126132
    127133/**
    128134 * Autorisation de modification des locution dans tradlang
    129  * 
     135 *
    130136 * @param string $faire
    131137 * @param string $type
     
    134140 * @param array $opt
    135141 * @return boolean
    136  */ 
    137 function autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt){
     142 */
     143function autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt) {
    138144        $autorise = false;
    139145        $utiliser_defaut = true;
    140146
    141         if($qui['webmestre'] == 'oui')
     147        if ($qui['webmestre'] == 'oui') {
    142148                return true;
     149        }
    143150        /**
    144151         * Retourner false si c'est une chaîne de la langue mère
    145152         */
    146         if(intval($id) > 0){           
    147                 $infos_chaine = sql_fetsel('lang,module','spip_tradlangs','id_tradlang='.intval($id));
    148                 $lang_mere = sql_getfetsel('lang_mere','spip_tradlang_modules','module='.sql_quote($infos_chaine['module']));
    149                 if($infos_chaine['lang'] == $lang_mere)
     153        if (intval($id) > 0) {
     154                $infos_chaine = sql_fetsel('lang,module', 'spip_tradlangs', 'id_tradlang = ' . intval($id));
     155                $lang_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'module = ' . sql_quote($infos_chaine['module']));
     156                if ($infos_chaine['lang'] == $lang_mere) {
    150157                        return false;
    151         }
    152        
     158                }
     159        }
     160
    153161        /**
    154162         * Si on est autoriser à configurer tradlang, on est autorisé à modifier la chaîne
    155163         */
    156         if(autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt))
     164        if (autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt)) {
    157165                return autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt);
    158        
    159         if(!function_exists('lire_config'))
     166        }
     167
     168        if (!function_exists('lire_config')) {
    160169                include_spip('inc/config');
     170        }
    161171
    162172        $type = lire_config('tradlang/modifier_type');
    163         if($type){
    164                 switch($type) {
     173        if ($type) {
     174                switch ($type) {
    165175                        case 'webmestre':
    166176                                // Webmestres uniquement
     
    169179                        case 'par_statut':
    170180                                // Traitement spécifique pour la valeur 'tous'
    171                                 if(in_array('tous',lire_config('tradlang/modifier_statuts',array())))
     181                                if (in_array('tous', lire_config('tradlang/modifier_statuts', array()))) {
    172182                                        return true;
     183                                }
    173184                                // Autorisation par statut
    174                                 $autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts',array('0minirezo')));
     185                                $autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts', array('0minirezo')));
    175186                                break;
    176187                        case 'par_auteur':
    177188                                // Autorisation par id d'auteurs
    178                                 $autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs',array()));
    179                                 break;
    180                 }
    181                 if($autorise == true)
     189                                $autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs', array()));
     190                                break;
     191                }
     192                if ($autorise == true) {
    182193                        return $autorise;
    183        
     194                }
     195
    184196                $utiliser_defaut = false;
    185197        }
    186        
     198
    187199        // Si $utiliser_defaut = true, on utilisera les valeurs par défaut
    188200        // Sinon on ajoute la possibilité de régler par define
    189         $liste = definir_autorisations_tradlang('modifier',$utiliser_defaut);
    190         if ($liste['statut'])
     201        $liste = definir_autorisations_tradlang('modifier', $utiliser_defaut);
     202        if ($liste['statut']) {
    191203                $autorise = in_array($qui['statut'], $liste['statut']);
    192         else if ($liste['auteur'])
     204        } elseif ($liste['auteur']) {
    193205                $autorise = in_array($qui['id_auteur'], $liste['auteur']);
     206        }
    194207        return $autorise;
    195208}
     
    198211 * Autorisation de modification des modules dans tradlang
    199212 * Utilisée aussi par le crayon d'édition multiple
    200  * 
     213 *
    201214 * @param string $faire
    202215 * @param string $type
     
    205218 * @param array $opt
    206219 * @return boolean
    207  */ 
    208 function autoriser_tradlangmodule_modifier_dist($faire, $type, $id, $qui, $opt){
     220 */
     221function autoriser_tradlangmodule_modifier_dist($faire, $type, $id, $qui, $opt) {
    209222        $autorise = false;
    210223        $utiliser_defaut = true;
    211        
     224
    212225        /**
    213226         * Si on est autoriser à configurer tradlang, on est autorisé à modifier la chaîne
    214227         */
    215         if(autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt))
     228        if (autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt)) {
    216229                return autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt);
    217        
    218         if(!function_exists('lire_config'))
     230        }
     231
     232        if (!function_exists('lire_config')) {
    219233                include_spip('inc/config');
    220        
     234        }
     235
    221236        $type = lire_config('tradlang/modifier_type');
    222         if($type){
    223                 switch($type) {
     237        if ($type) {
     238                switch ($type) {
    224239                        case 'webmestre':
    225240                                // Webmestres uniquement
     
    228243                        case 'par_statut':
    229244                                // Traitement spécifique pour la valeur 'tous'
    230                                 if(in_array('tous',lire_config('tradlang/modifier_statuts',array())))
     245                                if (in_array('tous', lire_config('tradlang/modifier_statuts', array()))) {
    231246                                        return true;
     247                                }
    232248                                // Autorisation par statut
    233                                 $autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts',array('0minirezo')));
     249                                $autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts', array('0minirezo')));
    234250                                break;
    235251                        case 'par_auteur':
    236252                                // Autorisation par id d'auteurs
    237                                 $autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs',array()));
    238                                 break;
    239                 }
    240                 if($autorise == true)
     253                                $autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs', array()));
     254                                break;
     255                }
     256                if ($autorise == true) {
    241257                        return $autorise;
    242        
     258                }
     259
    243260                $utiliser_defaut = false;
    244261        }
    245        
     262
    246263        // Si $utiliser_defaut = true, on utilisera les valeurs par défaut
    247264        // Sinon on ajoute la possibilité de régler par define
    248         $liste = definir_autorisations_tradlang('modifier',$utiliser_defaut);
    249         if ($liste['statut'])
     265        $liste = definir_autorisations_tradlang('modifier', $utiliser_defaut);
     266        if ($liste['statut']) {
    250267                $autorise = in_array($qui['statut'], $liste['statut']);
    251         else if ($liste['auteur'])
     268        } elseif ($liste['auteur']) {
    252269                $autorise = in_array($qui['id_auteur'], $liste['auteur']);
     270        }
    253271        return $autorise;
    254272}
     
    256274/**
    257275 * Autorisation de voir l'interface de tradlang
    258  * 
     276 *
    259277 * @param string $faire
    260278 * @param string $type
     
    264282 * @return boolean
    265283 */
    266 function autoriser_tradlang_voir_dist($faire, $type, $id, $qui, $opt){
     284function autoriser_tradlang_voir_dist($faire, $type, $id, $qui, $opt) {
    267285        $autorise = false;
    268286        $utiliser_defaut = true;
    269287
    270         if(autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt))
     288        if (autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt)) {
    271289                return autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt);
    272 
    273         if(!function_exists('lire_config'))
     290        }
     291
     292        if (!function_exists('lire_config')) {
    274293                include_spip('inc/config');
     294        }
    275295
    276296        $type = lire_config('tradlang/voir_type');
    277         if($type){
    278                 switch($type) {
     297        if ($type) {
     298                switch ($type) {
    279299                        case 'webmestre':
    280300                                // Webmestres uniquement
     
    283303                        case 'par_statut':
    284304                                // Traitement spécifique pour la valeur 'tous'
    285                                 if(in_array('tous',lire_config('tradlang/voir_statuts',array())))
     305                                if (in_array('tous', lire_config('tradlang/voir_statuts', array()))) {
    286306                                        return true;
     307                                }
    287308                                // Autorisation par statut
    288                                 $autorise = in_array($qui['statut'], lire_config('tradlang/voir_statuts',array('0minirezo','1comite')));
     309                                $autorise = in_array($qui['statut'], lire_config('tradlang/voir_statuts', array('0minirezo', '1comite')));
    289310                                break;
    290311                        case 'par_auteur':
    291312                                // Autorisation par id d'auteurs
    292                                 $autorise = in_array($qui['id_auteur'], lire_config('tradlang/voir_auteurs',array()));
    293                                 break;
    294                 }
    295                 if($autorise == true)
     313                                $autorise = in_array($qui['id_auteur'], lire_config('tradlang/voir_auteurs', array()));
     314                                break;
     315                }
     316                if ($autorise == true) {
    296317                        return $autorise;
    297                
     318                }
     319
    298320                $utiliser_defaut = false;
    299321        }
    300        
     322
    301323        /**
    302324         * Si pas de CFG ou pas autorise dans le cfg => on teste les define
    303325         */
    304         $liste = definir_autorisations_tradlang('voir',$utiliser_defaut);
    305         if($liste){
    306                 if ($liste['statut'])
     326        $liste = definir_autorisations_tradlang('voir', $utiliser_defaut);
     327        if ($liste) {
     328                if ($liste['statut']) {
    307329                        $autorise = in_array($qui['statut'], $liste['statut']);
    308                 else if ($liste['auteur'])
     330                } elseif ($liste['auteur']) {
    309331                        $autorise = in_array($qui['id_auteur'], $liste['auteur']);
    310         }
    311         /**
    312          * Si vraiment on n'a rien, on utilise une fonction par défaut
    313          */
    314         else
    315                 return autoriser('voir','lang');
     332                }
     333                return $autorise;
     334        } else {
     335                /**
     336                 * Si vraiment on n'a rien, on utilise une fonction par défaut
     337                 */
     338                return autoriser('voir', 'lang');
     339        }
    316340}
    317341
     
    319343 * Autorisation à créer un module de langue
    320344 * Renvoit false, pour l'instant on force l'usage de salvatore
    321  * 
     345 *
    322346 * @param string $faire
    323347 * @param string $type
     
    327351 * @return boolean false
    328352 */
    329 function autoriser_tradlangmodule_creer_dist($faire, $type, $id, $qui, $opt){
     353function autoriser_tradlangmodule_creer_dist($faire, $type, $id, $qui, $opt) {
    330354        return false;
    331355}
     
    334358 * Autorisation à créer une chaine de langue
    335359 * Renvoit false, pour l'instant on force l'usage de salvatore
    336  * 
     360 *
    337361 * @param string $faire
    338362 * @param string $type
     
    342366 * @return boolean false
    343367 */
    344 function autoriser_tradlang_creer_dist($faire, $type, $id, $qui, $opt){
     368function autoriser_tradlang_creer_dist($faire, $type, $id, $qui, $opt) {
    345369        return false;
    346370}
    347 ?>
  • _plugins_/trad-lang/trunk/tradlang_fonctions.php

    r93933 r97004  
    11<?php
    22/**
    3  * 
     3 *
    44 * Trad-lang v2
    55 * Plugin SPIP de traduction de fichiers de langue
    66 * © Florent Jugla, Fil, kent1
    7  * 
     7 *
    88 * Fichier des fonctions spécifiques du plugin
    9  * 
     9 *
    1010 * @package SPIP\Tradlang\Fonctions
    1111 */
    12  
     12
    1313if (!defined('_ECRIRE_INC_VERSION')) {
    1414        return;
     
    1717/**
    1818 * Retourne les modules disponibles en base sous la forme d'un array complet
    19  * 
     19 *
    2020 * @return array $ret
    2121 *              Un array complet des modules en base
    2222 */
    23 function tradlang_getmodules_base(){
     23function tradlang_getmodules_base() {
    2424        $ret = array();
    2525
     
    2727         * Sélection de tous les modules de langue
    2828         */
    29         $res = sql_allfetsel("module,id_tradlang_module","spip_tradlang_modules");
    30         if (is_array($res)){
    31                 foreach($res as $row){
    32                         $module = $row["module"];
     29        $res = sql_allfetsel('module, id_tradlang_module', 'spip_tradlang_modules');
     30        if (is_array($res)) {
     31                foreach ($res as $row) {
     32                        $module = $row['module'];
    3333                        $ret[$module] = $row;
    3434
    3535                        /**
    36                          * Récupération des différentes langues et calcul du nom des 
     36                         * Récupération des différentes langues et calcul du nom des
    3737                         * fichiers de langue
    3838                         */
    39                         $res2 = sql_allfetsel("DISTINCT lang","spip_tradlangs","id_tradlang_module=".intval($row['id_tradlang_module']));
    40                         foreach($res2 as $row2){
    41                                 $lg = $row2["lang"];
    42                                 $ret[$module]["langue_".$lg] = $row["lang_prefix"]."_".$lg.".php";
     39                        $res2 = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . intval($row['id_tradlang_module']));
     40                        foreach ($res2 as $row2) {
     41                                $lg = $row2['lang'];
     42                                $ret[$module]['langue_' . $lg] = $row['lang_prefix'].'_'.$lg.'.php';
    4343                        }
    4444                }
     
    5050 * Teste la synchro du fichier de la base avec le fichier de langue en se basant
    5151 * sur une ligne ajoutée lors de l'import si possible
    52  * 
    53  * @param array $id_tradlang_module 
     52 *
     53 * @param array $id_tradlang_module
    5454 *              L'identifiant numérique du module
    55  * @param string $lang 
     55 * @param string $lang
    5656 *              Le code de langue à vérifier
    57  * @return 
    58  */
    59 function tradlang_testesynchro($id_tradlang_module, $lang){
     57 * @return
     58 */
     59function tradlang_testesynchro($id_tradlang_module, $lang) {
    6060        $dir_lang = tradlang_dir_lang();
    6161
    62         $module = sql_getfetsel('module','spip_tradlang_modules','id_tradlang_module='.intval($id_tradlang_module));
     62        $module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module=' . intval($id_tradlang_module));
    6363
    6464        $modules = tradlang_getmodules_base();
    6565        $modok = $modules[$module];
    6666
    67         $getmodules_fics = charger_fonction('tradlang_getmodules_fics','inc');
     67        $getmodules_fics = charger_fonction('tradlang_getmodules_fics', 'inc');
    6868        $modules2 = $getmodules_fics($dir_lang,$module);
    6969        $modok2 = $modules2[$module];
    7070
    7171        // union entre modok et modok2
    72         if(is_array($modok2)){
    73                 foreach($modok2 as $cle=>$item){
    74                         if (strncmp($cle, "langue_", 7) == 0){
    75                                 $sel = "";
    76                                 $lang = substr($cle,7);
    77                                 if (!array_key_exists($lang, $modok)){
    78                                         $module_final["langue_".$lang] = $item;
     72        if (is_array($modok2)) {
     73                foreach ($modok2 as $cle => $item) {
     74                        if (strncmp($cle, 'langue_', 7) == 0) {
     75                                $sel = '';
     76                                $lang = substr($cle, 7);
     77                                if (!array_key_exists($lang, $modok)) {
     78                                        $module_final['langue_' . $lang] = $item;
    7979                                }
    8080                        }
     
    8282        }
    8383        // Le fichier n'existe pas
    84         if(!$module_final["langue_".$lang]){
     84        if (!$module_final['langue_' . $lang]) {
    8585                return false;
    8686        }
    87        
     87
    8888        // lit le timestamp fichier
    89         $fic = $dir_lang."/".$module_final["langue_".$lang];
     89        $fic = $dir_lang . '/' . $module_final['langue_' . $lang];
    9090        include($fic);
    9191        $chs = $GLOBALS[$GLOBALS['idx_lang']];
    92         $tsf = $chs["zz_timestamp_nepastraduire"];
     92        $tsf = $chs['zz_timestamp_nepastraduire'];
    9393        unset($GLOBALS[$GLOBALS['idx_lang']]);
    9494
    95        
     95
    9696        // lit le timestamp  base
    97         $tsb = sql_getfetsel("maj","spip_tradlangs","module =".sql_quote($module)." AND lang=".sql_quote($lang),"","maj DESC","0,1");
     97        $tsb = sql_getfetsel('maj', 'spip_tradlangs', 'module = ' . sql_quote($module) . ' AND lang=' . sql_quote($lang), '', 'maj DESC', '0,1');
    9898
    9999        return ($tsb == $tsf);
    100100}
    101101
    102 function tradlang_dir_lang(){
     102function tradlang_dir_lang() {
    103103        global $dossier_squelettes;
    104         if(!$dossier_squelettes && !is_dir(_DIR_RACINE.'squelettes'))
     104        if (!$dossier_squelettes and !is_dir(_DIR_RACINE.'squelettes')) {
    105105                return false;
    106         else
     106        } else {
    107107                $squelettes = $dossier_squelettes ? $dossier_squelettes : 'squelettes';
    108 
    109         if(!is_dir($dir_lang=_DIR_RACINE.$squelettes.'/lang'))
     108        }
     109
     110        if (!is_dir($dir_lang = _DIR_RACINE.$squelettes.'/lang')) {
    110111                return false;
     112        }
    111113
    112114        return $dir_lang;
     
    115117/**
    116118 * Filtre spip pour utiliser arsort sur un array
    117  * 
     119 *
    118120 * @param array $array
    119121 */
    120 function langues_sort($array,$defaut=null){
    121         if(is_array($array)){
     122function langues_sort($array, $defaut = null) {
     123        if (is_array($array)) {
    122124                arsort($array);
    123                 if(isset($defaut)){
     125                if (isset($defaut)) {
    124126                        $langue_defaut = array($defaut => $array[$defaut]);
    125127                        unset($array[$defaut]);
    126                         $array = array_merge($langue_defaut,$array);
     128                        $array = array_merge($langue_defaut, $array);
    127129                }
    128130                return $array;
     
    136138function boucle_TRADLANG_MODULES_dist($id_boucle, &$boucles) {
    137139        $boucle = &$boucles[$id_boucle];
    138        
     140
    139141        /**
    140142         * Par défaut on tri par priorité et nom_mod
    141143         */
    142         if (!isset($boucle->modificateur['par']) 
    143                 && !isset($boucle->modificateur['tri'])) {
     144        if (!isset($boucle->modificateur['par'])
     145                and !isset($boucle->modificateur['tri'])) {
    144146                        $id_table = $boucle->id_table;
    145147                        $boucle->order[] = "'$id_table." ."priorite'";
     
    154156function boucle_TRADLANGS_dist($id_boucle, &$boucles) {
    155157        $boucle = &$boucles[$id_boucle];
    156         if(isset($boucle->nom) && ($boucle->nom == 'calculer_langues_utilisees') && $boucle->id_boucle == 'tradlang'){
     158        if (isset($boucle->nom) and ($boucle->nom == 'calculer_langues_utilisees') and $boucle->id_boucle == 'tradlang') {
    157159                $id_table = $boucle->id_table;
    158160                array_unshift($boucle->where,array("'='", "'$id_table." ."id_tradlang'", "'0'"));
     
    163165/**
    164166 * Le critère des langues préférées {langues_preferees}...
    165  * 
    166  * {langues_preferees} : Sur une table avec le champ lang retourne uniquement les résultats dans les 
     167 *
     168 * {langues_preferees} : Sur une table avec le champ lang retourne uniquement les résultats dans les
    167169 * langues préférées des utilisateurs, si aucune langue préférée, ne retourne rien
    168  * {!langues_preferees} : Sur une table avec le champ lang retourne uniquement les résultats dans les 
     170 * {!langues_preferees} : Sur une table avec le champ lang retourne uniquement les résultats dans les
    169171 * langues non préférées des utilisateurs, si aucune langue préférée, renverra tout
    170  *
    171  * Le critère est sessionné ... Le résultat des boucles l'utilisant est donc modifié en fonction de la session utilisateur
    172  */
    173 function critere_langues_preferees_dist($idb,&$boucles,$crit){
     172 *
     173 * Le critère est sessionné ...
     174 * Le résultat des boucles l'utilisant est donc modifié en fonction de la session utilisateur
     175 */
     176function critere_langues_preferees_dist($idb, &$boucles, $crit) {
    174177        $boucle = &$boucles[$idb];
    175178        $id_table = $boucle->id_table;
    176179        $not = ($crit->not ? '' : 'NOT');
    177180        $primary = 'lang';
    178         $c = "sql_in('".$id_table.'.'.$primary."', prepare_langues_preferees()".($not=='NOT' ? "" : ",'NOT'").")";
     181        $c = "sql_in('" . $id_table . '.' . $primary."', prepare_langues_preferees()".($not=='NOT' ? "" : ",'NOT'") . ")";
    179182        $boucle->where[] = $c;
    180183        /**
     
    186189/**
    187190 * Fonction de préparation de la sélection des langues préférées
    188  * 
     191 *
    189192 * Les langues préférées d'un utilisateur sont stockées dans un array serialisé dans la table
    190193 * spip_auteurs (c'est le champ "langues_preferees")
    191  * 
     194 *
    192195 * Si un auteur est identifié, on regarde en base si langue_preferees est rempli sinon on retourne toutes les
    193196 * langues de la liste de ecrire/inc/lang_liste.php
    194  * 
    195  * @param return array 
     197 *
     198 * @param return array
    196199 *              L'array des langues préférées ou toutes les langues possibles
    197200 */
    198201function prepare_langues_preferees() {
    199202        include_spip('inc/lang_liste');
    200         if(isset($GLOBALS['visiteur_session']['id_auteur']) && $GLOBALS['visiteur_session']['id_auteur'] >= 1){
    201                 $langues_preferees = sql_getfetsel('langues_preferees','spip_auteurs','id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
    202                 if($langues_preferees && count(unserialize($langues_preferees)) > 0)
     203        if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur'] >= 1) {
     204                $langues_preferees = sql_getfetsel('langues_preferees', 'spip_auteurs', 'id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
     205                if ($langues_preferees and count(unserialize($langues_preferees)) > 0) {
    203206                        $langues_array = unserialize($langues_preferees);
    204                 else
     207                } else {
    205208                        $langues_array = array_keys($GLOBALS['codes_langues']);
    206         }else
     209                }
     210        } else {
    207211                $langues_array = array_keys($GLOBALS['codes_langues']);
     212        }
    208213        return $langues_array;
    209214}
    210215
    211216/**
    212  * Critère sélectionnant les langues complêtement traduites d'un module 
     217 * Critère sélectionnant les langues complêtement traduites d'un module
    213218 * soit dans l'environnement soit passé en paramètre
    214  * 
     219 *
    215220 * Ce critère doit être utiliser dans une boucle (TRADLANGS)
    216  * 
    217  * Utilisations : 
     221 *
     222 * Utilisations :
    218223 * {langue_complete} ou {langue_complete #ID_TRADLANG_MODULE}
    219224 */
    220 function critere_langue_complete_dist($id_boucle, &$boucles, $crit){
     225function critere_langue_complete_dist($id_boucle, &$boucles, $crit) {
    221226        $boucle = &$boucles[$id_boucle];
    222227        $id_table = $boucle->id_table;
    223         if($id_table == 'tradlangs'){
    224                 if(isset($crit->param[0][0]))
     228        if ($id_table == 'tradlangs') {
     229                if (isset($crit->param[0][0])) {
    225230                        $id_module = calculer_liste(array($crit->param[0][0]), array(), $boucles, $boucles[$id_boucle]->id_parent);
    226                 else
     231                } else {
    227232                        $id_module = calculer_argument_precedent($id_boucle, 'id_tradlang_module', $boucles);
    228        
     233                }
     234
    229235                $boucle->hash .= '
    230236                        $prepare_module = charger_fonction(\'prepare_module_langue_complete\', \'inc\');
     
    232238                ';
    233239
    234                 array_unshift($boucle->where,array("'='", "'$id_table." ."statut'", "'\"OK\"'"));
     240                array_unshift($boucle->where, array("'='", "'$id_table." ."statut'", "'\"OK\"'"));
    235241                $boucles[$id_boucle]->group[] = "$id_table.lang";
    236242                $boucles[$id_boucle]->having[] = "\n\t\t".'$module_having';
    237         }else
     243        } else {
    238244                return (array('zbug_critere_inconnu', array('table' => $crit->op.' ?')));
    239 }
     245        }
     246}
    240247
    241248/**
    242249 * Fonction de préparation du critère {langue_complete}
    243  * 
     250 *
    244251 * @param int $id_module
    245252 *              L'identifiant numérique du module
     
    248255 *              La clause having à utiliser par le critère
    249256 */
    250 function inc_prepare_module_langue_complete_dist($id_module,  $serveur='') {
     257function inc_prepare_module_langue_complete_dist($id_module, $serveur = '') {
    251258        /**
    252259         * On récupère la langue mère du module
    253260         */
    254         $langue_mere = sql_getfetsel('lang_mere','spip_tradlang_modules','id_tradlang_module='.intval($id_module));
    255         /**
    256          * On compte le nombre d'éléments de la langue mère ce qui correspond au nombre total d'éléments à traduire pour un module
    257          */
    258         $count = sql_countsel('spip_tradlangs','id_tradlang_module='.$id_module.' AND statut="OK" AND lang='.sql_quote($langue_mere));
     261        $langue_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module='.intval($id_module));
     262        /**
     263         * On compte le nombre d'éléments de la langue mère ce qui correspond au nombre total d'éléments
     264         * à traduire pour un module
     265         */
     266        $count = sql_countsel('spip_tradlangs', 'id_tradlang_module=' . $id_module.' AND statut="OK" AND lang='.sql_quote($langue_mere));
    259267        /**
    260268         * On crée ainsi la clause $having qui sera utilisée dans la boucle
     
    266274/**
    267275 * Convertie une chaîne de caractère en UTF-8
    268  * 
     276 *
    269277 * @param string $str
    270278 *              La chaîne à convertir
     
    272280 *              La chaîne convertie en UTF-8
    273281 */
    274 function tradlang_utf8($str){
    275         $str = unicode_to_utf_8(
    276                 html_entity_decode(
    277                         preg_replace('/&([lg]t;)/S', '&amp;\1', $str),
    278                         ENT_NOQUOTES, 'utf-8')
    279         );
     282function tradlang_utf8($str) {
     283        $str = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
    280284        return $str;
    281285}
     
    283287/**
    284288 * Fonction qui vérifie que le code de langue spécifié en paramètre est utilisable
    285  * 
     289 *
    286290 * Les codes de langue acceptés sont ceux du fichier ecrire/inc/lang.php (s'il n'est pas surchargé)
    287  * 
     291 *
    288292 * @param string $lang
    289293 *              Le code de lang à tester
     
    291295 *              true si ok, false sinon
    292296 */
    293 function langue_possible($lang){
     297function langue_possible($lang) {
    294298        include_spip('inc/lang');
    295299        $langues = $GLOBALS['codes_langues'];
    296         if(key_exists($lang,$langues))
     300        if (key_exists($lang, $langues)) {
    297301                return true;
     302        }
    298303
    299304        return false;
    300305}
    301 ?>
  • _plugins_/trad-lang/trunk/tradlang_options.php

    r93933 r97004  
    44 * Plugin SPIP de traduction de fichiers de langue
    55 * © Florent Jugla, Fil, kent1
    6  * 
     6 *
    77 * Fichier des options spécifiques du plugin
    8  * 
     8 *
    99 * @package SPIP\Tradlang\Options
    1010 */
     
    2222 * surchargeable dans un fichier config/mes_options.php
    2323 */
    24 if(!defined('_TRAD_PRIORITES'))
    25         define('_TRAD_PRIORITES','10. core;20. extensions;25. community sites;30. contribs');
     24if (!defined('_TRAD_PRIORITES')) {
     25        define('_TRAD_PRIORITES', '10. core;20. extensions;25. community sites;30. contribs');
     26}
    2627
    2728/**
     
    2930 * surchargeable dans un fichier config/mes_options.php
    3031 */
    31 if(!defined('_TRAD_PRIORITE_DEFAUT'))
    32         define('_TRAD_PRIORITE_DEFAUT','30. contribs');
     32if (!defined('_TRAD_PRIORITE_DEFAUT')) {
     33        define('_TRAD_PRIORITE_DEFAUT', '30. contribs');
     34}
    3335
    34 function str_statut_revision($id_tradlang,$c=false){
     36function str_statut_revision($id_tradlang, $c = false) {
    3537        include_spip('action/editer_tradlang');
    36         return tradlang_set($id_tradlang,$c);
     38        return tradlang_set($id_tradlang, $c);
    3739}
    38 ?>
  • _plugins_/trad-lang/trunk/tradlang_pipelines.php

    r93933 r97004  
    44 * Plugin SPIP de traduction de fichiers de langue
    55 * © Florent Jugla, Fil, kent1
    6  * 
     6 *
    77 * Fichier des pipelines utilisés par le plugin
    8  * 
     8 *
    99 * @package SPIP\Tradlang\Pipelines
    1010 */
     
    1616/**
    1717 * Insertion dans le pipelines taches_generales_cron (SPIP)
    18  * 
    19  * On ajoute une tache cron toutes les 4 minutes afin de créer les premières révisions des 
     18 *
     19 * On ajoute une tache cron toutes les 4 minutes afin de créer les premières révisions des
    2020 * tradlang pour éviter de perdre du temps par la suite.
    2121 * Une autre tâche CRON "maintenance" toutes les 24h pour diverses opérations.
    22  * 
     22 *
    2323 * @param array $taches_generales
    2424 *              Le tableau des taches à réaliser
     
    3333/**
    3434 * Insertion dans le pipeline pre_edition (SPIP)
    35  * 
     35 *
    3636 * Ajouter les langues_preferees soumises lors de la soumission du formulaire CVT editer_auteur
    37  * Si quelque chose est sélectionné, on le serialize pour le mettre en base, sinon on serialize un array 
     37 * Si quelque chose est sélectionné, on le serialize pour le mettre en base, sinon on serialize un array
    3838 * pour toujours avoir quelquechose
    39  * 
     39 *
    4040 * @param array $flux
    4141 *              Le contexte du pipeline
     
    4343 *              Le contexte du pipeline auquel on a ajouté ce que l'on souhaite
    4444 */
    45 function tradlang_pre_edition($flux){
     45function tradlang_pre_edition($flux) {
    4646        if ($flux['args']['table'] == 'spip_auteurs') {
    47                 if (is_array($langues_preferees = _request('langues_preferees')))
     47                if (is_array($langues_preferees = _request('langues_preferees'))) {
    4848                        $flux['data']['langues_preferees'] = serialize($langues_preferees);
    49                 else
     49                } else {
    5050                        $flux['data']['langues_preferees'] = serialize(array());
     51                }
    5152        }
    5253        return $flux;
     
    5556/**
    5657 * Insertion dans le pipeline post_edition (SPIP)
    57  * 
     58 *
    5859 * Si configuré comme tel on regénère les fichiers à chaque modification de chaine de langue
    5960 * On n'agit que sur les conditions suivantes :
     
    6162 * -* on a activé la sauvegarde locale
    6263 * -* on a activé la sauvegarde locale au moment de la post-edition
    63  * 
     64 *
    6465 * @param array $flux
    6566 *              Le contexte du pipeline
     
    6768 *              Le contexte du pipeline qui n'est jamais modifié
    6869 */
    69 function tradlang_post_edition($flux){
    70         if($flux['args']['table'] == "spip_tradlangs"){
     70function tradlang_post_edition($flux) {
     71        if ($flux['args']['table'] == 'spip_tradlangs') {
    7172                include_spip('inc/config');
    7273                $config = lire_config('tradlang');
    73                 if (!is_array($config))
     74                if (!is_array($config)) {
    7475                        return $flux;
    75                 if(($config['sauvegarde_locale'] == 'on') && ($config['sauvegarde_post_edition'] == 'on')){
     76                } elseif (($config['sauvegarde_locale'] == 'on') and ($config['sauvegarde_post_edition'] == 'on')) {
    7677                        include_spip('tradlang_fonctions');
    77                         if($dir_lang = tradlang_dir_lang()){
    78                                 $infos = sql_fetsel('lang,module',$flux['args']['table'],'id_tradlang='.intval($flux['args']['id_objet']));
    79                                 $module = sql_fetsel('*','spip_tradlang_modules','module='.sql_quote($infos['module']));
    80                                 $sauvegarder_module = charger_fonction('tradlang_sauvegarde_module','inc');
     78                        if ($dir_lang = tradlang_dir_lang()) {
     79                                $infos = sql_fetsel('lang,module', $flux['args']['table'], 'id_tradlang=' . intval($flux['args']['id_objet']));
     80                                $module = sql_fetsel('*', 'spip_tradlang_modules', 'module=' . sql_quote($infos['module']));
     81                                $sauvegarder_module = charger_fonction('tradlang_sauvegarde_module', 'inc');
    8182                                $sauvegarder_module($module['module'],$infos['lang'],$dir_lang);
    8283                        }
     
    8889/**
    8990 * Insertion dans le pipeline pre_boucle (SPIP)
    90  * 
    91  * Si on est dans la boucle calculer_langues_utilisees (utilisée dans un formulaire de configuration de l'espace privé), 
     91 *
     92 * Si on est dans la boucle calculer_langues_utilisees (utilisée dans un formulaire de configuration de l'espace privé),
    9293 * on ne renvoit pas les langues des tradlangs pour éviter de bloquer ces langues dans la configuration du multilinguisme
    93  * 
     94 *
    9495 * @param object $boucle
    9596 * @return object $boucle
    9697 */
    97 function tradlang_pre_boucle($boucle){
    98         if(isset($boucle->nom) && ($boucle->nom == 'calculer_langues_utilisees') && ($boucle->id_boucle == 'tradlangs'))
    99                 array_unshift($boucle->where,array("'='", "'$id_table." ."id_tradlang'", "'0'"));
     98function tradlang_pre_boucle($boucle) {
     99        if (isset($boucle->nom) and ($boucle->nom == 'calculer_langues_utilisees') and ($boucle->id_boucle == 'tradlangs')) {
     100                array_unshift($boucle->where, array("'='", "'$id_table." ."id_tradlang'", "'0'"));
     101        }
    100102        return $boucle;
    101103}
     
    103105/**
    104106 * Insertion dans le pipeline affiche_milieu (SPIP)
    105  * 
     107 *
    106108 * Sur la fiche des auteurs, on ajoute la liste des révisions de chaines de l'auteur
    107  * 
     109 *
    108110 * @param array $flux
    109111 *              Le contexte du pipeline
     
    111113 *              Le contexte modifié si besoin
    112114 */
    113 function tradlang_affiche_milieu($flux){
    114         if (($flux['args']['exec'] == 'auteur') && (intval($flux['args']['id_auteur']) > 0)){
     115function tradlang_affiche_milieu($flux) {
     116        if (($flux['args']['exec'] == 'auteur') && (intval($flux['args']['id_auteur']) > 0)) {
    115117                $texte = recuperer_fond(
    116118                        'prive/objets/liste/versions',
     
    127129/**
    128130 * Insertion dans le pipeline editer_contenu_objet (SPIP)
    129  * 
     131 *
    130132 * Ajouter un champ langues préférées sur le formulaire CVT editer_auteur
    131133 *
     
    133135 * @return array
    134136 */
    135 function tradlang_editer_contenu_objet($flux){
     137function tradlang_editer_contenu_objet($flux) {
    136138        if ($flux['args']['type']=='auteur') {
    137139                $langue_preferee = recuperer_fond('formulaires/inc-langues_preferees', $flux['args']['contexte']);
     
    143145/**
    144146 * Insertion dans le pipeline formulaire_charger (SPIP)
    145  * 
     147 *
    146148 * Ajouter la valeur langues_preferees dans la liste des champs de la fiche auteur
    147149 *
     
    151153 *              Le contexte du pipeline modifié
    152154 */
    153 function tradlang_formulaire_charger($flux){
     155function tradlang_formulaire_charger($flux) {
    154156        // si le charger a renvoye false ou une chaine, ne rien faire
    155         if (is_array($flux['data']) && ($flux['args']['form']=='editer_auteur')){
     157        if (is_array($flux['data']) and ($flux['args']['form'] == 'editer_auteur')) {
    156158                $flux['data']['langues_preferees'] = '';
    157                 if ($id_auteur = intval($flux['data']['id_auteur']))
    158                         $flux['data']['langues_preferees'] = sql_getfetsel('langues_preferees','spip_auteurs','id_auteur='.intval($id_auteur));
     159                if ($id_auteur = intval($flux['data']['id_auteur'])) {
     160                        $flux['data']['langues_preferees'] = sql_getfetsel('langues_preferees', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
     161                }
    159162        }
    160163        return $flux;
     
    164167 * Insertion dans le pipeline forum_objets_depuis_env (Plugin Forum)
    165168 * On ajoute la possibilité d'avoir des forums sur les chaines de langue
    166  * 
     169 *
    167170 * @param array $array
    168171 * @return array $array
    169172 */
    170 function tradlang_forum_objets_depuis_env($array){
     173function tradlang_forum_objets_depuis_env($array) {
    171174        $array['tradlang'] = id_table_objet('tradlang');
    172175        return $array;
     
    176179 * Insertion dans le pipeline revisions_chercher_label (Plugin révisions)
    177180 * Utiliser de bons labels pour nos champs sous révision
    178  * 
     181 *
    179182 * @param array $flux
    180183 *              Le contexte du pipeline
     
    182185 *              Le contexte du pipeline modifié
    183186 */
    184 function tradlang_revisions_chercher_label($flux){
    185         if($flux['args']['objet'] == 'tradlang' && in_array($flux['args']['champ'],array('str','traducteur','statut')))
     187function tradlang_revisions_chercher_label($flux) {
     188        if ($flux['args']['objet'] == 'tradlang' and in_array($flux['args']['champ'], array('str', 'traducteur', 'statut'))) {
    186189                $flux['data'] = 'tradlang:info_'.$flux['args']['champ'];
     190        }
    187191        return $flux;
    188192}
    189193
    190 function tradlang_grappes_objets_lies($flux){
    191         if(is_array($flux) && !isset($flux['tradlang_modules']))
     194function tradlang_grappes_objets_lies($flux) {
     195        if (is_array($flux) and !isset($flux['tradlang_modules'])) {
    192196                $flux['tradlang_modules'] = _T('tradlang:item_groupes_association_modules');
     197        }
    193198        return $flux;
    194199}
    195 ?>
Note: See TracChangeset for help on using the changeset viewer.