SPIP ecureuil




Thème de ce forum :

Récupérer les X derniers articles de toutes les rubriques sauf une....



lemiran
Récupérer les X derniers articles de toutes les rubriques sauf une....
12 janvier 2009 12:40

Bonjour à tous, je suis confronté à un problème qui va certainement paraitre enfantin à certains d’entre vous, n’empêche que je ne vois pas comment m’en dépatouiller....

J’aimerais afficher les 5 derniers articles de toutes les rubriques sauf une. Cette dernière a comme mot clé "articleexcluindex"... Voici le code :

ça fonctionne, donc le code filtre la rubrique indésirable...mais ma boucle me récupère les 5 derniers articles de toutes les autres rubriques... Pouvez vous me dire où j’ai fauté ? Merci !!

Rechercher dans les forums:
 

denisb
12 janvier 2009 18:44
Récupérer les X derniers articles de toutes les rubriques sauf une....

<BOUCLE_rub_exclue(RUBRIQUES) {titre_mot=articleexcluindex} {doublons}> </BOUCLE_rub_exclue>

<BOUCLE_rubriquederniere(RUBRIQUES) {doublons}>
 <BOUCLE_articles_derniers(ARTICLES) {id_rubrique} {lang?} {!par date} {0,5}>
    [<div class="texte">
      <div class="extrait">
        <b>#_rubriquederniere:TITRE</b> >(#TITRE)&nbsp;<b class="separateur">&gt;</b>&nbsp;<a  class="suite" href="#URL_SITE_SPIP/#URL_ARTICLE" title="...<:suite:>" ><:suite:></a>
      </div>
    </div>]
 </BOUCLE_articles_derniers>
</BOUCLE_rubriquederniere>

la boucle rub_exclue récupère dans doublons l’id de la rubrique au mot-clé « articleexcluindex »
la boucle rubriquederniere récupère les rubriques sauf celle-là.

lemiran
12 janvier 2009 20:43
Récupérer les X derniers articles de toutes les rubriques sauf une....

bonjour denis et merci pour ton aide ! si je comprends bien dans les deux cas on demande à spip de récupérer des choses mais de n’afficher que ce qui nous intéresse...

Dans ma solution, je pensais être logique en disant à spip de récupérer toutes les rubriques qui n’ont pas comme mot clé "articleexcluindex"... bon apparemment j’ai encore beaucoup à apprendre.

je m’en vais tester tout ça ! bonne soirée

esj
12 janvier 2009 23:10
Récupérer les X derniers articles de toutes les rubriques sauf une....

Solution plus efficace : trier les articles de toutes les rubrique sauf une :

