chore: Rector up to PHP 7.4

master
Matthieu Marcillaud 3 months ago
parent d68f84d084
commit 5de4157539

@ -12,14 +12,14 @@ function action_editer_tradlang_dist($arg = null) {
// si id_tradlang n'est pas un nombre, c'est une creation
// mais on verifie qu'on a toutes les donnees qu'il faut.
if (!$id_tradlang = intval($arg)) {
if (!$id_tradlang = (int) $arg) {
return false;
}
// Enregistre l'envoi dans la BD
$err = tradlang_set($arg);
return array($arg,'');
return [$arg, ''];
}
function tradlang_set($id_tradlang, $set = null) {
@ -32,7 +32,7 @@ function tradlang_set($id_tradlang, $set = null) {
// white list
objet_info('tradlang', 'champs_editables'),
// black list
array(),
[],
// donnees eventuellement fournies
$set
);
@ -40,7 +40,7 @@ function tradlang_set($id_tradlang, $set = null) {
/**
* On vérifie s'il y a au moins un champ modifié pour ajouter l'id_auteur dans les traducteurs
*/
$infos_tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
$infos_tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
$modifie = false;
foreach ($c as $champ => $valeur) {
@ -50,8 +50,8 @@ function tradlang_set($id_tradlang, $set = null) {
}
}
if ($modifie and ($GLOBALS['visiteur_session']['id_auteur'] > 0)) {
$traducteurs = array();
if ($modifie && $GLOBALS['visiteur_session']['id_auteur'] > 0) {
$traducteurs = [];
if ($infos_tradlang['traducteur']) {
$traducteurs = array_map('trim', explode(',', $infos_tradlang['traducteur']));
}
@ -68,21 +68,21 @@ function tradlang_set($id_tradlang, $set = null) {
if ($err = objet_modifier_champs(
'tradlang',
$id_tradlang,
array(
[
'data' => $set,
'nonvide' => array(),
'nonvide' => [],
'invalideur' => $invalideur,
'indexation' => true,
),
'indexation' => true
],
$c
)) {
return $err;
}
if (($statut = (in_array(_request('statut'), array('NEW', 'MODIF', 'OK', 'RELIRE'))) ? _request('statut') : $c['statut']) and ($statut != $infos_tradlang['statut'])) {
sql_updateq('spip_tradlangs', array('statut' => $statut), 'id_tradlang = ' . intval($id_tradlang));
$infos_maj = array();
$bilan = sql_fetsel('chaines_ok,chaines_relire,chaines_modif,chaines_new', 'spip_tradlangs_bilans', 'id_tradlang_module=' . intval($infos_tradlang['id_tradlang_module']) . ' AND lang=' . sql_quote($infos_tradlang['lang']));
if (($statut = (in_array(_request('statut'), ['NEW', 'MODIF', 'OK', 'RELIRE'])) ? _request('statut') : $c['statut']) && $statut != $infos_tradlang['statut']) {
sql_updateq('spip_tradlangs', ['statut' => $statut], 'id_tradlang = ' . (int) $id_tradlang);
$infos_maj = [];
$bilan = sql_fetsel('chaines_ok,chaines_relire,chaines_modif,chaines_new', 'spip_tradlangs_bilans', 'id_tradlang_module=' . (int) $infos_tradlang['id_tradlang_module'] . ' AND lang=' . sql_quote($infos_tradlang['lang']));
if ($statut == 'OK') {
$infos_maj['chaines_ok'] = ($bilan['chaines_ok']+1);
} elseif ($statut == 'RELIRE') {
@ -103,7 +103,7 @@ function tradlang_set($id_tradlang, $set = null) {
$infos_maj['chaines_new'] = ($bilan['chaines_new']-1);
}
sql_updateq('spip_tradlangs_bilans', $infos_maj, 'id_tradlang_module=' . intval($infos_tradlang['id_tradlang_module']) . ' AND lang=' . sql_quote($infos_tradlang['lang']));
sql_updateq('spip_tradlangs_bilans', $infos_maj, 'id_tradlang_module=' . (int) $infos_tradlang['id_tradlang_module'] . ' AND lang=' . sql_quote($infos_tradlang['lang']));
}
//$c = collecter_requests(array('statut'),array(),$set);
@ -123,40 +123,40 @@ function instituer_tradlang($id_tradlang, $c) {
include_spip('inc/rubriques');
include_spip('inc/modifier');
$statut = sql_getfetsel('statut', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
$statut = sql_getfetsel('statut', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
$statut_ancien = $statut = $statut;
$champs = array();
$champs = [];
$s = isset($c['statut'])?$c['statut']:$statut;
$s = $c['statut'] ?? $statut;
// cf autorisations dans inc/instituer_article
if ($s != $statut) {
if (autoriser('modifier', 'tradlang', $id_tradlang)) {
$statut = $champs['statut'] = $s;
} else {
spip_log("editer_tradlang $id_tradlang refus " . join(' ', $c));
spip_log("editer_tradlang $id_tradlang refus " . implode(' ', $c));
}
}
// Envoyer aux plugins
$champs = pipeline(
'pre_edition',
array(
'args' => array(
[
'args' => [
'table' => 'spip_tradlangs',
'objet' => 'tradlang',
'id_objet' => $id_tradlang,
'action'=>'instituer',
'statut_ancien' => $statut_ancien,
),
'statut_ancien' => $statut_ancien
],
'data' => $champs
)
]
);
if (!count($champs)) {
if (!(is_countable($champs) ? count($champs) : 0)) {
return;
}
// Envoyer les modifs.
sql_updateq('spip_tradlangs', $champs, 'id_tradlang = ' . intval($id_tradlang));
sql_updateq('spip_tradlangs', $champs, 'id_tradlang = ' . (int) $id_tradlang);
// Invalider les caches
include_spip('inc/invalideur');
@ -165,22 +165,24 @@ function instituer_tradlang($id_tradlang, $c) {
// Pipeline
pipeline(
'post_edition',
array(
'args' => array(
[
'args' => [
'table' => 'spip_tradlangs',
'objet' => 'tradlang',
'id_objet' => $id_tradlang,
'action'=>'instituer',
'statut_ancien' => $statut_ancien,
),
'statut_ancien' => $statut_ancien
],
'data' => $champs
)
]
);
// Notifications
if ($notifications = charger_fonction('notifications', 'inc')) {
$notifications('instituertradlang', $id_tradlang,
array('statut' => $statut, 'statut_ancien' => $statut_ancien)
$notifications(
'instituertradlang',
$id_tradlang,
['statut' => $statut, 'statut_ancien' => $statut_ancien]
);
}

@ -16,14 +16,14 @@ function action_tradlang_bon_a_pousser_dist(){
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
$id_tradlang_module = intval($arg);
$id_tradlang_module = (int) $arg;
if (!$id_tradlang_module){
spip_log("action_tradlang_bon_a_pousser $arg pas compris", 'tradlang.' . _LOG_ERREUR);
return false;
}
sql_updateq("spip_tradlang_modules", array('bon_a_pousser' => 1), 'id_tradlang_module=' . intval($id_tradlang_module));
sql_updateq("spip_tradlang_modules", ['bon_a_pousser' => 1], 'id_tradlang_module=' . (int) $id_tradlang_module);
include_spip('inc/invalideur');
suivre_invalideur("'tradlang_module/id=$id_tradlang_module'");

@ -16,13 +16,13 @@ function action_tradlang_creer_langue_cible_dist() {
return false;
}
$id_tradlang_module = intval($arg);
$id_tradlang_module = (int) $arg;
include_spip('inc/autoriser');
$lang_crea = _request('lang_crea');
if ($lang_crea and $id_tradlang_module and autoriser('modifier', 'tradlang')) {
if ($lang_crea && $id_tradlang_module && autoriser('modifier', 'tradlang')) {
// Import de la langue mere
$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
if (!$infos_module) {
spip_log("action_tradlang_creer_langue_cible : infos_module #$id_tradlang_module non existant", 'tradlang.' . _LOG_ERREUR);
} else {

@ -13,18 +13,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
function action_tradlang_exporter_langue_dist() {
$level = null;
$lang_crea = null;
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
if (!preg_match(',^([0-9]+)\/(\w+)?(\/?(\w*))?(\/?(\w*))$,', $arg, $r)) {
if (!preg_match(',^(\d+)\/(\w+)?(\/?(\w*))?(\/?(\w*))$,', $arg, $r)) {
spip_log("action_tradlang_exporter_langue_dist $arg pas compris", 'tradlang');
}
$id_tradlang_module = intval($r[1]);
$id_tradlang_module = (int) $r[1];
$lang_cible = $r[2];
$type = $r[4] ? $r[4] : false;
$tout = ($r[6] == 'non') ? false : true;
if ($lang_cible and intval($id_tradlang_module) and sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible))) {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$type = $r[4] ?: false;
$tout = $r[6] != 'non';
if ($lang_cible && (int) $id_tradlang_module && sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible))) {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$tradlang_sauvegarde_module = charger_fonction('tradlang_sauvegarde_module', 'inc');
$fichier = $tradlang_sauvegarde_module($module, $lang_cible, false, $type, $tout);
if (file_exists($fichier)) {

@ -13,6 +13,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
function action_tradlang_exporter_zip_dist() {
$fichier = null;
$chemin = null;
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
@ -20,14 +22,14 @@ function action_tradlang_exporter_zip_dist() {
spip_log("action_tradlang_exporter_langue_dist $arg pas compris", 'tradlang');
}
$id_tradlang_module = intval($r[1]);
$id_tradlang_module = (int) $r[1];
include_spip('inc/autoriser');
if (intval($id_tradlang_module) and autoriser('modifier', 'tradlang') and sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module))) {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module), 'lang');
if ((int) $id_tradlang_module && autoriser('modifier', 'tradlang') && sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module)) {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module, 'lang');
$tradlang_sauvegarde_module = charger_fonction('tradlang_sauvegarde_module', 'inc');
$fichiers = array();
$fichiers = [];
$zip = '';
/**
@ -43,7 +45,7 @@ function action_tradlang_exporter_zip_dist() {
/**
* On crée le zip
*/
if (count($fichier) > 0) {
if ((is_countable($fichier) ? count($fichier) : 0) > 0) {
$dir_lang = _DIR_VAR.'cache-lang/'.$module.'/';
if (!is_dir(_DIR_VAR . 'cache-lang/')) {
sous_repertoire(_DIR_VAR, 'cache-lang');

@ -20,18 +20,20 @@ function action_tradlang_supprimer_langue_cible_dist() {
spip_log("action_tradlang_creer_langue_cible $arg pas compris", 'tradlang');
return false;
}
$id_tradlang_module = intval($r[1]);
$id_tradlang_module = (int) $r[1];
$lang_cible = $r[2];
include_spip('inc/autoriser');
if ($lang_cible
and intval($id_tradlang_module)
and autoriser('modifier', 'tradlang')
and !sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible) . " AND statut='OK'")) {
if (
$lang_cible
&& (int) $id_tradlang_module
&& autoriser('modifier', 'tradlang')
&& !sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible) . " AND statut='OK'")
) {
if (!_request('confirm')) {
$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$titre = $row_module['nom_mod'] .': ' . _T('tradlang:confirm_suppression_langue_cible', array('lang' => $lang_cible));
$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$titre = $row_module['nom_mod'] .': ' . _T('tradlang:confirm_suppression_langue_cible', ['lang' => $lang_cible]);
$btn_label = _T('tradlang:bouton_supprimer_langue_module');
$redirect = _request('redirect');
$url_action = generer_action_auteur('tradlang_supprimer_langue_cible', "$id_tradlang_module/$lang_cible", $redirect);
@ -42,17 +44,16 @@ function action_tradlang_supprimer_langue_cible_dist() {
echo minipres($titre, "<style>h1{font-weight: normal}#minipres{text-align: center}</style>". bouton_action($btn_label,$url_action), '', true);
exit;
}
else {
} else {
/**
* Suppression des versions et urls
*/
$tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module).' AND lang='.sql_quote($lang_cible));
$tradlangs_supprimer = array();
$tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module.' AND lang='.sql_quote($lang_cible));
$tradlangs_supprimer = [];
foreach ($tradlangs as $tradlang) {
$tradlangs_supprimer[] = $tradlang['id_tradlang'];
}
if (count($tradlangs_supprimer)) {
if ($tradlangs_supprimer !== []) {
sql_delete('spip_versions', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
sql_delete('spip_versions_fragments', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
sql_delete('spip_urls', 'type="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
@ -60,11 +61,11 @@ function action_tradlang_supprimer_langue_cible_dist() {
/**
* Suppression des chaînes de langue
*/
sql_delete('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
sql_delete('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible));
/**
* Suppression des bilans de cette langue
*/
sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible));
include_spip('inc/invalideur');
suivre_invalideur('1');
if ($redirect = _request('redirect')){

@ -22,7 +22,7 @@ function tradlang_declarer_tables_interfaces($interface) {
function tradlang_declarer_tables_objets_sql($tables) {
$tables['spip_auteurs']['field']['langues_preferees'] = "text DEFAULT '' NOT NULL";
$tables['spip_grappes']['champs_versionnes'][] = 'jointure_tradlang_modules';
$tables['spip_tradlang_modules'] = array(
$tables['spip_tradlang_modules'] = [
'texte_retour' => 'icone_retour',
'texte_objet' => 'tradlang:titre_tradlang_module',
'texte_objets' => 'tradlang:titre_tradlang_modules',
@ -33,7 +33,7 @@ function tradlang_declarer_tables_objets_sql($tables) {
'info_nb_objets' => 'tradlang:info_nb_tradlang_module',
'titre' => "nom_mod AS titre, '' AS lang",
'principale' => 'oui',
'field'=> array(
'field'=> [
"id_tradlang_module" => "bigint(21) NOT NULL AUTO_INCREMENT",
"module" => "varchar(128) NOT NULL",
"nom_mod" => "text DEFAULT '' NOT NULL",
@ -47,26 +47,26 @@ function tradlang_declarer_tables_objets_sql($tables) {
"lang_prefix" => "varchar(32) NOT NULL",
"limite_trad" => "tinyint NOT NULL DEFAULT 0",
"bon_a_pousser" => "tinyint NOT NULL DEFAULT 0"
),
'key' => array(
],
'key' => [
'PRIMARY KEY' => 'id_tradlang_module',
'UNIQUE dir_module' => 'dir_module',
'KEY module' => 'module'
),
'join' => array(
],
'join' => [
'id_tradlang_module' => 'id_tradlang_module',
'module' => 'module'
),
'rechercher_champs' => array(
],
'rechercher_champs' => [
'module' => 8,
'nom_mod' => 8,
'texte' => 8,
'priorite' => 3
),
'champs_versionnes' => array('module','nom_mod','texte','lang_mere','priorite','limite_trad')
);
],
'champs_versionnes' => ['module','nom_mod','texte','lang_mere','priorite','limite_trad']
];
$tables['spip_tradlangs'] = array(
$tables['spip_tradlangs'] = [
'page'=>'tradlang',
'texte_retour' => 'icone_retour',
'texte_objets' => 'tradlang:titre_tradlang_chaines',
@ -75,9 +75,9 @@ function tradlang_declarer_tables_objets_sql($tables) {
'info_1_objet' => 'tradlang:info_1_tradlang',
'info_nb_objets' => 'tradlang:info_nb_tradlang',
'date' => 'date_modif',
'champs_editables' => array('str','comm','traducteur','statut','md5'),
'champs_editables' => ['str','comm','traducteur','statut','md5'],
'principale' => 'oui',
'field'=> array(
'field'=> [
"id_tradlang" => "bigint(21) NOT NULL AUTO_INCREMENT",
"id_tradlang_module" => "bigint(21) NOT NULL DEFAULT '0'",
"titre" => "text DEFAULT '' NOT NULL",
@ -93,18 +93,19 @@ function tradlang_declarer_tables_objets_sql($tables) {
"orig" => "tinyint(4) NOT NULL default '0'",
"date_modif" => "datetime default NULL",
"maj" => "timestamp NOT NULL"
),
],
/**
* Laisser le statut ici sinon on n'agit plus sur le pipeline pre_boucle
*/
'statut' => array(
array(
'statut' => [
[
'champ'=>'statut',
'publie'=>'OK,NEW,MODIF,RELIRE',
'previsu'=>'OK,NEW,MODIF,RELIRE',
'exception'=>'statut')
),
'key' => array(
'exception'=>'statut'
]
],
'key' => [
'PRIMARY KEY' => 'id_tradlang',
'UNIQUE id_tradlang_module_id_lang' => 'id_tradlang_module,id,lang',
'KEY id_tradlang_module' => 'id_tradlang_module',
@ -114,30 +115,30 @@ function tradlang_declarer_tables_objets_sql($tables) {
'KEY statut' => 'statut',
'KEY module_lang' => 'module,lang',
'KEY id_tradlang_module_lang_statut' => 'id_tradlang_module,lang,statut', // accelere le calcul des bilans
),
'join' => array(
],
'join' => [
'id_tradlang' => 'id_tradlang',
'module' =>'module'
),
'statut_images' => array(
],
'statut_images' => [
'OK' => 'tradlang_statut_ok.png',
'NEW' => 'tradlang_statut_new.png',
'MODIF' => 'tradlang_statut_modif.png',
'RELIRE' => 'tradlang_statut_relire.png'
),
'statut_textes_instituer' => array(
],
'statut_textes_instituer' => [
'OK' => 'tradlang:str_status_traduit',
'NEW' => 'tradlang:str_status_new',
'MODIF' => 'tradlang:str_status_modif',
'RELIRE' => 'tradlang:str_status_relire'
),
'rechercher_champs' => array(
],
'rechercher_champs' => [
'id' => 8,
'str' => 8,
'comm' => 4
),
'champs_versionnes' => array('str','comm','traducteur','statut')
);
],
'champs_versionnes' => ['str','comm','traducteur','statut']
];
return $tables;
}
@ -148,26 +149,28 @@ function tradlang_declarer_tables_objets_sql($tables) {
*/
function tradlang_declarer_tables_auxiliaires($tables_auxiliaires) {
$spip_tradlangs_bilans = array(
"id_tradlang_module" => "bigint(21) NOT NULL",
"module" => "varchar(128) NOT NULL",
"lang" => "varchar(10) DEFAULT '' NOT NULL",
"chaines_total" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_ok" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_relire" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_modif" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_new" => "smallint(5) DEFAULT '0' NOT NULL",
"maj" => "timestamp NOT NULL");
$spip_tradlangs_bilans = [
"id_tradlang_module" => "bigint(21) NOT NULL",
"module" => "varchar(128) NOT NULL",
"lang" => "varchar(10) DEFAULT '' NOT NULL",
"chaines_total" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_ok" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_relire" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_modif" => "smallint(5) DEFAULT '0' NOT NULL",
"chaines_new" => "smallint(5) DEFAULT '0' NOT NULL",
"maj" => "timestamp NOT NULL"
];
$spip_tradlangs_bilans_keys = array(
'UNIQUE id_module_lang' => 'id_tradlang_module,lang',
'KEY module' => 'module',
'KEY lang' => 'lang'
);
$spip_tradlangs_bilans_keys = [
'UNIQUE id_module_lang' => 'id_tradlang_module,lang',
'KEY module' => 'module',
'KEY lang' => 'lang'
];
$tables_auxiliaires['spip_tradlangs_bilans'] = array(
$tables_auxiliaires['spip_tradlangs_bilans'] = [
'field' => &$spip_tradlangs_bilans,
'key' => &$spip_tradlangs_bilans_keys);
'key' => &$spip_tradlangs_bilans_keys
];
return $tables_auxiliaires;
}

@ -25,7 +25,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Le fichier final
*/
function export_lang_csv_dist($module, $langue, $dir_lang) {
$chaines_csv=$tous=array();
$chaines_csv=$tous=[];
/**
* Le fichier final
@ -41,7 +41,7 @@ function export_lang_csv_dist($module, $langue, $dir_lang) {
/**
* Les chaines
*/
$res = sql_allfetsel('id,str,statut,comm', 'spip_tradlangs', 'id_tradlang_module = ' . intval($info_module['id_tradlang_module']) . ' AND lang=' . sql_quote($langue) . ' AND statut != "attic"', 'id');
$res = sql_allfetsel('id,str,statut,comm', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $info_module['id_tradlang_module'] . ' AND lang=' . sql_quote($langue) . ' AND statut != "attic"', 'id');
foreach ($res as $row) {
$tous[$row['id']] = $row;
}
@ -55,11 +55,11 @@ function export_lang_csv_dist($module, $langue, $dir_lang) {
$newmd5 = md5($str);
if ($oldmd5 !== $newmd5) {
sql_updateq('spip_tradlangs', array('md5'=>$newmd5), 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']));
sql_updateq('spip_tradlangs', ['md5'=>$newmd5], 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . (int) $info_module['id_tradlang_module']);
}
$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id = '.sql_quote($id).' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']).' AND lang = ' . sql_quote($info_module['lang_mere']));
$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id = '.sql_quote($id).' AND id_tradlang_module = ' . (int) $info_module['id_tradlang_module'].' AND lang = ' . sql_quote($info_module['lang_mere']));
$chaine = array('id' => $row['id'],'str_orig'=>$str_original,'str'=>$str,'statut'=>$row['statut'],'comm'=>$row['comm']);
$chaine = ['id' => $row['id'], 'str_orig'=>$str_original, 'str'=>$str, 'statut'=>$row['statut'], 'comm'=>$row['comm']];
$chaines_csv[] = $chaine;
unset($tous[$id]);
}

@ -28,7 +28,9 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Le fichier final
*/
function export_lang_po_dist($module, $langue, $dir_lang) {
$x=$tous=array();
$traducteurs = [];
$lang = null;
$x=$tous=[];
$contenu = '';
/**
@ -50,25 +52,25 @@ function export_lang_po_dist($module, $langue, $dir_lang) {
* On ajoute une liste de traducteurs en entête de fichier (non obligatoire)
* On ajoute également l'item "Last-Translator : user <email>" dans les métas ($last_auteur)
*/
$last_auteur = array();
$last_auteur = [];
if ($langue != $info_module['lang_mere']) {
$traducteur = sql_fetsel('id_tradlang,traducteur', 'spip_tradlangs', 'id_tradlang_module = ' . intval($info_module['id_tradlang_module']) . ' AND lang = '.sql_quote($langue), '', 'maj DESC', '0,1');
$traducteur = sql_fetsel('id_tradlang,traducteur', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $info_module['id_tradlang_module'] . ' AND lang = '.sql_quote($langue), '', 'maj DESC', '0,1');
if (is_numeric($traducteur['traducteur'])) {
$id_auteur = $traducteur['traducteur'];
} else {
$id_auteur = sql_getfetsel('id_auteur', 'spip_versions', 'objet="tradlang" AND id_objet = ' . intval($traducteur['id_tradlang']), '', 'id_version DESC', '0,1');
$id_auteur = sql_getfetsel('id_auteur', 'spip_versions', 'objet="tradlang" AND id_objet = ' . (int) $traducteur['id_tradlang'], '', 'id_version DESC', '0,1');
}
$last_auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
$last_auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
$traducteurs[$lang] = array();
$people_unique = array();
$liste_traducteurs = sql_select('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module = '.intval($info_module['id_tradlang_module']) . ' AND lang = ' . sql_quote($langue));
$traducteurs[$lang] = [];
$people_unique = [];
$liste_traducteurs = sql_select('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module = '.(int) $info_module['id_tradlang_module'] . ' AND lang = ' . sql_quote($langue));
while ($t = sql_fetch($liste_traducteurs)) {
$traducteurs_lang = explode(',', $t['traducteur']);
foreach ($traducteurs_lang as $traducteur) {
if (!in_array($traducteur, $people_unique)) {
if (is_numeric($traducteur) and $id_auteur=intval($traducteur)) {
if (is_numeric($traducteur) && ($id_auteur=(int) $traducteur)) {
$traducteur_supp['nom'] = extraire_multi(sql_getfetsel('nom', 'spip_auteurs', 'id_auteur = ' . $id_auteur));
$traducteur_supp['lien'] = url_absolue(generer_url_entite($id_auteur, 'auteur'), $url_site);
} elseif (trim(strlen($traducteur)) > 0) {
@ -99,7 +101,7 @@ function export_lang_po_dist($module, $langue, $dir_lang) {
$contenu .= '# This is a SPIP language file -- Ceci est un fichier langue de SPIP
# extrait automatiquement de '.$url_trad.'
'
. (isset($trad_texte) ? $trad_texte : '')
. ($trad_texte ?? '')
. 'msgid ""
msgstr ""
"Project-Id-Version: '.$info_module['nom_mod'].'\n"
@ -128,7 +130,7 @@ msgstr ""
* msgid "Item dans la langue originale"
* msgstr "Item dans la langue actuelle (traduit), si non traduit, vide"
*/
$res=sql_allfetsel("*","spip_tradlangs","id_tradlang_module=".intval($info_module['id_tradlang_module'])." AND lang=".sql_quote($langue)." AND statut != 'attic'","id");
$res=sql_allfetsel("*","spip_tradlangs","id_tradlang_module=".(int) $info_module['id_tradlang_module']." AND lang=".sql_quote($langue)." AND statut != 'attic'","id");
foreach($res as $row){
$tous[$row['id']] = $row;
}
@ -149,9 +151,9 @@ msgstr ""
$newmd5 = md5($str);
if ($oldmd5 !== $newmd5) {
sql_updateq('spip_tradlangs', array('md5' => $newmd5), 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']));
sql_updateq('spip_tradlangs', ['md5' => $newmd5], 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . (int) $info_module['id_tradlang_module']);
}
$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id =' . sql_quote($id) . ' AND id_tradlang_module=' . intval($info_module['id_tradlang_module']) . ' AND lang=' . sql_quote($info_module['lang_mere']));
$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id =' . sql_quote($id) . ' AND id_tradlang_module=' . (int) $info_module['id_tradlang_module'] . ' AND lang=' . sql_quote($info_module['lang_mere']));
$x[] = ($row['comm'] ? '#' . $row['comm']."\n" : '').
'
#, '.(($row['statut'] == 'MODIF') ? 'fuzzy, php-format' : 'php-format')."
@ -161,7 +163,7 @@ msgstr \"".(($row['statut'] == 'NEW') ? '' : str_replace('"', '\"', $str))."\"";
unset($tous[$id]);
}
$contenu .= str_replace("\r\n", "\n", join("\n", $x));
$contenu .= str_replace("\r\n", "\n", implode("\n", $x));
ecrire_fichier($fichier, $contenu);
return $fichier;

@ -27,6 +27,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Le fichier final
*/
function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
$url_trad = null;
/**
* Le fichier final
* local/cache-lang/module_lang.php
@ -39,7 +40,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
$where .= " AND statut IN ('OK','MODIF','RELIRE')";
}
$res=sql_allfetsel('id,str,comm,statut', 'spip_tradlangs', $where, 'id');
$x=array();
$x=[];
$prev = '';
/**
* on part de l'origine comme ca on a tout
@ -51,11 +52,11 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
}
ksort($tous);
foreach ($tous as $row) {
if ($prev != strtoupper($row['id'][0])) {
if ($prev !== strtoupper($row['id'][0])) {
$x[] = "\n$tab// ".strtoupper($row['id'][0]);
}
$prev = strtoupper($row['id'][0]);
if (strlen($row['statut']) and ($row['statut'] != 'OK')) {
if (strlen($row['statut']) && $row['statut'] != 'OK') {
$row['comm'] .= ' '.$row['statut'];
}
if (trim($row['comm'])) {
@ -71,7 +72,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
$str = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
$newmd5 = md5($str);
if ($oldmd5 !== $newmd5) {
sql_updateq('spip_tradlangs', array('md5'=>$newmd5), 'md5 = ' . sql_quote($oldmd5) . ' AND module = '.sql_quote($module));
sql_updateq('spip_tradlangs', ['md5'=>$newmd5], 'md5 = ' . sql_quote($oldmd5) . ' AND module = '.sql_quote($module));
}
$x[] = "$tab".var_export($row['id'], 1) . ' => ' . var_export($str, 1) . ',' . $row['comm'] ;
@ -93,7 +94,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
*/
$x[count($x)-1] = preg_replace('/,([^,]*)$/', '\1', $x[count($x)-1]);
$contenu = join("\n", $x);
$contenu = implode("\n", $x);
/**
* On écrit le fichier

@ -7,7 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_configurer_tradlang_charger_dist() {
$valeurs = @unserialize($GLOBALS['meta']['tradlang']);
if (!is_array($valeurs)) {
$valeurs = array();
$valeurs = [];
}
include_spip('inc/lang_liste');
@ -17,20 +17,21 @@ function formulaires_configurer_tradlang_charger_dist() {
}
function formulaires_configurer_tradlang_verifier_dist() {
$erreurs = array();
if (($langues_autorisees = _request('langues_autorisees')) and (count($langues_autorisees)<2)) {
$erreurs = [];
if (($langues_autorisees = _request('langues_autorisees')) && (is_countable($langues_autorisees) ? count($langues_autorisees) : 0)<2) {
$erreurs['langues_autorisees'] = _T('tradlang:erreur_langues_autorisees_insuffisantes');
}
$limite_trad = _request('seuil_export_tradlang');
if (!is_numeric($limite_trad) || (intval($limite_trad) < 0) || (intval($limite_trad) > 100)) {
if (!is_numeric($limite_trad) || ((int) $limite_trad < 0) || ((int) $limite_trad > 100)) {
$erreurs['seuil_export_tradlang'] = _T('tradlang:erreur_limite_trad_invalide');
}
return $erreurs;
}
function formulaires_configurer_tradlang_traiter_dist() {
$res = array('editable'=>true);
foreach (array(
$config = [];
$res = ['editable'=>true];
foreach ([
'sauvegarde_locale',
'sauvegarde_post_edition',
'seuil_export_tradlang',
@ -46,10 +47,10 @@ function formulaires_configurer_tradlang_traiter_dist() {
'voir_type',
'voir_statuts',
'voir_auteurs'
) as $m) {
if (!is_null($v = _request($m))) {
$config[$m] = _request($m);
}
] as $m) {
if (!is_null($v = _request($m))) {
$config[$m] = _request($m);
}
}
$priorites = explode(';', _TRAD_PRIORITES);
foreach ($priorites as $priorite) {
@ -68,7 +69,7 @@ function tradlang_test_repertoire_local() {
if (!$dossier_squelettes && !is_dir(_DIR_RACINE.'squelettes')) {
return false;
} else {
$squelettes = $dossier_squelettes ? $dossier_squelettes : _DIR_RACINE.'squelettes/';
$squelettes = $dossier_squelettes ?: _DIR_RACINE.'squelettes/';
}
if (!is_dir($dir_lang = $squelettes.'lang')) {
return false;

@ -8,8 +8,8 @@ include_spip('inc/actions');
include_spip('inc/editer');
function formulaires_editer_tradlang_charger($id_tradlang = 'aucun', $retour = '', $lang_orig = '') {
$valeurs = formulaires_editer_objet_charger('tradlang', $id_tradlang, 0, '', $retour, $config_fonc, $row, $hidden);
if (!intval($id_tradlang)) {
$valeurs = formulaires_editer_objet_charger('tradlang', $id_tradlang, 0, '', $retour);
if (!(int) $id_tradlang) {
$valeurs['editable'] = false;
$valeurs['message_erreur'] = _T('tradlang:erreur_id_tradlang_numerique');
}
@ -17,22 +17,18 @@ function formulaires_editer_tradlang_charger($id_tradlang = 'aucun', $retour = '
* Si on ne donne pas de langue original, on va chercher la langue mère
*/
$valeurs['lang_mere'] = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'module = ' . sql_quote($valeurs['module']));
if (!$lang_orig) {
$valeurs['lang_orig'] = $valeurs['lang_mere'];
} else {
$valeurs['lang_orig'] = $lang_orig;
}
$valeurs['lang_orig'] = $lang_orig ?: $valeurs['lang_mere'];
return $valeurs;
}
function formulaires_editer_tradlang_verifier($id_tradlang = 'aucun', $retour = '', $lang_orig = '') {
$erreurs = formulaires_editer_objet_verifier('tradlang', 0, array('str', 'statut'));
$erreurs = formulaires_editer_objet_verifier('tradlang', 0, ['str', 'statut']);
/**
* On vérifie ici que les variables @...@ des chaines de langue ne sont pas modifiées
*/
$tradlang = sql_fetsel('chaine.id_tradlang_module,chaine.id,module.lang_mere', 'spip_tradlangs AS chaine LEFT JOIN spip_tradlang_modules AS module ON chaine.id_tradlang_module = module.id_tradlang_module', 'id_tradlang = ' . intval($id_tradlang));
$tradlang_mere = sql_getfetsel('str', 'spip_tradlangs', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']).' AND lang = ' . sql_quote($tradlang['lang_mere']) . ' AND id = ' . sql_quote($tradlang['id']));
$tradlang = sql_fetsel('chaine.id_tradlang_module,chaine.id,module.lang_mere', 'spip_tradlangs AS chaine LEFT JOIN spip_tradlang_modules AS module ON chaine.id_tradlang_module = module.id_tradlang_module', 'id_tradlang = ' . (int) $id_tradlang);
$tradlang_mere = sql_getfetsel('str', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module'].' AND lang = ' . sql_quote($tradlang['lang_mere']) . ' AND id = ' . sql_quote($tradlang['id']));
if (preg_match_all(',@[^@]+@,i', $tradlang_mere, $variables)) {
foreach ($variables[0] as $variable) {
if (!preg_match("/$variable/", _request('str'))) {
@ -48,26 +44,26 @@ function formulaires_editer_tradlang_verifier($id_tradlang = 'aucun', $retour =
}
function formulaires_editer_tradlang_traiter($id_tradlang = 'aucun', $retour = '', $lang_orig = '') {
$res = formulaires_editer_objet_traiter('tradlang', $id_tradlang, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
$res = formulaires_editer_objet_traiter('tradlang', $id_tradlang);
if (!test_espace_prive()) {
$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
$module = sql_fetsel('module,nom_mod,lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']));
$lang_orig = $lang_orig ? $lang_orig:$module['lang_mere'];
$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
$module = sql_fetsel('module,nom_mod,lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module']);
$lang_orig = $lang_orig ?: $module['lang_mere'];
$url_module = parametre_url(parametre_url(generer_url_entite($tradlang['id_tradlang_module'], 'tradlang_module'), 'lang_orig', $lang_orig), 'lang_cible', $tradlang['lang']);
$res['redirect'] = '';
if ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']) . ' AND lang = ' . sql_quote($tradlang['lang']).' AND statut != "OK" AND id_tradlang > ' . intval($id_tradlang))) {
if ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module'] . ' AND lang = ' . sql_quote($tradlang['lang']).' AND statut != "OK" AND id_tradlang > ' . (int) $id_tradlang)) {
$url_suivant = parametre_url(parametre_url(generer_url_entite($id_tradlang_suivant, 'tradlang'), 'lang_orig', $lang_orig), 'lang_cible', $tradlang['lang']);
} elseif ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']) . ' AND statut != "OK" AND lang = ' . sql_quote($tradlang['lang']))) {
} elseif ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module'] . ' AND statut != "OK" AND lang = ' . sql_quote($tradlang['lang']))) {
$url_suivant = parametre_url(parametre_url(generer_url_entite($id_tradlang_suivant, 'tradlang'), 'lang_orig', $lang_orig), 'lang_cible', $tradlang['lang']);
}
$res['message_ok'] .= '<br />';
if (isset($url_suivant)) {
$res['message_ok'] .= '<a href="'.$url_suivant.'"">'._T('tradlang:lien_traduire_suivant_str_module', array('module' => $module['nom_mod'])).'</a>';
$res['message_ok'] .= '<a href="'.$url_suivant.'"">'._T('tradlang:lien_traduire_suivant_str_module', ['module' => $module['nom_mod']]).'</a>';
} else {
$res['message_ok'] .= _T('tradlang:info_module_traduit_pc', array('pc'=>'100'));
$res['message_ok'] .= _T('tradlang:info_module_traduit_pc', ['pc'=>'100']);
}
$res['message_ok'] .= '<br />';
$res['message_ok'] .= '<a href="'.$url_module.'"">'._T('tradlang:lien_retour_module', array('module' => $module['nom_mod'])).'</a>';
$res['message_ok'] .= '<a href="'.$url_module.'"">'._T('tradlang:lien_retour_module', ['module' => $module['nom_mod']]).'</a>';
$res['editable'] = true;
}
return $res;

@ -9,6 +9,9 @@ include_spip('inc/editer');
include_spip('tradlang_fonctions');
function formulaires_editer_tradlang_module_charger($id_tradlang_module, $retour = '') {
$config_fonc = null;
$row = null;
$hidden = null;
$valeurs = formulaires_editer_objet_charger('tradlang_module', $id_tradlang_module, 0, '', $retour, $config_fonc, $row, $hidden);
$modules = tradlang_getmodules_base();
@ -25,8 +28,9 @@ function formulaires_editer_tradlang_module_charger($id_tradlang_module, $retour
}
function formulaires_editer_tradlang_module_verifier($id_tradlang_module, $retour = '') {
$erreur = array();
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$lgs = [];
$erreur = [];
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$modules = tradlang_getmodules_base();
if (!isset($modules[$module])) {
$erreur['module'] = _T('tradlang:erreur_module_inexistant');
@ -50,7 +54,7 @@ function formulaires_editer_tradlang_module_verifier($id_tradlang_module, $retou
}
$limite_trad = _request('limite_trad');
if (!is_numeric($limite_trad) || (intval($limite_trad) < 0) || (intval($limite_trad) > 100)) {
if (!is_numeric($limite_trad) || ((int) $limite_trad < 0) || ((int) $limite_trad > 100)) {
$erreur['limite_trad'] = _T('tradlang:erreur_limite_trad_invalide');
}
@ -58,37 +62,37 @@ function formulaires_editer_tradlang_module_verifier($id_tradlang_module, $retou
}
function formulaires_editer_tradlang_module_traiter($id_tradlang_module, $retour = '') {
$ret = array();
$module = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$ret = [];
$module = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
if (_request('delete_module')) {
$supprimer_module = charger_fonction('tradlang_supprimer_module', 'inc');
$suppressions = $supprimer_module($id_tradlang_module);
$ret['editable'] = false;
if (intval($suppressions) && ($suppressions > 1)) {
$ret['message_ok'] = _T('tradlang:message_suppression_module_trads_ok', array('nb' => $suppressions, 'module' => $module));
if ((int) $suppressions && ($suppressions > 1)) {
$ret['message_ok'] = _T('tradlang:message_suppression_module_trads_ok', ['nb' => $suppressions, 'module' => $module]);
} else {
$ret['message_ok'] = _T('tradlang:message_suppression_module_ok', array('module' => $module));
$ret['message_ok'] = _T('tradlang:message_suppression_module_ok', ['module' => $module]);
}
} else {
$res = sql_select('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$res = sql_select('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$modok = sql_fetch($res);
$langue = _request('codelangue');
$data = array(
'nom_mod' => _request('nom_mod') ? _request('nom_mod') : $module,
$data = [
'nom_mod' => _request('nom_mod') ?: $module,
'lang_mere' => _request('lang_mere'),
'texte' => _request('texte'),
'priorite' => _request('priorite')
);
$limite_trad = _request('limite_trad') ? _request('limite_trad') : 0;
];
$limite_trad = _request('limite_trad') ?: 0;
$data['limite_trad'] = $limite_trad;
sql_updateq('spip_tradlang_modules', $data, 'id_tradlang_module = ' . intval($id_tradlang_module));
$ret['message_ok'] = _T('tradlang:message_module_updated', array('module' => $module));
sql_updateq('spip_tradlang_modules', $data, 'id_tradlang_module = ' . (int) $id_tradlang_module);
$ret['message_ok'] = _T('tradlang:message_module_updated', ['module' => $module]);
if ($langue) {
$sauvegarde = charger_fonction('tradlang_ajouter_code_langue', 'inc');
$sauvegarde($modok, $langue);
$ret['message_ok'] .= '<br />'._T('tradlang:message_module_langue_ajoutee', array('module' => $module, 'langue' => $langue));
$ret['message_ok'] .= '<br />'._T('tradlang:message_module_langue_ajoutee', ['module' => $module, 'langue' => $langue]);
}
$ret['editable'] = true;
$ret['redirect'] = $retour;

@ -6,7 +6,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function liste_langues() {
include_spip('inc/config');
if (is_array($langues_autorisees = lire_config('tradlang/langues_autorisees')) and count($langues_autorisees) > 0) {
if (is_array($langues_autorisees = lire_config('tradlang/langues_autorisees')) && $langues_autorisees !== []) {
return $langues_autorisees;
} else {
include_spip('inc/lang_liste');

@ -30,15 +30,18 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Le tableau des valeurs chargées au formulaire
*/
function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $lang_orig = 'fr', $lang_cible = '', $lang_crea = '') {
$id_tradlang_module = _request('id_tradlang_module') ? _request('id_tradlang_module') : $id_tradlang_module;
$valeurs = [];
$langues_presentes = [];
$langues_conf = [];
$id_tradlang_module = _request('id_tradlang_module') ?: $id_tradlang_module;
include_spip('inc/autoriser');
if (autoriser('modifier', 'tradlang')) {
if (!intval($id_tradlang_module)) {
if (!(int) $id_tradlang_module) {
$id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', '', '', 'priorite,nom_mod');
}
if (!$lang_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module))) {
$valeurs['id_tradlang_module'] = $id_tradlang_module = $module_defaut = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', '', array('priorite', 'nom_mod'), '', '0,1');
if (!$lang_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module)) {
$valeurs['id_tradlang_module'] = $id_tradlang_module = $module_defaut = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', '', ['priorite', 'nom_mod'], '', '0,1');
/**
* Si aucun module dans la base
*/
@ -60,8 +63,8 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
if (!$lang_cible) {
$lang_cible = $GLOBALS['spip_lang'];
}
$valeurs = array('id_tradlang_module' => $id_tradlang_module, 'lang_orig' => $lang_orig, 'lang_cible' => $lang_cible, 'lang_crea' => $lang_crea);
foreach ($valeurs as $key => $val) {
$valeurs = ['id_tradlang_module' => $id_tradlang_module, 'lang_orig' => $lang_orig, 'lang_cible' => $lang_cible, 'lang_crea' => $lang_crea];
foreach (array_keys($valeurs) as $key) {
if (_request($key)) {
$valeurs[$key] = _request($key);
}
@ -74,8 +77,8 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
* sinon on passe à la langue mère
*/
if ($lang_orig != $lang_mere) {
$compte_total_mere = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . intval($valeurs['id_tradlang_module']) . ' AND statut = "OK" AND lang = ' . sql_quote($lang_mere));
$compte_total_orig = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . intval($valeurs['id_tradlang_module']) . ' AND statut = "OK" AND lang = ' . sql_quote($lang_orig));
$compte_total_mere = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $valeurs['id_tradlang_module'] . ' AND statut = "OK" AND lang = ' . sql_quote($lang_mere));
$compte_total_orig = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $valeurs['id_tradlang_module'] . ' AND statut = "OK" AND lang = ' . sql_quote($lang_orig));
if ($compte_total_mere != $compte_total_orig) {
$valeurs['lang_orig'] = $lang_mere;
}
@ -86,7 +89,7 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
$langues_possibles = $GLOBALS['codes_langues'];
ksort($langues_possibles);
$langues_modules = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module));
$langues_modules = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module);
foreach ($langues_modules as $langue) {
$langues_presentes[$langue['lang']] = traduire_nom_langue($langue['lang']);
}
@ -135,7 +138,7 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
* Le tableau des erreurs
*/
function formulaires_tradlang_choisir_module_verifier($id_tradlang_module = '', $lang_orig = '', $lang_cible = '', $lang_crea = '') {
$erreur = array();
$erreur = [];
if (!_request('lang_cible') && !_request('creer_lang_cible')) {
$erreur['lang_cible'] = _T('tradlang:erreur_pas_langue_cible');
} elseif (_request('lang_cible') == _request('lang_orig')) {
@ -163,22 +166,21 @@ function formulaires_tradlang_choisir_module_verifier($id_tradlang_module = '',
* Le tableau habituel des cvt avec redirect pour la redirection
*/
function formulaires_tradlang_choisir_module_traiter($id_tradlang_module = '', $lang_orig = '', $lang_cible = '', $lang_crea = '') {
$id_tradlang_module = _request('id_tradlang_module');
$res = [];
$id_tradlang_module = _request('id_tradlang_module');
$lang_orig = _request('lang_orig');
$lang_cible = _request('lang_cible');
$lang_crea = _request('creer_lang_cible');
if ($traduire = _request('traduire')) {
$res['message_ok'] = _T('tradlang:message_passage_trad');
if ($lang_crea) {
if (include_spip('inc/autoriser') && autoriser('modifier', 'tradlang')) {
// Import de la langue mere
$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$ajouter_code_langue = charger_fonction('tradlang_ajouter_code_langue', 'inc');
$ajouter_code_langue($infos_module,$lang_crea);
$lang_cible = $lang_crea;
$res['message_ok'] = _T('tradlang:message_passage_trad_creation_lang', array('lang' => $lang_crea));
}
}
if ($lang_crea && (include_spip('inc/autoriser') && autoriser('modifier', 'tradlang'))) {
// Import de la langue mere
$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$ajouter_code_langue = charger_fonction('tradlang_ajouter_code_langue', 'inc');
$ajouter_code_langue($infos_module,$lang_crea);
$lang_cible = $lang_crea;
$res['message_ok'] = _T('tradlang:message_passage_trad_creation_lang', ['lang' => $lang_crea]);
}
$res['redirect'] = parametre_url(parametre_url(parametre_url(generer_url_entite($id_tradlang_module, 'tradlang_module'), 'lang_orig', $lang_orig), 'lang_cible', $lang_cible), 'lang_crea', $lang_crea);
} else {
$res['editable'] = true;

@ -5,15 +5,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module, $lang, $lang_orig) {
$valeurs = [];
$erreurs = [];
$file = [];
$contenu_po = null;
$undefined = [];
$valeurs['_etapes'] = 2;
$valeurs['lang_orig'] = $lang_orig;
$valeurs['lang_cible'] = $lang;
if (!$nom_mod = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module))) {
$valeurs['message_erreur'] = _T('tradlang:erreur_import_module_inexistant', array('id'=>$id_tradlang_module));
if (!$nom_mod = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module)) {
$valeurs['message_erreur'] = _T('tradlang:erreur_import_module_inexistant', ['id'=>$id_tradlang_module]);
$valeurs['editable'] = false;
} else {
if (_request('_etape') == '2') {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$fichier_module = $module.'_'.$lang.'.php';
$fichier_module_po = $module.'_'.$lang.'.po';
$dir_lang = sous_repertoire(_DIR_VAR, 'cache-tradlang');
@ -21,7 +26,7 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
$dest_po = $dir_lang.$fichier_module_po;
if (file_exists($dest) || file_exists($dest_po)) {
if (file_exists($dest)) {
$modifs = $undefined = array();
$modifs = $undefined = [];
$memtrad = $GLOBALS['idx_lang'] = 'i18n_'.crc32($module).'_tmp';
include $dest;
@ -31,18 +36,16 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
$contenu=file_get_contents($dest);
$contenu = str_replace("\t", '', $contenu);
$tab=preg_split("/\r\n|\n\r|;\n|\n\/\/|\(\n|\n\);\n|\'\,\n|\n[\s\t]*(\')|\/\/[\s\t][0-9A-Z]\n[\s\t](\')/", $contenu, '-1', PREG_SPLIT_NO_EMPTY);
$liste_trad=array();
$liste_trad=[];
reset($tab);
while (list(,$ligne) = each($tab)) {
foreach ($tab as $ligne) {
$ligne = str_replace("\'", '', $ligne);
if (strlen($ligne) > 0) {
if (preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
if (isset($matches[1]) and isset($matches[3]) and strlen(trim($matches[3])) > 0) {
list(,$comm) = explode('#', $matches[3]);
if (in_array(trim($comm), array('NEW','MODIF','RELIRE'))) {
$liste_trad[$matches[1]]=trim($comm);
}
if (strlen($ligne) > 0 && preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
if (isset($matches[1]) && isset($matches[3]) && strlen(trim($matches[3])) > 0) {
[, $comm] = explode('#', $matches[3]);
if (in_array(trim($comm), ['NEW', 'MODIF', 'RELIRE'])) {
$liste_trad[$matches[1]]=trim($comm);
}
}
}
@ -53,19 +56,19 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
$str_lang = $GLOBALS[$memtrad]; // on a vu certains fichiers faire des betises et modifier idx_lang
// verifie si c'est un fichier langue
if (!is_array($str_lang)) {
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', array('fichier' => $file['name']));
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', ['fichier' => $file['name']]);
} else {
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module='.intval($id_tradlang_module).' AND lang='.sql_quote($lang));
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module='.(int) $id_tradlang_module.' AND lang='.sql_quote($lang));
foreach ($langues_base as $strings_id => $strings) {
$str_lang[$strings['id']] = preg_replace(',^(<(MODIF|NEW|RELIRE|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]);
if ((strlen($str_lang[$strings['id']]) > 0) and $strings['str'] != $str_lang[$strings['id']]) {
$modifs[$strings['id']] = array('orig' => $strings['str'],'new' => $str_lang[$strings['id']],'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK'));
if (strlen($str_lang[$strings['id']]) > 0 && $strings['str'] != $str_lang[$strings['id']]) {
$modifs[$strings['id']] = ['orig' => $strings['str'], 'new' => $str_lang[$strings['id']], 'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK')];
} elseif (strlen($str_lang[$strings['id']]) == 0) {
$undefined[] = $strings['id'];
} elseif (in_array($strings['id'], $keys_liste_trad) and ($strings['statut'] != $liste_trad[$strings['id']])) {
$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']],'statut' => $liste_trad[$strings['id']]);
} elseif (!in_array($strings['id'], $keys_liste_trad) and $strings['statut'] != 'OK') {
$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']],'statut' => 'OK');
} elseif (in_array($strings['id'], $keys_liste_trad) && $strings['statut'] != $liste_trad[$strings['id']]) {
$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']], 'statut' => $liste_trad[$strings['id']]];
} elseif (!in_array($strings['id'], $keys_liste_trad) && $strings['statut'] != 'OK') {
$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']], 'statut' => 'OK'];
}
unset($langues_base[$strings_id]);
}
@ -74,7 +77,7 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
if (file_exists($dest_po)) {
lire_fichier($dest_po, $contenu_po);
preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr "(.*)\n(\n|\Z),Uims', $contenu_po, $matches);
$array_po = array();
$array_po = [];
foreach ($matches[0] as $match) {
$statut = 'OK';
preg_match(',msgstr \"(.*)\n(\n|\Z),Uims', $match, $matches_str);
@ -85,23 +88,21 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
preg_match(',\nmsgid \"(.*)\nmsgstr,Uims', $match, $matches_str_orig);
$str_orig = rtrim(trim($matches_str_orig[1]), '"');
$str_orig = trim(str_replace("\"\n\"", '', $str_orig));
$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND str = ' . sql_quote($str_orig));
$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND str = ' . sql_quote($str_orig));
}
if (preg_match(',\#\, fuzzy\, php-format,', $match, $matches_statut)) {
$statut = 'MODIF';
}
if ($str != '') {
$array_po[$matches[1]] = array('str'=>$str, 'statut'=>$statut);
$array_po[$matches[1]] = ['str'=>$str, 'statut'=>$statut];
}
}
$modifs = array();
$modifs = [];
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'module = ' . sql_quote($module).' AND lang = ' . sql_quote($lang));
foreach ($langues_base as $strings_id => $strings) {
$str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
if (isset($array_po[$strings['id']]['str']) and strlen(trim($array_po[$strings['id']]['str'])) > 0) {
if (($strings['str'] != $array_po[$strings['id']]['str']) or ($strings['statut'] != $array_po[$strings['id']]['statut'])) {
$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$array_po[$strings['id']]['str'],'statut'=>$array_po[$strings['id']]['statut']);
}
if (isset($array_po[$strings['id']]['str']) && strlen(trim($array_po[$strings['id']]['str'])) > 0 && ($strings['str'] != $array_po[$strings['id']]['str'] || $strings['statut'] != $array_po[$strings['id']]['statut'])) {
$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$array_po[$strings['id']]['str'], 'statut'=>$array_po[$strings['id']]['statut']];
}
unset($langues_base[$strings_id]);
}
@ -110,7 +111,7 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
$valeurs['_modifs'] = $modifs;
}
}
if (count($undefined) > 0) {
if ($undefined !== []) {
$valeurs['message_erreur'] = singulier_ou_pluriel(count($undefined), 'tradlang:item_non_defini_fichier', 'tradlang:item_non_defini_fichier_nb');
}
@ -119,22 +120,24 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
}
function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_module, $lang) {
$erreurs = array();
$fichiers_module = [];
$modifs = [];
$erreurs = [];
if (_request('_etape')==1) {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$fichier_php = $module.'_'.$lang.'.php';
$fichier_po = $module.'_'.$lang.'.po';
$fichiers_module[] = $fichier_php;
$fichiers_module[] = $fichier_po;
$post = isset($_FILES) ? $_FILES : $GLOBALS['HTTP_POST_FILES'];
$files = array();
$post = $_FILES ?? $GLOBALS['HTTP_POST_FILES'];
$files = [];
include_spip('inc/joindre_document');
if (is_array($post)) {
foreach ($post as $file) {
if (!($file['error'] == 4)) {
if ($file['error'] != 4) {
if (!in_array($file['name'], $fichiers_module)) {
$fichier_module = $fichier_php.', '.$fichier_po;
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php', array('fichier' => $file['name'], 'fichier_attendu' => $fichier_module));
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php', ['fichier' => $file['name'], 'fichier_attendu' => $fichier_module]);
}
if (!$erreurs['fichier_langue']) {
@ -157,18 +160,16 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
$contenu=file_get_contents($dest);
$contenu = str_replace("\t", '', $contenu);
$tab=preg_split("/\r\n|\n\r|;\n|\n\/\/|\(\n|\n\);\n|\'\,\n|\n[\s\t]*(\')|\/\/[\s\t][0-9A-Z]\n[\s\t](\')/", $contenu, '-1', PREG_SPLIT_NO_EMPTY);
$liste_trad=array();
$liste_trad=[];
reset($tab);
while (list(,$ligne) = each($tab)) {
foreach ($tab as $ligne) {
$ligne = str_replace("\'", '', $ligne);
if (strlen($ligne) > 0) {
if (preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
if (isset($matches[1]) and isset($matches[3]) and strlen(trim($matches[3])) > 0) {
list(,$comm) = explode('#', $matches[3]);
if (in_array(trim($comm), array('NEW','MODIF','RELIRE'))) {
$liste_trad[$matches[1]]=trim($comm);
}
if (strlen($ligne) > 0 && preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
if (isset($matches[1]) && isset($matches[3]) && strlen(trim($matches[3])) > 0) {
[, $comm] = explode('#', $matches[3]);
if (in_array(trim($comm), ['NEW', 'MODIF', 'RELIRE'])) {
$liste_trad[$matches[1]]=trim($comm);
}
}
}
@ -179,18 +180,18 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
$str_lang = $GLOBALS[$memtrad];
// verifie si c'est un fichier langue
if (!is_array($str_lang)) {
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', array('fichier' => $file['name']));
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', ['fichier' => $file['name']]);
} else {
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
$modifs = array();
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
$modifs = [];
foreach ($langues_base as $strings_id => $strings) {
$str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
if ($strings['str'] != $str_lang[$strings['id']]) {
$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']]);
$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']]];
break;
}
if (in_array($strings['id'], $keys_liste_trad) and ($strings['statut'] != $liste_trad[$strings['id']])) {
$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']]);
if (in_array($strings['id'], $keys_liste_trad) && $strings['statut'] != $liste_trad[$strings['id']]) {
$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']]];
break;
}
}
@ -201,7 +202,7 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
*/
lire_fichier($dest, $contenu_po);
preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr "(.*)\n(\n|\Z),Uims', $contenu_po, $matches);
$array_po = array();
$array_po = [];
foreach ($matches[0] as $match) {
$statut = 'OK';
preg_match(',msgstr \"(.*)\n(\n|\Z),Uims', $match, $matches_str);
@ -212,24 +213,26 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
preg_match(',\nmsgid \"(.*)\nmsgstr,Uims', $match, $matches_str_orig);
$str_orig = rtrim(trim($matches_str_orig[1]), '"');
$str_orig = trim(str_replace("\"\n\"", '', $str_orig));
$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND str = '.sql_quote($str_orig));
$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND str = '.sql_quote($str_orig));
}
if (preg_match(',\#\, fuzzy\, php-format,', $match, $matches_statut)) {
$statut = 'MODIF';
}
if ($str != '') {
$array_po[$matches[1]] = array('str' => $str, 'statut' => $statut);
$array_po[$matches[1]] = ['str' => $str, 'statut' => $statut];
}
}
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
$modifs = array();
$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
$modifs = [];
foreach ($langues_base as $strings_id => $strings) {
$str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
if (isset($array_po[$strings['id']]['str']) and strlen(trim($array_po[$strings['id']]['str'])) > 0) {
if (($strings['str'] != $array_po[$strings['id']]['str']) or ($strings['statut'] != $array_po[$strings['id']]['statut'])) {
$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$array_po[$strings['id']]['str'],'statut'=>$array_po[$strings['id']]['statut']);
break;
}
if (
isset($array_po[$strings['id']]['str'])
&& strlen(trim($array_po[$strings['id']]['str'])) > 0
&& ($strings['str'] != $array_po[$strings['id']]['str'] || $strings['statut'] != $array_po[$strings['id']]['statut'])
) {
$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$array_po[$strings['id']]['str'], 'statut'=>$array_po[$strings['id']]['statut']];
break;
}
}
}
@ -237,11 +240,11 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
}
}
}
if (!count($post) and !$erreurs['fichier_langue']) {
if ($post === [] && !$erreurs['fichier_langue']) {
$erreurs['fichier_langue'] = _T('medias:erreur_indiquez_un_fichier');
}
if (!count($modifs) and !$erreurs['fichier_langue']) {
if (!(is_countable($modifs) ? count($modifs) : 0) && !$erreurs['fichier_langue']) {
$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_aucune_modif');
}
}
@ -249,20 +252,20 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
}
function formulaires_tradlang_importer_langue_verifier_2_dist($id_tradlang_module, $lang) {
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$fichier_php = $module.'_'.$lang.'.php';
$fichier_po = $module.'_'.$lang.'.po';
$dir_lang = sous_repertoire(_DIR_VAR, 'cache-tradlang');
$dest = $dir_lang.$fichier_php;
$destpo = $dir_lang.$fichier_po;
$modifs = $erreurs = array();
$modifs = $erreurs = [];
if (file_exists($dest)) {
$memtrad = $GLOBALS['idx_lang'] = 'i18n_'.crc32($module).'_tmp';
include $dest;
$str_lang = $GLOBALS[$memtrad]; // on a vu certains fichiers faire des betises et modifier idx_lang
$langues_base = sql_allfetsel('*', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
$modifs = array();
$langues_base = sql_allfetsel('*', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
$modifs = [];
foreach ($langues_base as $strings_id => $strings) {
if (_request($strings['id']) == 'oui') {
$modifs[] = $strings['id'];
@ -270,8 +273,8 @@ function formulaires_tradlang_importer_langue_verifier_2_dist($id_tradlang_modul
unset($langues_base[$strings_id]);
}
} elseif (file_exists($destpo)) {
$langues_base = sql_allfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
$modifs = array();
$langues_base = sql_allfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
$modifs = [];
foreach ($langues_base as $strings_id => $strings) {
if (_request($strings['id']) == 'oui') {
$modifs[] = $strings['id'];
@ -281,16 +284,18 @@ function formulaires_tradlang_importer_langue_verifier_2_dist($id_tradlang_modul
} else {
$erreurs['message_erreur'] = "Le fichier temporaire $dest n'a pas été créé";
}
if (!count($modifs)) {
if ($modifs === []) {
$erreurs['message_erreur'] = _T('tradlang:erreur_upload_choisir_une');
}
return $erreurs;
}
function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module, $lang) {
include_spip('action/editer_tradlang');
$contenu_po = null;
$res = [];
include_spip('action/editer_tradlang');
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
$fichier_php = $module.'_'.$lang.'.php';
$fichier_po = $module.'_'.$lang.'.po';
$dir_lang = sous_repertoire(_DIR_VAR, 'cache-tradlang');
@ -305,18 +310,16 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
$contenu=file_get_contents($dest);
$contenu = str_replace("\t", '', $contenu);
$tab=preg_split("/\r\n|\n\r|;\n|\n\/\/|\(\n|\n\);\n|\'\,\n|\n[\s\t]*(\')|\/\/[\s\t][0-9A-Z]\n[\s\t](\')/", $contenu, '-1', PREG_SPLIT_NO_EMPTY);
$liste_trad=array();
$liste_trad=[];
reset($tab);
while (list(,$ligne) = each($tab)) {
foreach ($tab as $ligne) {
$ligne = str_replace("\'", '', $ligne);
if (strlen($ligne)>0) {
if (preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
if (isset($matches[1]) and isset($matches[3]) and strlen(trim($matches[3])) > 0) {
list(,$comm) = explode('#', $matches[3]);
if (in_array(trim($comm), array('NEW','MODIF','RELIRE'))) {
$liste_trad[$matches[1]]=trim($comm);
}
if (strlen($ligne)>0 && preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
if (isset($matches[1]) && isset($matches[3]) && strlen(trim($matches[3])) > 0) {
[, $comm] = explode('#', $matches[3]);
if (in_array(trim($comm), ['NEW', 'MODIF', 'RELIRE'])) {
$liste_trad[$matches[1]]=trim($comm);
}
}
}
@ -331,11 +334,11 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
}
$langues_base = sql_allfetsel('*', 'spip_tradlangs', 'module = ' . sql_quote($module).' AND lang = ' . sql_quote($lang));
$modifs = array();
$modifs = [];
foreach ($langues_base as $strings_id => $strings) {
if (_request($strings['id']) == 'oui') {
$set_new = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
$set = array('str' => $set_new, 'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK'));
$set = ['str' => $set_new, 'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK')];
tradlang_set($strings['id_tradlang'], $set);
$count++;
unset($langues_base[$strings_id]);
@ -345,7 +348,7 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
} else if (file_exists($dest = $dir_lang. $fichier_po)) {
lire_fichier($dest, $contenu_po);
preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr "(.*)\n(\n|\Z),Uims', $contenu_po, $matches);
$array_po = array();
$array_po = [];
foreach ($matches[0] as $match) {
$statut = 'OK';
preg_match(',msgstr \"(.*)\n(\n|\Z),Uims', $match, $matches_str);
@ -356,25 +359,25 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
preg_match(',\nmsgid \"(.*)\nmsgstr,Uims', $match, $matches_str_orig);
$str_orig = rtrim(trim($matches_str_orig[1]), '"');
$str_orig = trim(str_replace("\"\n\"", '', $str_orig));
$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module).' AND str = ' . sql_quote($str_orig));
$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module.' AND str = ' . sql_quote($str_orig));
}
if (preg_match(',\#\, fuzzy\, php-format,', $match, $matches_statut)) {
$statut = 'MODIF';
}
if ($str != '') {
$array_po[$matches[1]] = array('str' => $str, 'statut' => $statut);
$array_po[$matches[1]] = ['str' => $str, 'statut' => $statut];
}
}
$langues_base = sql_allfetsel('id_tradlang,id,str,statut', 'spip_tradlangs', 'module = ' . sql_quote($module) . ' AND lang = ' . sql_quote($lang));
$modifs_po = array();
$modifs_po = [];
foreach ($langues_base as $strings_id => $strings) {
if (_request($strings['id']) == 'oui') {
$set=$instit=null;
if (isset($array_po[$strings['id']]['str']) and strlen(trim($array_po[$strings['id']]['str'])) > 0) {
$set = array('str' => $array_po[$strings['id']]['str']);
if (isset($array_po[$strings['id']]['str']) && strlen(trim($array_po[$strings['id']]['str'])) > 0) {
$set = ['str' => $array_po[$strings['id']]['str']];
tradlang_set($strings['id_tradlang'], $set);
$instit = array('statut' => $array_po[$strings['id']]['statut']);
$instit = ['statut' => $array_po[$strings['id']]['statut']];
instituer_tradlang($strings['id_tradlang'], $instit);
$count++;
unset($langues_base[$strings_id]);
@ -385,9 +388,9 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
}
$res['editable'] = false;
if ($count > 1) {
$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', array('nb' => $count));
$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', ['nb' => $count]);
} else {
$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', array('nb' => $count));
$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', ['nb' => $count]);
}
return $res;
}

@ -12,19 +12,15 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* @return array
*/
function formulaires_tradlang_recherche_avancee_charger_dist($lien = '') {
if ($GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site']) {
$lang = $GLOBALS['spip_lang'];
} else {
$lang='';
}
$lang = $GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site'] ? $GLOBALS['spip_lang'] : '';
return
array(
'action' => ($lien ? $lien : generer_url_public('traduction_recheche')), # action specifique, ne passe pas par Verifier, ni Traiter
'recherche' => _request('recherche'),
'statut' => _request('statut'),
'id_tradlang_module' => _request('id_tradlang_module'),
'lang_string' => _request('lang_string'),
'lang' => $lang
);
return [
'action' => ($lien ?: generer_url_public('traduction_recheche')),
# action specifique, ne passe pas par Verifier, ni Traiter
'recherche' => _request('recherche'),
'statut' => _request('statut'),
'id_tradlang_module' => _request('id_tradlang_module'),
'lang_string' => _request('lang_string'),
'lang' => $lang,
];
}