code alternatif dans une boucle

Bonjour à tous

Je suis nouveau sur Spip et la question que je me pose est certainement récurrente, mais je ne trouve pas la solution, malgré mes recherches.

J’aimerais afficher sur une page rubrique, un article qui serait défini par un mot clef « premier_article ».

S’il n’y a qu’un article, afficher cet article.

Autrement, afficher la liste des articles.

Enfin, s’il n’y a pas d’articles, afficher la liste des sous rubriques.

Voila ce que j’ai fait, mais ça ne marche pas dans tous les cas :

<B_artprinc>

<BOUCLE_artprinc(ARTICLES) {id_rubrique}{0,1}>

<B_mot_clef>

<BOUCLE_mot_clef(ARTICLES){titre_mot=premier_article}{id_article}>

#TITRE

[

(#CHAPO)
]

[

(#TEXTE|image_reduire{520,0})
]

[

<:voir_en_ligne:> : [(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]

]

[

<:info_ps:>

#DEBUT_SURLIGNE
(#PS)
#FIN_SURLIGNE
]

</BOUCLE_mot_clef>

</B_mot_clef>


Il n'y a pas d'article principal

<//B_mot_clef>

</BOUCLE_artprinc>

</B_artprinc>

<INCLURE{fond=inc-miniplan}{id_secteur} {id_rubrique} {id_article}>


<//B_artprinc>

Si ce n’est pas le premier article qui contient le mot clef, alors il ne le trouve pas et si je ne limite pas la boucle artprinc, alors il m’affiche plusieurs fois « il n’y a pas d’articles ». j’ai l’impression que la boucle mot_clef se limite à un tour…

Merci d’avance pour votre aide

Avec le critère {0,1} sur la boucle mot_clef au lieu de artprinc, spip
m'affiche "il n'y a pas d'articles" x le nombre d'articles, plus le contenu
de l'article souhaité. C'est pour cela que je l'avais limité sur la boucle
mot_clef.
Je crois, au contraire qu'il faut étendre la boucle mot_clef à tous, mais je
ne sais pas comment.

________________________________________
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net]
Envoyé : mardi 16 octobre 2007 16:53
À : JLPNopub
Objet : Re: [Spip] code alternatif dans une boucle

JLPNopub a écrit :
Bonjour à tous
Je suis nouveau sur Spip et la question que je me pose est certainement
récurrente, mais je ne trouve pas la solution, malgré mes recherches.
J’aimerais afficher sur une page rubrique, un article qui serait défini par
un mot clef « premier_article ».
S’il n’y a qu’un article, afficher cet article.
Autrement, afficher la liste des articles.
Enfin, s’il n’y a pas d’articles, afficher la liste des sous rubriques.

Voila ce que j’ai fait, mais ça ne marche pas dans tous les cas :

<B_artprinc>
<BOUCLE_artprinc(ARTICLES) {id_rubrique}{0,1}>
<B_mot_clef>

<BOUCLE_mot_clef(ARTICLES){titre_mot=premier_article}{id_article}>
<h1 class="#EDIT{titre}
titre">#TITRE</h1>
[<div class="#EDIT{chapo}
chapo">(#CHAPO)</div>]
[<div class="#EDIT{texte}
texte">(#TEXTE|image_reduire{520,0})</div>]
[<p class="#EDIT{hyperlien}
lien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">
[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
[<div
class="ps"><h2><:info_ps:></h2>#DEBUT_SURLIGNE<div
class="#EDIT{ps}">(#PS)</div>#FIN_SURLIGNE</div>]
</BOUCLE_mot_clef>
</B_mot_clef>
<hr>
<h2>Il n'y a pas d'article principal</h2>
<//B_mot_clef>
</BOUCLE_artprinc>
</B_artprinc>
<!--Affichage en cas d'absence de premier
article-->
<INCLURE{fond=inc-miniplan}{id_secteur}
{id_rubrique} {id_article}>
<hr>
<!--Fin d'Affichage en cas d'absence de
premier article-->
<//B_artprinc>

Si ce n’est pas le premier article qui contient le mot clef, alors il ne le
trouve pas et si je ne limite pas la boucle artprinc, alors il m’affiche
plusieurs fois « il n’y a pas d’articles ». j’ai l’impression que la boucle
mot_clef se limite à un tour..

Merci d’avance pour votre aide

________________________________________
essaye de mettre le critère {0,1} sur ta boucle mot_clef et pas sur la
boucle artprinc

JLPNopub <jlpnopub@free.fr> wrote:

Bonjour à tous

Bonjour

Je suis nouveau sur Spip et la question que je me pose est certainement
récurrente, mais je ne trouve pas la solution, malgré mes recherches.

On est tous passé par là...

J'aimerais afficher sur une page rubrique, un article qui serait défini par
un mot clef « premier_article ».
S'il n'y a qu'un article, afficher cet article.
Autrement, afficher la liste des articles.
Enfin, s'il n'y a pas d'articles, afficher la liste des sous rubriques.

je pense que le principe des boucles se présente comme tu l'énonces

<BOUCLE1 (ARTICLES) {titre_mot=premier_article}{id_rubrique}>
        #TITRE #TEXTE (pour le premier article)
</BOUCLE1>
        <BOUCLE2 (ARTICLES) {id_rubrique}>
                #TITRE (des articles de la rubrique)
        </BOUCLE2>
                <BOUCLE3 (RUBRIQUES){id_parent}>
                        #TITRE (des sous rubriques)
                </BOUCLE3>
        <//B2>
<//B1>

Un conseil : faire des tests dans trop s'ennuyer avec la présentation,
déjà regler le fait que ton squelette fonctionnne.

--
Dominique
http://wojylac.free.fr

JLPNopub a écrit :

Avec le critère {0,1} sur la boucle mot_clef au lieu de artprinc, spip
m'affiche "il n'y a pas d'articles" x le nombre d'articles, plus le contenu
de l'article souhaité. C'est pour cela que je l'avais limité sur la boucle
mot_clef.
Je crois, au contraire qu'il faut étendre la boucle mot_clef à tous, mais je
ne sais pas comment.

________________________________________
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net] Envoyé : mardi 16 octobre 2007 16:53
À : JLPNopub
Objet : Re: [Spip] code alternatif dans une boucle

JLPNopub a écrit : Bonjour à tous
Je suis nouveau sur Spip et la question que je me pose est certainement
récurrente, mais je ne trouve pas la solution, malgré mes recherches.
J’aimerais afficher sur une page rubrique, un article qui serait défini par
un mot clef « premier_article ».
S’il n’y a qu’un article, afficher cet article.
Autrement, afficher la liste des articles.
Enfin, s’il n’y a pas d’articles, afficher la liste des sous rubriques.
Voila ce que j’ai fait, mais ça ne marche pas dans tous les cas :
<B_artprinc>
            <BOUCLE_artprinc(ARTICLES) {id_rubrique}{0,1}>
                        <B_mot_clef>
                                  <BOUCLE_mot_clef(ARTICLES){titre_mot=premier_article}{id_article}>
                                               <h1 class="#EDIT{titre}
titre">#TITRE</h1>
                                               [<div class="#EDIT{chapo}
chapo">(#CHAPO)</div>]
                                               [<div class="#EDIT{texte}
texte">(#TEXTE|image_reduire{520,0})</div>]
                                               [<p class="#EDIT{hyperlien}
lien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out"> [(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
                                               [<div
class="ps"><h2><:info_ps:></h2>#DEBUT_SURLIGNE<div
class="#EDIT{ps}">(#PS)</div>#FIN_SURLIGNE</div>]
                                   </BOUCLE_mot_clef>
                        </B_mot_clef>
                        <hr>
<h2>Il n'y a pas d'article principal</h2>
                        <//B_mot_clef>
            </BOUCLE_artprinc>
</B_artprinc>
                                   <!--Affichage en cas d'absence de premier
article-->
                                   <INCLURE{fond=inc-miniplan}{id_secteur}
{id_rubrique} {id_article}>
                                   <hr>
                                   <!--Fin d'Affichage en cas d'absence de
premier article-->
<//B_artprinc>
Si ce n’est pas le premier article qui contient le mot clef, alors il ne le
trouve pas et si je ne limite pas la boucle artprinc, alors il m’affiche
plusieurs fois « il n’y a pas d’articles ». j’ai l’impression que la boucle
mot_clef se limite à un tour..

Merci d’avance pour votre aide

Bizarre. Et si tu vires le filtre

{titre_mot=premier_article}

car en fait s'il n'y a qu'un article, il le met, point. A quoi sert ce mot-clé ?

Ce mot clef sert lorsqu'il y a plusieurs articles. Celui qui aura le mot
clef sera celui qui sera affiché. En supprimant le critère, ilm'affiche le
contenu de tous les articles de la rubrique.
Il y a une contrib qui parle de ça, mais qui modifie beaucoup de choses
parce qu'il ne voulait pas utiliser les mots clef:

-----Message d'origine-----
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net]
Envoyé : mardi 16 octobre 2007 17:30
À : JLPNopub
Cc : spip@rezo.net
Objet : Re: [Spip] code alternatif dans une boucle

JLPNopub a écrit :

Avec le critère {0,1} sur la boucle mot_clef au lieu de artprinc, spip
m'affiche "il n'y a pas d'articles" x le nombre d'articles, plus le

contenu

de l'article souhaité. C'est pour cela que je l'avais limité sur la boucle
mot_clef.
Je crois, au contraire qu'il faut étendre la boucle mot_clef à tous, mais

je

ne sais pas comment.

________________________________________
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net]
Envoyé : mardi 16 octobre 2007 16:53
À : JLPNopub
Objet : Re: [Spip] code alternatif dans une boucle

JLPNopub a écrit :
Bonjour à tous
Je suis nouveau sur Spip et la question que je me pose est certainement
récurrente, mais je ne trouve pas la solution, malgré mes recherches.
J’aimerais afficher sur une page rubrique, un article qui serait défini

par

un mot clef « premier_article ».
S’il n’y a qu’un article, afficher cet article.
Autrement, afficher la liste des articles.
Enfin, s’il n’y a pas d’articles, afficher la liste des sous rubriques.

Voila ce que j’ai fait, mais ça ne marche pas dans tous les cas :

<B_artprinc>
            <BOUCLE_artprinc(ARTICLES) {id_rubrique}{0,1}>
                        <B_mot_clef>
                                  
<BOUCLE_mot_clef(ARTICLES){titre_mot=premier_article}{id_article}>
                                               <h1 class="#EDIT{titre}
titre">#TITRE</h1>
                                               [<div class="#EDIT{chapo}
chapo">(#CHAPO)</div>]
                                               [<div class="#EDIT{texte}
texte">(#TEXTE|image_reduire{520,0})</div>]
                                               [<p class="#EDIT{hyperlien}
lien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">

[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
                                               [<div
class="ps"><h2><:info_ps:></h2>#DEBUT_SURLIGNE<div
class="#EDIT{ps}">(#PS)</div>#FIN_SURLIGNE</div>]
                                   </BOUCLE_mot_clef>
                        </B_mot_clef>
                        <hr>
<h2>Il n'y a pas d'article principal</h2>
                        <//B_mot_clef>
            </BOUCLE_artprinc>
</B_artprinc>
                                   <!--Affichage en cas d'absence de

premier

article-->
                                   <INCLURE{fond=inc-miniplan}{id_secteur}
{id_rubrique} {id_article}>
                                   <hr>
                                   <!--Fin d'Affichage en cas d'absence de
premier article-->
<//B_artprinc>

Si ce n’est pas le premier article qui contient le mot clef, alors il ne

le

trouve pas et si je ne limite pas la boucle artprinc, alors il m’affiche
plusieurs fois « il n’y a pas d’articles ». j’ai l’impression que la

boucle

mot_clef se limite à un tour..

Merci d’avance pour votre aide

Bizarre. Et si tu vires le filtre

{titre_mot=premier_article}

car en fait s'il n'y a qu'un article, il le met, point. A quoi sert ce
mot-clé ?

Jean-Christophe Villeneuve a écrit :

JLPNopub a écrit :

Avec le critère {0,1} sur la boucle mot_clef au lieu de artprinc, spip
m'affiche "il n'y a pas d'articles" x le nombre d'articles, plus le contenu
de l'article souhaité. C'est pour cela que je l'avais limité sur la boucle
mot_clef.
Je crois, au contraire qu'il faut étendre la boucle mot_clef à tous, mais je
ne sais pas comment.

________________________________________
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net] Envoyé : mardi 16 octobre 2007 16:53
À : JLPNopub
Objet : Re: [Spip] code alternatif dans une boucle

JLPNopub a écrit : Bonjour à tous
Je suis nouveau sur Spip et la question que je me pose est certainement
récurrente, mais je ne trouve pas la solution, malgré mes recherches.
J’aimerais afficher sur une page rubrique, un article qui serait défini par
un mot clef « premier_article ».
S’il n’y a qu’un article, afficher cet article.
Autrement, afficher la liste des articles.
Enfin, s’il n’y a pas d’articles, afficher la liste des sous rubriques.
Voila ce que j’ai fait, mais ça ne marche pas dans tous les cas :
<B_artprinc>
            <BOUCLE_artprinc(ARTICLES) {id_rubrique}{0,1}>
                        <B_mot_clef>
                                  <BOUCLE_mot_clef(ARTICLES){titre_mot=premier_article}{id_article}>
                                               <h1 class="#EDIT{titre}
titre">#TITRE</h1>
                                               [<div class="#EDIT{chapo}
chapo">(#CHAPO)</div>]
                                               [<div class="#EDIT{texte}
texte">(#TEXTE|image_reduire{520,0})</div>]
                                               [<p class="#EDIT{hyperlien}
lien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out"> [(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
                                               [<div
class="ps"><h2><:info_ps:></h2>#DEBUT_SURLIGNE<div
class="#EDIT{ps}">(#PS)</div>#FIN_SURLIGNE</div>]
                                   </BOUCLE_mot_clef>
                        </B_mot_clef>
                        <hr>
<h2>Il n'y a pas d'article principal</h2>
                        <//B_mot_clef>
            </BOUCLE_artprinc>
</B_artprinc>
                                   <!--Affichage en cas d'absence de premier
article-->
                                   <INCLURE{fond=inc-miniplan}{id_secteur}
{id_rubrique} {id_article}>
                                   <hr>
                                   <!--Fin d'Affichage en cas d'absence de
premier article-->
<//B_artprinc>
Si ce n’est pas le premier article qui contient le mot clef, alors il ne le
trouve pas et si je ne limite pas la boucle artprinc, alors il m’affiche
plusieurs fois « il n’y a pas d’articles ». j’ai l’impression que la boucle
mot_clef se limite à un tour..

Merci d’avance pour votre aide

Bizarre. Et si tu vires le filtre

mais non pas bizarre.
dès qu'il y a un article dans la rubrique, il rentre dans la boucle artprinc

si ce premier article (qui peut etre n'importe lequel, il n'y a pas de tri) ne contient pas le mot clé premier_article, il affiche Il n'y a pas d'article principal

tout a fait normal quoi...

si j'ai bien compris le but :

<BOUCLE_mot_clef(ARTICLES){id_rubrique}{0,1}{titre_mot=premier_article}>
[(#REM) si article avec mot clé]
...
</BOUCLE_mot_clef>

<BOUCLE_artprinc(ARTICLES) {id_rubrique}{1,1}>
[(#REM) si pas d'article avec mot clé mais plusieurs articles]
...
<BOUCLE_artprinc>

[(#REM) si un seul article]
...

<//B_artprinc>
<//B_mot_clef>

@++

Un grand merci à tous.
La réponse de Stéphane est exactement ce que je recherchais. Mon approche de
la boucle (des boucles) n'était visiblement pas la bonne.

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de
Stephane
Envoyé : mardi 16 octobre 2007 17:51
Cc : spip@rezo.net
Objet : Re: [Spip] code alternatif dans une boucle

Jean-Christophe Villeneuve a écrit :

JLPNopub a écrit :

Avec le critère {0,1} sur la boucle mot_clef au lieu de artprinc, spip
m'affiche "il n'y a pas d'articles" x le nombre d'articles, plus le

contenu

de l'article souhaité. C'est pour cela que je l'avais limité sur la

boucle

mot_clef.
Je crois, au contraire qu'il faut étendre la boucle mot_clef à tous, mais

je

ne sais pas comment.

________________________________________
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net]
Envoyé : mardi 16 octobre 2007 16:53
À : JLPNopub
Objet : Re: [Spip] code alternatif dans une boucle

JLPNopub a écrit :
Bonjour à tous
Je suis nouveau sur Spip et la question que je me pose est certainement
récurrente, mais je ne trouve pas la solution, malgré mes recherches.
J’aimerais afficher sur une page rubrique, un article qui serait défini

par

un mot clef « premier_article ».
S’il n’y a qu’un article, afficher cet article.
Autrement, afficher la liste des articles.
Enfin, s’il n’y a pas d’articles, afficher la liste des sous rubriques.

Voila ce que j’ai fait, mais ça ne marche pas dans tous les cas :

<B_artprinc>
            <BOUCLE_artprinc(ARTICLES) {id_rubrique}{0,1}>
                        <B_mot_clef>
                                  
<BOUCLE_mot_clef(ARTICLES){titre_mot=premier_article}{id_article}>
                                               <h1 class="#EDIT{titre}
titre">#TITRE</h1>
                                               [<div class="#EDIT{chapo}
chapo">(#CHAPO)</div>]
                                               [<div class="#EDIT{texte}
texte">(#TEXTE|image_reduire{520,0})</div>]
                                               [<p

class="#EDIT{hyperlien}

lien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="spip_out">

[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
                                               [<div
class="ps"><h2><:info_ps:></h2>#DEBUT_SURLIGNE<div
class="#EDIT{ps}">(#PS)</div>#FIN_SURLIGNE</div>]
                                   </BOUCLE_mot_clef>
                        </B_mot_clef>
                        <hr>
<h2>Il n'y a pas d'article principal</h2>
                        <//B_mot_clef>
            </BOUCLE_artprinc>
</B_artprinc>
                                   <!--Affichage en cas d'absence de

premier

article-->

<INCLURE{fond=inc-miniplan}{id_secteur}

{id_rubrique} {id_article}>
                                   <hr>
                                   <!--Fin d'Affichage en cas d'absence

de

premier article-->
<//B_artprinc>

Si ce n’est pas le premier article qui contient le mot clef, alors il ne

le

trouve pas et si je ne limite pas la boucle artprinc, alors il m’affiche
plusieurs fois « il n’y a pas d’articles ». j’ai l’impression que la

boucle

mot_clef se limite à un tour..

Merci d’avance pour votre aide

Bizarre. Et si tu vires le filtre

mais non pas bizarre.
dès qu'il y a un article dans la rubrique, il rentre dans la boucle artprinc

si ce premier article (qui peut etre n'importe lequel, il n'y a pas de
tri) ne contient pas le mot clé premier_article, il affiche Il n'y a pas
d'article principal

tout a fait normal quoi...

si j'ai bien compris le but :

<BOUCLE_mot_clef(ARTICLES){id_rubrique}{0,1}{titre_mot=premier_article}>
[(#REM) si article avec mot clé]
.....
</BOUCLE_mot_clef>

<BOUCLE_artprinc(ARTICLES) {id_rubrique}{1,1}>
[(#REM) si pas d'article avec mot clé mais plusieurs articles]
.....
<BOUCLE_artprinc>

[(#REM) si un seul article]
.....

<//B_artprinc>
<//B_mot_clef>

@++
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP