Un article complet

Bonjour,

J'utilise la dernière version SPIP avec zpip.
Toujours dans ma recherche pour faire afficher un article complet quand j'ouvre une rubrique dans certains cas, je suis parti de cette idée :

Lorsque j'ouvre une rubrique, s'il y a un article nommé "Accueil", j'affiche cet article en entier, sinon, je laisse faire ce qu'il y avait, c'est à dire afficher une liste de résumés et de sous-rubriques.

Ca marche... presque !

Quand je n'ai pas d'article nommé Accueil, la liste résumé s'affiche bien, pas de problème.

Quand j'ai un article nommé "Accueil", l'article s'affiche bien en entier,mais... la liste résumé s'affiche à la suite; y compris l'article que je viens d'afficher.

(Vous pouvez voir ça à htt://bosse.cie.free.fr. Dans la rubrique Spectacle, choisir "Ces gens d'en bas")

J'ai fait une boucle <BOUCLE_accueil> qui affiche l'article si titre=Accueil (à priori ça marche), je finit par </BOUCLE_accueil> puis suit tout le code d'affichage de la liste des articles résumés, le tout se terminant par <//BOUCLE_accueil>

Normalement, si j'ai bien compris le truc, tout ce qui se trouve entre </BOUCLE_accueil> et <//BOUCLE_accueil> n'est exécuté que si rien n'a été affiché dans <BOUCLE_accueil> ?

Alors qu'est-ce qui ne va pas ?

Je vous mets un bout de squelette un peu raccourci :

<BOUCLE_accueil(ARTICLES){id_rubrique} {titre=Accueil}>
  <div class="chapo">#CHAPO</div>
  <h3>#SOUSTITRE</h3>
  <div class="text">#TEXTE</div>
  <div class""ps">#PS</div>
</BOUCLE_accueil>
[(#REM) Il n'y a pas de page d'accueil pour la rubrique]
<B_articles>
<div class="liste articles">
#ANCRE_PAGINATION
<h2 class="h2"><:articles_rubrique:></h2>
<ul class="liste-items">
<BOUCLE_articles(ARTICLES){id_rubrique} {!par date} {pagination 5}>
            #INCLURE{fond=inclure/article-resume,id_article}
</BOUCLE_articles>
</ul>
[<p class="pagination">(#PAGINATION)</p>]
</div>
</B_articles>
[(#REM) Si aucun article, affiche un plan de la rubrique ]
<B_sous_rubriques>
<div class="menu rubriques">
<h2 class="h2"><:sous_rubriques:></h2>
<ul class="menu-liste">
          <BOUCLE_sous_rubriques(RUBRIQUES) {id_parent} {par num titre, titre}>
<li class="menu-entree">
<a href="#URL_RUBRIQUE">[(#TITRE)]</a>

[(#REM) Une boucle recursive pour le mini plan]
<B_miniplan>
<ul class="menu-liste">
              <BOUCLE_miniplan(RUBRIQUES) {id_parent} {par num titre, titre}>
<li class="menu-entree">
<a href="#URL_RUBRIQUE">[(#TITRE)]</a>
                  <BOUCLE_m2(BOUCLE_miniplan)></BOUCLE_m2>
</li>
              </BOUCLE_miniplan>
</ul>
</B_miniplan>

</li>
</BOUCLE_sous_rubriques>
</ul>
</div>
</B_sous_rubriques>
<//B_articles>

<//BOUCLE_accueil>

Merci de votre aide.

Michel

Le 24/03/2010 00:06, Laforest a écrit :

Normalement, si j'ai bien compris le truc, tout ce qui se trouve entre </BOUCLE_accueil> et <//BOUCLE_accueil> n'est exécuté que si rien n'a été affiché dans <BOUCLE_accueil> ?

Alors qu'est-ce qui ne va pas ?

C'est <//B_accueil> pas <//BOUCLE_accueil>

Éric

Eric L a écrit :

Le 24/03/2010 00:06, Laforest a écrit :

Normalement, si j'ai bien compris le truc, tout ce qui se trouve entre </BOUCLE_accueil> et <//BOUCLE_accueil> n'est exécuté que si rien n'a été affiché dans <BOUCLE_accueil> ?

Alors qu'est-ce qui ne va pas ?

C'est <//B_accueil> pas <//BOUCLE_accueil>

Éric

Yeeeees !

C'est pas très clair dans les tutoriels.

Merci, ça roule.

Michel

Laforest a écrit :

Eric L a écrit :

Le 24/03/2010 00:06, Laforest a écrit :

Normalement, si j'ai bien compris le truc, tout ce qui se trouve entre </BOUCLE_accueil> et <//BOUCLE_accueil> n'est exécuté que si rien n'a été affiché dans <BOUCLE_accueil> ?

Alors qu'est-ce qui ne va pas ?

C'est <//B_accueil> pas <//BOUCLE_accueil>

Éric

Yeeeees !

C'est pas très clair dans les tutoriels.

Merci, ça roule.

Michel

Comment ça pas très clair ?
La syntaxe des boucles - SPIP présente au contraire très clairement la syntaxe des boucles :partie optionnelle avant, contenu, partie optionnelle après et partie alternative

manu a écrit :

Laforest a écrit :

Eric L a écrit :

Le 24/03/2010 00:06, Laforest a écrit :

Normalement, si j'ai bien compris le truc, tout ce qui se trouve entre </BOUCLE_accueil> et <//BOUCLE_accueil> n'est exécuté que si rien n'a été affiché dans <BOUCLE_accueil> ?

Alors qu'est-ce qui ne va pas ?

C'est <//B_accueil> pas <//BOUCLE_accueil>

Éric

Yeeeees !

C'est pas très clair dans les tutoriels.

Merci, ça roule.

Michel

Comment ça pas très clair ?
La syntaxe des boucles - SPIP présente au contraire très clairement la syntaxe des boucles :partie optionnelle avant, contenu, partie optionnelle après et partie alternative

Non, non, je persiste.

Ce qui n'est pas très clair, ce n'est pas ça, mais les mots clé.

Un : (ca n'est pas la même chose, mais c'est le même "problème") : <BOUCLE_momo> : Si j'ai bien compris, BOUCLE est un mot clé, et momo est une partie où l'on met ce qu'on veut.

Idem <B_momo> où B est un mot clé.

Personnellement, j'avais compris que ce qui donnait pour SPIP l'identité d'une boucle, c'était le couple <blabla(ARTICLES)> où l'on peut mettre (RUBRIQUES) à la place d'articles, ou (MOT) etc..

Pareil pour <B_momo>.

C'est clair ce que je raconte ?

Je pas sur mais bon... j'ai essayé.

Michel