[spip-dev] accéder à codes_langues dans un modèle

Bonjour,

Ce problème, je ne sais pas si c'est un « bug » ; plus probablement c'est que j'essaie de faire quelque chose qu'il ne faudrait pas faire comme ça ...

Dans un modèle j'ai besoin de créer un tableau (array) de langues qui étend/corrige/surcharge la liste fournie par SPIP dans ecrire/inc/lang-liste.php

Alors je fais ceci :

$iso639 = array(
'an' => 'Ao-Naga',
'hl' => 'Hiligaynon',
'ib' => 'Iban',
'il' => 'Ilocano',
'pm' => 'Kapampangan',
'tm' => 'Tetum',
'cy' => 'Cymraeg (Welsh)'
  ...
);

$iso639 = array_merge($GLOBALS['codes_langues'],$iso639);
etc.

Lorsque la page qui utilise le modèle (qui est appelé par #MODELE dans le squelette) est calculée la première fois, cela marche.

Mais lorsque la page est en cache $GLOBALS['codes_langues'] ne donne rien, et le tableau $iso639 est donc vide.

J'étais content de lire (http://www.spip.net/fr_article3454.html), « dans un modèle comportant du php, c’est le résultat du calcul qui est mis en cache, et non le script lui-même », car c'est ça que je veux.

Pour l'instant, je contourne la difficulté en ajoutant dans le modèle toutes les lignes que je veux depuis lang-liste.php, et mettant le array_merge en commentaire.

Vaut-il mieux abandonner l'idée de lire $GLOBALS['codes_langues'] depuis un modèle ?

Paolo

Vaut-il mieux abandonner l'idée de lire $GLOBALS['codes_langues'] depuis un
modèle ?

Oui ; mets ton code dans mes_fonctions.php ça a plus de chances de coller.

-- Fil

Fil wrote:

Vaut-il mieux abandonner l'idée de lire $GLOBALS['codes_langues'] depuis un
modèle ?

Oui ; mets ton code dans mes_fonctions.php ça a plus de chances de coller.

J'avais essayé ça aussi mais sans succès.
Ce n'est pas grave - le "contournement" marche sans prob.

Paolo