From cf576ec0479b18afaedf6cff6414b0c65cd5247c Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Thu, 11 May 2023 18:07:56 +0200 Subject: [PATCH] fix: Notices diverses, simplification de code --- action/tradlang_exporter_langue.php | 31 +++++++++-------------------- export_lang/po.php | 19 ++++++++++++------ export_lang/spip.php | 9 +-------- 3 files changed, 23 insertions(+), 36 deletions(-) diff --git a/action/tradlang_exporter_langue.php b/action/tradlang_exporter_langue.php index 64468a3..3361a41 100644 --- a/action/tradlang_exporter_langue.php +++ b/action/tradlang_exporter_langue.php @@ -32,35 +32,22 @@ function action_tradlang_exporter_langue_dist() { $tradlang_sauvegarde_module = charger_fonction('tradlang_sauvegarde_module', 'inc'); $fichier = $tradlang_sauvegarde_module($module, $lang_cible, false, $type, $tout); if (file_exists($fichier)) { - // supprimer et vider les buffers qui posent des problemes de memory limit - // http://www.php.net/manual/en/function.readfile.php#81032 - // Copie du plugin acces restreint action/api_docrestreint.php - @ini_set('zlib.output_compression', '0'); // pour permettre l'affichage au fur et a mesure - @ini_set('output_buffering', 'off'); - @ini_set('implicit_flush', 1); - @ob_implicit_flush(1); - while ($level--) { - @ob_end_clean(); - } - switch ($type) { case 'po': - header('Content-Type: application/x-gettext;'); + $content_type = 'application/x-gettext'; break; case 'csv': - header('Content-type: text/csv'); + $content_type = 'text/csv'; + break; + case 'php': + $content_type = 'application/x-httpd-php'; break; default: - header('Content-Type: application/x-httpd-php;'); + $content_type = 'application/octet-stream'; + break; } - header('Content-Length: ' . filesize($fichier)); - header('Content-Transfer-Encoding: binary'); - header('Pragma: public'); // required - header('Expires: 0'); - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header('Cache-Control: private', false); // required for certain browsers - header('Content-Disposition: attachment; filename="' . basename($fichier) . '"'); - readfile($fichier); + include_spip('inc/livrer_fichier'); + spip_livrer_fichier($fichier, $content_type); die(); } else { include_spip('inc/minipres'); diff --git a/export_lang/po.php b/export_lang/po.php index 0dd0fc9..379c003 100644 --- a/export_lang/po.php +++ b/export_lang/po.php @@ -30,7 +30,6 @@ if (!defined('_ECRIRE_INC_VERSION')) { */ function export_lang_po_dist($module, $langue, $dir_lang) { $traducteurs = []; - $lang = null; $x = $tous = []; $contenu = ''; @@ -64,22 +63,30 @@ function export_lang_po_dist($module, $langue, $dir_lang) { $last_auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur); - $traducteurs[$lang] = []; + $traducteurs[$langue] = []; $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)) { + $liste_traducteurs = sql_allfetsel( + 'DISTINCT(traducteur)', + 'spip_tradlangs', + [ + 'id_tradlang_module = ' . (int) $info_module['id_tradlang_module'], + 'lang = ' . sql_quote($langue), + 'traducteur IS NOT NULL' + ] + ); + foreach ($liste_traducteurs as $t) { $traducteurs_lang = explode(',', $t['traducteur']); foreach ($traducteurs_lang as $traducteur) { if (!in_array($traducteur, $people_unique)) { 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_objet_url($id_auteur, 'auteur'), $url_site); + $traducteur_supp['lien'] = url_absolue(generer_objet_url($id_auteur, 'auteur')); } elseif (trim(strlen($traducteur)) > 0) { $traducteur_supp['nom'] = trim($traducteur); $traducteur_supp['lien'] = ''; } if (isset($traducteur_supp['nom'])) { - $traducteurs[$lang][] = $traducteur_supp; + $traducteurs[$langue][] = $traducteur_supp; } unset($traducteur_supp); $people_unique[] = $traducteur; diff --git a/export_lang/spip.php b/export_lang/spip.php index c45b45a..c731f4b 100644 --- a/export_lang/spip.php +++ b/export_lang/spip.php @@ -43,14 +43,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) { $res = sql_allfetsel('id,str,comm,statut', 'spip_tradlangs', $where, 'id'); $x = []; $prev = ''; - /** - * on part de l'origine comme ca on a tout - * meme si c'est pas dans la base de donnees (import de salvatore/lecteur.php) - */ - $tous = $lorigine; - foreach ($res as $row) { - $tous[$row['id']] = $row; - } + $tous = array_column($res, null, 'id'); ksort($tous); foreach ($tous as $row) { if ($prev !== strtoupper($row['id'][0])) { -- GitLab