Log:
Une subtilité linguistique dans la balise #INCLURE et conséquences.
Le problème de la langue des RSS privés de [12515] repose en définitive sur l'impossibilité d'utiliser le critère conditionnel {{{ {lang ?} }}} dans un squelette inclus car SPIP rajoute d'office ce paramètre dans le contexte. Ca peut se justifier pour la construction {{{ <INCLURE ...> }}} mais pas pour la balise {{{#INCLURE}}} qui est censé exécuté le squelette inclus dans le même environnement que le squelette incluant. En conséquence, cette balise n'inclut plus d'office la langue dans le contexte. Ce changement devrait être le plus souvent transparent (car la langue est souvent déjà dans le contexte et le problème ne se pose pas), mais si l'on veut se protéger de toutes mauvaises surprises il suffit de rajouter {{{ {lang} }}} après chacun des {{{ #INCLURE }}} comme cela est fait ici.
Cette spécification d'office de la langue étant faite très profondément dans le code, obligation de revoir toute le fichier {{{ public/assembler }}}, qui avait d'ailleurs pas mal de redondances de code. Ca semble fonctionner partout malgré ce papillon déclenchant un cyclone.
C'est très embetant cela : #INCLURE et <INCLURE> *doivent* renvoyer le meme résultat quels que soient leurs parametes, et dans tous les cas, seule la mise en cache étant différente.
Je crois que le passage auto de la lang avait été ajouté par fil, je ne saurais pas argumenter pourquoi.
En revanche, ce dont je suis sur, c'est qu'on le passe partout ou nulle part, et qu'il faut garder l'identité entre #INCLURE et <INCLURE>
Log:
Une subtilité linguistique dans la balise #INCLURE et conséquences.
Le problème de la langue des RSS privés de [12515] repose en définitive sur l'impossibilité d'utiliser le critère conditionnel {{{ {lang ?} }}} dans un squelette inclus car SPIP rajoute d'office ce paramètre dans le contexte. Ca peut se justifier pour la construction {{{ <INCLURE ...> }}} mais pas pour la balise {{{#INCLURE}}} qui est censé exécuté le squelette inclus dans le même environnement que le squelette incluant. En conséquence, cette balise n'inclut plus d'office la langue dans le contexte. Ce changement devrait être le plus souvent transparent (car la langue est souvent déjà dans le contexte et le problème ne se pose pas), mais si l'on veut se protéger de toutes mauvaises surprises il suffit de rajouter {{{ {lang} }}} après chacun des {{{ #INCLURE }}} comme cela est fait ici.
Cette spécification d'office de la langue étant faite très profondément dans le code, obligation de revoir toute le fichier {{{ public/assembler }}}, qui avait d'ailleurs pas mal de redondances de code. Ca semble fonctionner partout malgré ce papillon déclenchant un cyclone.