[spip-dev] Espace ajouté dans une expression

Bonjour,

J’ai un espace ajouté par SPIP avant le “?” dans cette expression :
#URL_MOT[(#GET{filtreRubrique}|!={all}|oui)?id_rubrique=#GET{id_rubrique}]

Pas mieux avec cette notation :
[(#URL_MOT)[(#GET{filtreRubrique}|!={all}|oui)?id_rubrique=#GET{id_rubrique}]]

N’est-ce pas un bug ?

Avez-vous une idée de contournement ?

Merci.

-Nicolas

Salut,

Bonjour,

J'ai un espace ajouté par SPIP avant le "?" dans cette expression :
#URL_MOT[(#GET{filtreRubrique}|!={all}|oui)?id_rubrique=#GET{id_rubrique}]

Pas mieux avec cette notation :
[(#URL_MOT)[(#GET{filtreRubrique}|!={all}|oui)?id_rubrique=#GET{id_rubrique}]]

N'est-ce pas un bug ?

Non c'est le fonctionnement de |oui qui génère l'espace.

Avez-vous une idée de contournement ?

Oui

#URL_MOT[?id_rubrique=#GET{id_rubrique}(#GET{truc}|!={all}|oui)]

Oui avec le filtre ? plutôt que oui :
ça donne #URL_MOT[(#GET{filtreRubrique}|!={all}|?{?id_rubrique=#GET{id_rubrique},''})]
ou #URL_MOT[(#GET{filtreRubrique}|!={all}|?{?id_rubrique=#GET{id_rubrique},})] je sais plus...

Et ya aussi le filtre parametre_url qui mérite d'être utilisé parfois.

JLuc

2010/12/21 Bruno Bergot <brunobergot@gmail.com>

Salut,

Bonjour,

J’ai un espace ajouté par SPIP avant le « ? » dans cette expression :
#URL_MOT[(#GET{filtreRubrique}|!={all}|oui)?id_rubrique=#GET{id_rubrique}]

Pas mieux avec cette notation :
[(#URL_MOT)[(#GET{filtreRubrique}|!={all}|oui)?id_rubrique=#GET{id_rubrique}]]

N’est-ce pas un bug ?

Non c’est le fonctionnement de |oui qui génère l’espace.

Et ce n’est pas un bug, ça ?

Avez-vous une idée de contournement ?

Oui

#URL_MOT[?id_rubrique=#GET{id_rubrique}(#GET{truc}|!={all}|oui)]

Pas con, mais je me retrouve avec un espace avant le " fermant le href, pas terrible non plus…

-Nicolas

C'est même obligé pour être propre, car on peut très bien imaginer que #URL_MOT ne renvoie pas une URL de type "propre", c'est-à-dire avec déjà une query, par exemple : machin.com/spip.php?mot43

Donc il faut plutôt faire :

#SET{url_mot, #URL_MOT}
[(#GET{filtreRubrique}|!={all}|oui)
   [(#SET{url_mot, [(#GET{url_mot}|parametre_url{id_rubrique, #GET{id_rubrique}})]})]
]

Hello,

Je ne sais pas si ça a un rapport mais sur un site spip 2.1.2 dont je
m'occupe spip ajoute systématiquement un espace avant les signes de
ponctuation dans les titres des articles. par exemple : "Et voilà le
titre!" s'affiche "Et voilà le titre !". Comment faire pour que cet
espace ne s'affiche pas ?

audrey

Sinon utiliser l’ancien |?
C’est ce que je fais lorsque |oui n’est pas utilisable (à cause de cet espace).
dans ce cas :
#URL_MOT[(#GET{truc}|!={all}|?{?id_rubrique=#GET{id_rubrique}})]

Aucun rapport non.

Mais c'est normal : ce sont les règles de typographies françaises. Si l'article est en langue française ça utilise ces règles.

Si tu veux le contenu brut, il faut ajouter une étoile dans ton squelette : #TITRE*

Re,

bonjour,
je préconiserai l’utilisation du filtre |parametre_url pour éviter les problèmes entre ? et & selon le contexte,
[(#TITRE)]

Nicolas Hoizey a écrit :

2010/12/21 Bruno Bergot <brunobergot@gmail.com>

Re,

N’est-ce pas un bug ?

Non c’est le fonctionnement de |oui qui génère l’espace.

Et ce n’est pas un bug, ça ?

Non c’est une spécificité documentée.
http://www.spip.net/fr_article4615.html#oui

Le comportement était le même lorsqu’on utilisait : |?{’ ‹ , ›'}

Le pire est que c’est logique. Oups.

-Nicolas

2010/12/21 RastaPopoulos <rastapopoulos@spip.org>

Et ya aussi le filtre parametre_url qui mérite d’être utilisé parfois.

C’est même obligé pour être propre, car on peut très bien imaginer que #URL_MOT ne renvoie pas une URL de type « propre », c’est-à-dire avec déjà une query, par exemple : machin.com/spip.php?mot43

Je maîtrise mes URL, je n’ai pas ce problème, mais je vais être « future proof » en utilisant plutôt cette syntaxe…

Donc il faut plutôt faire :

#SET{url_mot, #URL_MOT}
[(#GET{filtreRubrique}|!={all}|oui)
[(#SET{url_mot, [(#GET{url_mot}|parametre_url{id_rubrique, #GET{id_rubrique}})]})]
]

C’est en gros ce que j’avais finalement fait pour éviter l’espace surnuméraire, sans le filtre « |parametre_url ».

-Nicolas