Project

General

Profile

Anomalie #4616

(Notice) GLOBALS['lang_i18n_myplu_fr'] indéfini

Added by jluc - 2 months ago. Updated 14 days ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
12/20/2020
Due date:
% Done:

0%

Resolution:
invalid
Navigateur:

Description

Dans un plugin "myplu", sur un site où la seule langue utilisée est 'fr', un fichier de langue "myplu_fr.php" définit la chaîne "myche".
Quand j'utilise la chaîne dans un squelette html, avec "<:myplu:myche:>", une notice est produite : "Undefined index: lang_i18n_myplu_fr" à cause d'un accès à "$GLOBALS['lang_i18n_myplu_fr']" dans inc/traduire.php (286) https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/traduire.php#L286 sur un SPIP 3.3.
Ça n'empêche pas de renvoyer la bonne chaîne mais ça pollue les logs php. Je sais pas ce qu'est cette variable mais il semblerait que $GLOBALS['lang_' . $var]; doive être défini ou bien il faudrait tester si elle est définie avant de l'utiliser.

if (isset($GLOBALS[$var][$code])) {
    $desc->code = $code;
    $desc->module = $module;
    $desc->langue = $GLOBALS['lang_' . $var];   // aïe $var vaut i18n_myplu_fr
    $desc->texte = $GLOBALS[$var][$code]; 
    break;
}

History

#1 Updated by cedric - 14 days ago

  • Status changed from Nouveau to Fermé
  • Resolution set to invalid

C'est a priori un bug dans le fichier de lang concerné qui doit bien commencer par

<?php
// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
// extrait automatiquement de https://trad.spip.net/tradlang_module/ecrire_?lang_cible=br
// ** ne pas modifier le fichier **

if (!defined('_ECRIRE_INC_VERSION')) {
    return;
}

$GLOBALS[$GLOBALS['idx_lang']] = array(

$GLOBALS['idx_lang'] étant justement le lang_i18n_myplu_fr attendu.

Il est donc bon d'avoir un warning ici si la globale n'est pas définie

Also available in: Atom PDF