<BOUCLE_rubriquederniere (RUBRIQUES){titre_mot=articleexcluindex}>
  <BOUCLE_articles_derniers(ARTICLES){id_rubrique!=#ID_RUBRIQUE} {lang?} {!par date}  {0,5}>
      [<div class="texte">
                     <div class="extrait">
                      <b>#_rubriquederniere:TITRE</b> >(#TITRE) <b class="separateur">></b> <a  class="suite" href="#URL_SITE_SPIP/#URL_ARTICLE" title="...<:suite:>" ><:suite:></a>
                     </div>
             </div>]
   </BOUCLE_articles_derniers>
</BOUCLE_rubriquederniere>
lemiran
12 janvier 2009 23:33
Récupérer les X derniers articles de toutes les rubriques sauf une....

merci esj pour ton coup de pouce !

cependant 2 problème émergent :

1- Ce sont les 5 derniers articles de toutes les rubriques qui s’affichent du coup. Au lieu d’avoir seulement 5 articles, j’en ai 5 X le nombre de rubriques....

2- Le titre de la rubrique demandé par la balise "#_rubriquederniere:TITRE"ne correspond pas...

je cherche de mo côté, si vous avez des idées n’hésitez pas !

Committo, Ergo Sum
13 janvier 2009 11:42
Récupérer les X derniers articles de toutes les rubriques sauf une....

Dans ton énoncé initial, tu disais que la rubrique à exclure était repérable par son usage du mot clé articleexcluindex ; si en fait il y a X rubriques qui ont cette caractéristique, c’est normal que la boucle interne soit exécutée X fois, d’où 5X images. Il faut trouver une caractéristique vraiment unique.

Pour le titre de la rubrique de l’article, j’avais recopié le code sans trop regarder, il faut faire une boucle Rubriques dans la boucle Articles pour le récupérer.

denisb
13 janvier 2009 12:36
Récupérer les X derniers articles de toutes les rubriques sauf une....

afficher les 5 derniers articles de mon site sauf ceux d’une rubrique de mot-clé ’articleexcluindex’ et en récupérant le titre de la rubrique de chacun de ces articles.

il te faut au moins 2 boucles : une RUBRIQUES pour récupérer le titre de la rubrique ; une ARTICLES pour récupérer titre, id, url...

donc d’abord :

 
<BOUCLE_rub_non(RUBRIQUES) {titre_mot=articleexcluindex}>
 <BOUCLE_art_non(ARTICLES) {id_rubrique} {doublons}>
 </BOUCLE_art_non>
</BOUCLE_rub_non>

BOUCLE_rub_non va chercher les rubriques à exclure ;
BOUCLE_art_non remplit le tableau doublons des id d’article dépendant de ces rubriques (donc à ne pas afficher)

puis :

 
<BOUCLE_art_oui(ARTICLES) {doublons} {!par date} {0,5}>
 #ID_ARTICLE - #TITRE
</BOUCLE_art_oui>

BOUCLE_art_oui va chercher les 5 plus récents articles de tout le site sauf ceux dont l’id correspond à un article dépendant d’une rubrique de mot-clé articleexcluindex

mais, il nous manque le titre de la rubrique de chacun de ces 5 articles...
- il faut donc rajouter une boucle RUBRIQUES dans la boucle ARTICLES avec un appel de jointure spécifique (sinon jointure sur spip_documents_liens ??? esj ?) :

 
<BOUCLE_rub_non(RUBRIQUES) {titre_mot=articleexcluindex}>
 <BOUCLE_art_non(ARTICLES) {id_rubrique} {doublons}>
 </BOUCLE_art_non>
</BOUCLE_rub_non>
<BOUCLE_art_oui(ARTICLES) {doublons} {!par date} {0,5}>
 <BOUCLE_titre_rub(RUBRIQUES spip_articles) {id_article}>
   #TITRE  - #_art_oui:TITRE
 </BOUCLE_titre_rub>
</BOUCLE_art_oui>

ça me paraît un peu lourd...

denisb
13 janvier 2009 13:18
Récupérer les X derniers articles de toutes les rubriques sauf une....

ha bah. c’est moi qui fait n’importe quoi...

 
<BOUCLE_rub_non(RUBRIQUES) {titre_mot=articleexcluindex}>
 <BOUCLE_art_non(ARTICLES) {id_rubrique} {doublons}>
 </BOUCLE_art_non>
</BOUCLE_rub_non>

<BOUCLE_art_oui(ARTICLES) {doublons} {!par date} {0,5}>
 <BOUCLE_titre_rub(RUBRIQUES) {id_rubrique}>
   #TITRE  #_art_oui:TITRE<br />
 </BOUCLE_titre_rub>
</BOUCLE_art_oui>
lemiran
13 janvier 2009 14:16
Récupérer les X derniers articles de toutes les rubriques sauf une....

ouh bé !!

je tombe tout juste de mon lite après une longue nuit de travail et là que vois-je ?

même pas le temps de dégainer ma cervelle que denis et commito ont déjà ratissé le terrain !!

oui désolé pour mon énoncé faussé commito, et merci à vous deux pour votre aide ! j’essaie tout ça cette aprème !

bonne journée à vous2

RSS






squelette