[spip-dev] Autoriser {id_article="3"}

Je suis en train de créer les gabarits d'un site SPIP en utilisant WML
<URL:http://thewml.org/>. J'ai un problème lors de l'expansion: WML
insiste pour être "propre", et rajoute des guillemets autour de ce
qu'il pense être des attributs HTML.

Par exemple, si je demande à expanser:

<BOUCLE_article%0(ARTICLES){id_rubrique=%0}{par date}>
  <li>#TITRE</li>
</BOUCLE_article%0>

avec %0 qui vaut 1, j'obtiens:

<BOUCLE_article1(ARTICLES){id_rubrique="1}par" date>
  <li>#TITRE</li>
</BOUCLE_article1>

ce qui ne m'arrange pas.

J'ai donc opté pour:

<BOUCLE_article%0(ARTICLES){id_rubrique="%0"}{par date}>
  <li>#TITRE</li>
</BOUCLE_article%0>

en mettant des guillemets explicites autour de mon %0, ce qui
s'expanse en:

<BOUCLE_article1(ARTICLES){id_rubrique="1"}{par date}>
  <li>#TITRE</li>
</BOUCLE_article1>

Malheureusement, SPIP n'aime pas les guillemets et doit les restituer
au SQL.

Est-ce un problème d'autoriser les guillemets pour SPIP? J'ai essayé
sur un site que je maintiens, et tout semble fonctionner correctement
(en plus de mon exemple WML). Patch joint.

  Sam

PATCH.guillemets (935 Bytes)

Par exemple, si je demande à expanser:

<BOUCLE_article%0(ARTICLES){id_rubrique=%0}{par date}>
  <li>#TITRE</li>
</BOUCLE_article%0>

avec %0 qui vaut 1, j'obtiens:

<BOUCLE_article1(ARTICLES){id_rubrique="1}par" date>
  <li>#TITRE</li>
</BOUCLE_article1>

ce qui ne m'arrange pas.

As-tu pensé à mettre des espaces entre les différents critères ?
<BOUCLE_article%0(ARTICLES) {id_rubrique=%0} {par date}>

J'ai donc opté pour:

<BOUCLE_article%0(ARTICLES){id_rubrique="%0"}{par date}>
  <li>#TITRE</li>
</BOUCLE_article%0>

en mettant des guillemets explicites autour de mon %0, ce qui
s'expanse en:

<BOUCLE_article1(ARTICLES){id_rubrique="1"}{par date}>
  <li>#TITRE</li>
</BOUCLE_article1>

Malheureusement, SPIP n'aime pas les guillemets et doit les restituer
au SQL.

Est-ce un problème d'autoriser les guillemets pour SPIP? J'ai essayé
sur un site que je maintiens, et tout semble fonctionner correctement
(en plus de mon exemple WML). Patch joint.

Non, a priori ça ne doit pas poser de problème. On perd sûrement le bénéfice
de l'index MySQL, mais bon... Il faut peut-être autoriser " et ', non ?

-- Fil

Le patch était incomplet et ne fonctionnait pas tel quel. Voici une
version qui fonctionne et, à mon avis, corrige un bug (le séparateur,
me semble-t'il, pouvait être donné de la forme: {sdfjskdfj", "dsfsdf},
et pas uniquement {", "}.

  Sam

PATCH.guillemets (1.01 KB)

As-tu pensé à mettre des espaces entre les différents critères ?
<BOUCLE_article%0(ARTICLES) {id_rubrique=%0} {par date}>

Il le rajoutera ainsi:
  {id_rubrique="%0}"
car cela lui semble mieux formé (ce qui est logique).

> Est-ce un problème d'autoriser les guillemets pour SPIP? J'ai essayé
> sur un site que je maintiens, et tout semble fonctionner correctement
> (en plus de mon exemple WML). Patch joint.

Non, a priori ça ne doit pas poser de problème. On perd sûrement le bénéfice
de l'index MySQL, mais bon... Il faut peut-être autoriser " et ', non ?

Quels bénéfices de l'index MySQL? Modifier la regexp le laisse sous forme
d'entier ensuite dans SPIP, ce n'est qu'au niveau du parsing qu'on accepte
les guillemets.

  Sam

Quels bénéfices de l'index MySQL? Modifier la regexp le laisse sous forme
d'entier ensuite dans SPIP, ce n'est qu'au niveau du parsing qu'on accepte
les guillemets.

Oui, je viens de réaliser ça. Commits à suivre...

-- Fil