Erreur de syntaxe ?

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par #ENV, comme ceci :

[(#FICHIER|image_sepia] fonctionne correctement alors que

[(#FICHIER|[(#ENV{filtre})])] donne une erreur de syntaxe : "#ENV n'est pas définit comme filtre"

même si [(#ENV{filtre})] seul affiche image_sepia.

S'agit-il d'une erreur de syntaxe ou n'y a t-il pas moyen de passer un filtre comme paramètre ?

Merci pour vos réponses,
Nicolas

Le Sun, 25 Oct 2009 23:54:35 +0100, xp a écrit :

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par
#ENV,

Bonjour,

Je suis intéressé également par cette question, moi c'est un critère dans
une boucle que j'avais eu l'idée de traiter de cette manière... je penche
pour l'impossibilité syntaxique...

Stanislas

xp a écrit :

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par #ENV, comme ceci :

[(#FICHIER|image_sepia] fonctionne correctement alors que

[(#FICHIER|[(#ENV{filtre})])] donne une erreur de syntaxe : "#ENV n'est pas définit comme filtre"

même si [(#ENV{filtre})] seul affiche image_sepia.

S'agit-il d'une erreur de syntaxe ou n'y a t-il pas moyen de passer un filtre comme paramètre ?

Merci pour vos réponses,
Nicolas

tu as essayé avec le double pipe ?
[(#FICHIER||[(#ENV{filtre})])]
et sans les crochets et parenthèses ?
[(#FICHIER||#ENV{filtre})]

il est possible que j'ai oublié une possibilité, mais je pense avoir tout essayé :wink:

Le 26 oct. 09 à 09:15, Jean-Christophe Villeneuve a écrit :

xp a écrit :

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par #ENV, comme ceci :

[(#FICHIER|image_sepia] fonctionne correctement alors que

[(#FICHIER|[(#ENV{filtre})])] donne une erreur de syntaxe : "#ENV n'est pas définit comme filtre"

même si [(#ENV{filtre})] seul affiche image_sepia.

S'agit-il d'une erreur de syntaxe ou n'y a t-il pas moyen de passer un filtre comme paramètre ?

Merci pour vos réponses,
Nicolas

tu as essayé avec le double pipe ?
[(#FICHIER||[(#ENV{filtre})])]
et sans les crochets et parenthèses ?
[(#FICHIER||#ENV{filtre})]

Bonjour,

vu le fonctionnement de la séquence de compilation, ça ne peut pas marcher (il faudrait appeler une deuxième fois l'exécution après que #ENV{filtre} ait affiché le bon nom de fonction, spip ne gère pas l'interpolation de code).

La solution est :

[(#ENV{filtre} |=={image_sepia} |?{#FICHIER|image_sepia})]

Jean-Christophe Villeneuve a écrit :

xp a écrit :

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par #ENV, comme ceci :

[(#FICHIER|image_sepia] fonctionne correctement alors que

[(#FICHIER|[(#ENV{filtre})])] donne une erreur de syntaxe : "#ENV n'est pas définit comme filtre"

même si [(#ENV{filtre})] seul affiche image_sepia.

S'agit-il d'une erreur de syntaxe ou n'y a t-il pas moyen de passer un filtre comme paramètre ?

Merci pour vos réponses,
Nicolas

tu as essayé avec le double pipe ?
[(#FICHIER||[(#ENV{filtre})])]
et sans les crochets et parenthèses ?
[(#FICHIER||#ENV{filtre})]

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Merci beaucoup, c'est une solution qui me débloque la situation, en attendant une évolution de la syntaxe de SPIP !

Le 26 oct. 09 à 09:30, Simon Camerlo a écrit :

Bonjour,

vu le fonctionnement de la séquence de compilation, ça ne peut pas marcher (il faudrait appeler une deuxième fois l'exécution après que #ENV{filtre} ait affiché le bon nom de fonction, spip ne gère pas l'interpolation de code).

La solution est :

[(#ENV{filtre} |=={image_sepia} |?{#FICHIER|image_sepia})]

Jean-Christophe Villeneuve a écrit :

xp a écrit :

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par #ENV, comme ceci :

[(#FICHIER|image_sepia] fonctionne correctement alors que

[(#FICHIER|[(#ENV{filtre})])] donne une erreur de syntaxe : "#ENV n'est pas définit comme filtre"

même si [(#ENV{filtre})] seul affiche image_sepia.

S'agit-il d'une erreur de syntaxe ou n'y a t-il pas moyen de passer un filtre comme paramètre ?

Merci pour vos réponses,
Nicolas

tu as essayé avec le double pipe ?
[(#FICHIER||[(#ENV{filtre})])]
et sans les crochets et parenthèses ?
[(#FICHIER||#ENV{filtre})]

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

A mon avis, vu la structure interne de spip, il ne faut pas s'attendre à ce que ta proposition fonctionne un jour.
Ou alors j'en serais le premier étonné :slight_smile:

La seule chose que je vois possible serait de créer un filtre |appelle_filtre{nom_filtre} qui appellerait les fonctions correctes au moyen d'un eval en php, ça permettrait d'obtenir ce que tu veux faire à moindre coût.

A bientôt
    Simon

xp a écrit :

Merci beaucoup, c'est une solution qui me débloque la situation, en attendant une évolution de la syntaxe de SPIP !

Le 26 oct. 09 à 09:30, Simon Camerlo a écrit :

Bonjour,

vu le fonctionnement de la séquence de compilation, ça ne peut pas marcher (il faudrait appeler une deuxième fois l'exécution après que #ENV{filtre} ait affiché le bon nom de fonction, spip ne gère pas l'interpolation de code).

La solution est :

[(#ENV{filtre} |=={image_sepia} |?{#FICHIER|image_sepia})]

Jean-Christophe Villeneuve a écrit :

xp a écrit :

Bonjour,
je bloque sur une affaire de syntaxe :

Je cherche à filtrer une image en fonction d'un paramètre passé par #ENV, comme ceci :

[(#FICHIER|image_sepia] fonctionne correctement alors que

[(#FICHIER|[(#ENV{filtre})])] donne une erreur de syntaxe : "#ENV n'est pas définit comme filtre"

même si [(#ENV{filtre})] seul affiche image_sepia.

S'agit-il d'une erreur de syntaxe ou n'y a t-il pas moyen de passer un filtre comme paramètre ?

Merci pour vos réponses,
Nicolas

tu as essayé avec le double pipe ?
[(#FICHIER||[(#ENV{filtre})])]
et sans les crochets et parenthèses ?
[(#FICHIER||#ENV{filtre})]

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc