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
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.
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)
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>
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>