Le 5 mars 2010 à 09:15, manu a écrit :
cedric.morin@yterium.com a écrit :
Je ne reproduis pas avec une branche 2.0 a jour (une 2.0.10+patchs)
Utilises-tu forcer_lang ?
Sinon peux tu vérifier si tu reproduis le bug avec la même version que moi ?
http://files.spip.org/spip/dev/SPIP-branche-2.0.zipBonjour,
j'ai donc refait l'essai :
> téléchargé l'archive dont tu donnais l'url et l'ai dezippé sur mon poste de travail (ubuntu 9.10).
> Ajout de ZPIP. Aucune modification dans les fichiers si ce n'est l'ajout des [#ENV**|unserialize|print_r{1})] dans squelette-dist/rubrique.html d'une part (pour tester sans l'activation de ZPIP) et dans plugins/zpip/rubrique.html et plugins/zpip/contenu/rubrique.html d'autre part (pour tester après activation de ZPIP)
> pas de forcer_lang, pas de fichier mes_options.phpJe reproduis l'erreur.
Frank reproduit également.C'est étrange tout de même.... Qu'est-ce qu'il y a qu'on zappe ?
(je rebascule sur la liste car le débat concerne tout le monde)
Ok, je reproduis, c'est moi qui n'étais pas dans les bonnes conditions.
Par défaut SPIP transmet à l'inclusion la langue de l'objet du contexte.
Donc dans zpip/rubrique.html tu as initialement le contexte de langue de l'url, mais ensuite tu propage celui de la rubrique, soit fr par défaut (cas d'une installation neuve, langue principale en français, pas de multilinguisme).
SAUF :
- si le titre de l'objet contient un <multi>... </multi> alors l'objet est considéré comme multilingue, et n'impose pas sa langue
- si $GLOBALS['forcer_lang'] = true => le contexte général de langue est propagé sans être remplacé par celui de l'objet dans lequel tu es
Le comportement de Zpip est donc "standard" par rapport à SPIP.
La différence principale est que dans la dist, tu as un seul squelette principal, tu peux donc distinguer la langue de l'url dans le #ENV et la langue de l'objet dans #LANG
Dans Zpip, le premier niveau d'inclusion force la propagation de la langue de l'objet à la place de celle de l'url, et dans contenu/rubrique on n'a plus accès à la langue demandée dans l'url.
On as trois possibilités :
- soit considérer que c'est normal et au cas par cas les utilisateurs utiliseront forcer_lang quand nécessaire
- soit choisir de propager la langue de l'url dans une variable type #ENV{lang_url}. La langue demandée est donc connue, mais ce n'est pas elle qui s'impose dans le head etc ... Pour cela il faut en revenir à forcer_lang
- soit choisir de garder la langue de l'url dans #ENV{lang} au premier inclure. Dans ce cas, c'est elle qui parvient aux contenu/rubrique, navigation/rubrique, extra/rubrique
Mais ce dernier cas donne quelque chose de batard car du coup toutes les inclusions qui font une boucle rubrique affichent leur contenu dans la langue de la rubrique, et celles qui ne font pas de boucle sur la rubrique affichent leur contenu dans la langue.
Typiquement, sur mon cas test, la page est annoncée en lang=en, mais est à 95% en français. Ce n'est donc pas très pertinent...
Il me semble donc au final que la dernière possibilité n'est pas très judicieuse, et seules la 1 ou la 2 sont défendables.
A voir si la 2 a un intérêt, la 1 consistant à ne rien changer ![]()
Cédric