[spip-dev] remettre des virgules

Bonjour,

Avec SPIP 2.x j'utilise des URLs qui contiennent des paramètres lang comme :
?lang=de,fr

qui peuvent ensuite être traités par des critères :
{lang IN (#ENV{lang}|explode{','})}

Avec SPIP 3 cela ne marche plus.
#ENV{lang}, au lieu de rendre "de,fr" (SPIP 2.x), rend "de fr" (SPIP 3).

Alors j'utilise ceci pour contourner le problème :
{lang IN (#ENV{lang}|replace{" ",","}|explode{','})}

Est-ce un bug, ou est-ce que cela doit être comme ça en SPIP 3 ?

merci, Paolo

Bonjour,

Hello paolo...

Avec SPIP 2.x j'utilise des URLs qui contiennent des paramètres lang comme :
?lang=de,fr

qui peuvent ensuite être traités par des critères :
{lang IN (#ENV{lang}|explode{','})}

Avec SPIP 3 cela ne marche plus.
#ENV{lang}, au lieu de rendre "de,fr" (SPIP 2.x), rend "de fr" (SPIP 3).

Alors j'utilise ceci pour contourner le problème :
{lang IN (#ENV{lang}|replace{" ",","}|explode{','})}

Est-ce un bug, ou est-ce que cela doit être comme ça en SPIP 3 ?

Je ne sais si c'est un bug et ne pourrais te le dire mais :

si tu passes dans ton url ?lang=de&lang=fr

cela devrait marcher sans ton explode normalement non?

Le problème vient de

http://zone.spip.org/trac/spip-zone/changeset/58105/core/securite/ecran_securite.php
Une langue n'est supposée avoir que des caractères licites pour un mot (sécurité)
Il faut que tu utilise un autre nom de variable si tu veux garder des ","

Cédric

OK, merci !
Paolo

Une langue n'est supposée avoir que des caractères licites pour un mot
(sécurité)
Il faut que tu utilise un autre nom de variable si tu veux garder des ","

Ou alors si la virgule correspond à un usage "légitime", il faudrait
peut-être qu'on l'autorise ?

-- Fil

C'est sûr que cela sera preferable pour moi, car je n'ai pas de sécurité que mon contournement ( |replace{" ",","} ) va marcher de façon perenne.

Et depuis des années des sites ailleurs utilisent le javascript qui (selon le mode d'emploi que j'ai fourni) peut contenir des virgules :

Utiliser une ligne de script pour afficher la lecture du jour de Taizé sur votre site.
<script type="text/javascript" src="http://www.taize.fr/tz_readings.php?lang=fr"></script>

Changer le code de la langue pour afficher la lecture avec la (ou les) langue(s) souhaitée(s).
Par exemple,
   src="http://www.taize.fr/tz_readings.php?lang=es" — lecture en espagnol
   src="http://www.taize.fr/tz_readings.php?lang=fr,en,es" — pour les lectures en francais, anglais et espagnol, etc.

- - -

Vois-tu comment « autoriser », sans enlever la sécurité ?

Paolo