Nouveau critère IN en 1.9

Bonjour,

Je reviens à Spip après une absence suffisamment longue pour n'avoir pas encore expérimenté les nouveautés de la 1.9. Je souhaite confirmation que j'ai bien compris le nouveau fonctionnement du critère IN.
Dans un site réalisé avec SPIP 1.8.2 d, j'avais créé un critère (nommé inumero) qui supprimait les ' insérées à l'interprétation de la boucle.

Par exemple, si #DESCRIPTIF contient 5,2,3 :
<BOUCLE_themeCourant (ARTICLES) {id_article IN #DESCRIPTIF}>
était interprétée comme :
<BOUCLE_themeCourant (ARTICLES) {id_article IN '5,2,3'}>
alors qu'il aurait fallu :
<BOUCLE_themeCourant (ARTICLES) {id_article IN 5,2,3}>

D'où la boucle accompagnée du critère "maison" :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF} {inumero}>

En 1.9, je comprends qu'on peut directement écrire :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF**}>

Ai-je bien compris le principe de la chose ?
(à la lecture de la documentation http://www.spip.net/fr_article900.html, ce n'est pas tout à fait clair pour moi)
Merci d'avance

Pascale

Pascale wrote:

Par exemple, si #DESCRIPTIF contient 5,2,3 :
<BOUCLE_themeCourant (ARTICLES) {id_article IN #DESCRIPTIF}>
était interprétée comme :
<BOUCLE_themeCourant (ARTICLES) {id_article IN '5,2,3'}>
alors qu'il aurait fallu :
<BOUCLE_themeCourant (ARTICLES) {id_article IN 5,2,3}>

Je suppose que c'est parce que #DESCRIPTIF est censé être du texte et non pas un chiffre.

Déjà avec 1.8.x je n'avais pas de problème avec d'une part:

<BOUCLE_fontsize(RUBRIQUES){lang IN ar,ja,zh}>

et de l'autre :

<BOUCLE_seealso(ARTICLES){id_mot}{id_secteur IN #ID_SECTEUR, 586}>

En 1.9, je comprends qu'on peut directement écrire :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF**}>

Ai-je bien compris le principe de la chose ?

Je ne pense pas : "SPIP testera si l’argument de ENV désigne un tableau ... *Si c’est le cas*, et si les filtres d’analyse ont été désactivés".

Ceci dit, je ne l'ai jamais essayé moi-même. Donc essaie ! Et dis-nous ; cela pourrait être utile.

Paolo

Le 15 juin 07 à 10:04, Paolo a écrit :

Pascale wrote:

Par exemple, si #DESCRIPTIF contient 5,2,3 :
<BOUCLE_themeCourant (ARTICLES) {id_article IN #DESCRIPTIF}>
était interprétée comme :
<BOUCLE_themeCourant (ARTICLES) {id_article IN '5,2,3'}>
alors qu'il aurait fallu :
<BOUCLE_themeCourant (ARTICLES) {id_article IN 5,2,3}>

Je suppose que c'est parce que #DESCRIPTIF est censé être du texte et non pas un chiffre.

Déjà avec 1.8.x je n'avais pas de problème avec d'une part:

<BOUCLE_fontsize(RUBRIQUES){lang IN ar,ja,zh}>

et de l'autre :

<BOUCLE_seealso(ARTICLES){id_mot}{id_secteur IN #ID_SECTEUR, 586}>

En 1.9, je comprends qu'on peut directement écrire :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF**}>
Ai-je bien compris le principe de la chose ?

Je ne pense pas : "SPIP testera si l’argument de ENV désigne un tableau ... *Si c’est le cas*, et si les filtres d’analyse ont été désactivés".

Ceci dit, je ne l'ai jamais essayé moi-même. Donc essaie ! Et dis-nous ; cela pourrait être utile.

Je dois d'abord faire le passage de 1.8 à 1.9, pour l'instant j'essaie de déminer les soucis que je pourrais rencontrer et estimer le temps que tout ça va prendre.
Mais promis, je donnerai le résultat !
Pascale

Ci-dessous, le champ #DESCRIPTIF contient 5,2,3 (par exemple)

Je n'obtiens pas le résultat escompté avec la syntaxe :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF**}>
aucun affichage…

Je souhaite obtenir l'équivalent de :
<BOUCLE_sousComposants (ARTICLES) {id_article IN 5,2,3}>

Je ne comprends donc pas l'usage de **
Je ne comprends pas non plus ce que signifie "tableau" dans la documentation relative à IN
(http://www.spip.net/fr_article900.html)

J'accepte avec plaisir un éclairage…

Pascale

Je n'obtiens pas le résultat escompté avec la syntaxe :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF**}>
aucun affichage…

Je souhaite obtenir l'équivalent de :
<BOUCLE_sousComposants (ARTICLES) {id_article IN 5,2,3}>

Il doit être possible de faire
[(#SET{toto,[(#REM|sinon{','}|explode{#DESCRIPTIF})]})]
<BOUCLE_t(ARTICLES){id_article IN #GET**{toto}}>
#ID_ARTICLE
</BOUCLE_t>

Je ne comprends donc pas l'usage de **
Je ne comprends pas non plus ce que signifie "tableau" dans la
documentation relative à IN
(Les critères communs à toutes les boucles - SPIP)

C'est quand tu passes plusieurs valeurs dans l'URL (via, par exemple,
un select multiple) :
?page=truc&toto=2&toto=4&toto=8

Et ensuite {id_article IN #ENV**{toto}}

Je t'accorde que c'est horriblement compliqué (et à revoir)...

-- Fil

Cela fonctionne bien et je ne l'aurais pas trouvé sans cette aide. Merci beaucoup!
Pascale

Le 15 juin 07 à 21:06, Fil a écrit :

Je n'obtiens pas le résultat escompté avec la syntaxe :
<BOUCLE_sousComposants (ARTICLES) {id_article IN #DESCRIPTIF**}>
aucun affichage…

Je souhaite obtenir l'équivalent de :
<BOUCLE_sousComposants (ARTICLES) {id_article IN 5,2,3}>

Il doit être possible de faire
[(#SET{toto,[(#REM|sinon{','}|explode{#DESCRIPTIF})]})]
<BOUCLE_t(ARTICLES){id_article IN #GET**{toto}}>
#ID_ARTICLE
</BOUCLE_t>

Je ne comprends donc pas l'usage de **
Je ne comprends pas non plus ce que signifie "tableau" dans la
documentation relative à IN
(Les critères communs à toutes les boucles - SPIP)

C'est quand tu passes plusieurs valeurs dans l'URL (via, par exemple,
un select multiple) :
?page=truc&toto=2&toto=4&toto=8

Et ensuite {id_article IN #ENV**{toto}}

Je t'accorde que c'est horriblement compliqué (et à revoir)...

-- Fil