Multirubricage ou comment faire apparaître un article dans plusieurs rubriques

SPIP permet d’associer un article à une seule rubrique. Toutefois, il est possible de faire apparaître un article également dans une (ou plusieurs) autre rubrique en affectant un même mot-clé à l’article et à la rubrique cible et en ajoutant quelques boucles dans le squelette des rubriques.
Ceci permet d’afficher des articles classés par thématique dans une rubrique transversale. Par exemple, on peut regrouper artificiellement dans une rubrique « Dossiers », différents articles dispersés sur le site.

Pour simuler un multirubricage, il convient de procéder de la manière suivante :

a) créer un groupe de mots clés intitulé « _multirubricage ». Il est indispensable que les mots-clés de ce groupe puissent être associés aux articles et aux rubriques (cochez « articles » et cochez « rubriques »). Ne pas cocher « On ne peut sélectionner qu’un seul mot-clé à la fois dans ce groupe ». En effet, cela permettra de faire apparaître un article dans plusieurs autres rubriques.

b) dans ce groupe de mots, créer les mots-clés de votre choix (par exemple « Dossiers », etc.). Il est plus simple de choisir comme mot-clé le titre de la rubrique cible (par exemple on crée un mot-clé « Dossiers » et on crée une rubrique dont le titre est « Dossiers »).

c) affecter à la rubrique cible le mot-clé correspondant ( par exemple on affecte le mot-clé « Dossiers » à la rubrique dont le titre est « Dossiers »).
ATTENTION : la rubrique cible doit contenir au moins un article qui lui est directement rattaché, sinon elle ne sera pas publiée.

d) affecter, aux articles que l’on souhaiterait voir également figurer sous la rubrique ciblée, le mot-clé correspondant (par exemple on affecte le un mot-clé « Dossiers » à plusieurs articles) .

e) Dans le squelette des rubriques, ajouter une boucle pour les articles issus d’autres rubriques par simulation de multirubricage :

<!-- boucle des articles issus d'autres rubriques par simulation de multirubricage -->
<BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
<BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}>
<div>
<a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
<p>[(#INTRODUCTION)]</p>
</div>
</BOUCLE_article_multirubricage>
</BOUCLE_mot_multirubricage>

Le fonctionnement est simple. On recherche tout d’abord le mot-clé du groupe « _multirubricage » qui a été affecté à la rubrique puis on recherche les articles qui ont ce même mot-clé.
A noter que seul l’intitulé du groupe de mots-clés (« _multirubricage ») figure dans le squelette. Les mots-clés ne figurent pas, aussi il n’est pas nécessaire de modifier le squelette à chaque création de mot-clé.
Si l’on souhaite utiliser plusieurs groupes de mots, il suffit de mettre {type=^[_multirubricage]} au lieu de {type=_multirubricage} et de faire commencer le titre des groupes de mots par « _multirubricage ».

Remarque
Variante qui utilise un SET/GET :

<!-- boucle des articles issus d'autres rubriques par simulation de multirubricage -->
#SET{ci_mots, #ARRAY{}}
<BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
[(#SET{ci_mots, #GET{ci_mots}|push{#ID_MOT}})]
</BOUCLE_mot_multirubricage>

<BOUCLE_article_multirubricage (ARTICLES){id_mot IN #GET{ci_mots}}{par date}{inverse}>
<div>
<a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
<p>[(#INTRODUCTION)]</p>
</div>
</BOUCLE_article_multirubricage>

Discussion

13 discussions

  • 3

    Bonjour et merci pour ce tuto...

    je galère depuis quelques temps sur mon site (spip 3.1.3).
    Je voudrais regrouper plusieurs articles dans une rubrique « stages ».
    J’ai inséré le code indiqué dans l’article dans mon fichier « rubrique.html » : mais rien ne s’affiche ?

    Si je remplace dans le code id_mot par titre_mot=stages les articles sont bien trouvés et affichés...

    Auriez-vous une aide à me proposer ?
    Merci d’avance,
    Djimel

    • Il convient de vérifier que les étapes a, b et c ont bien été mises en oeuvre.

    • Bonjour...
      j’ai trouvé une/la solution à mon problème sur un forum du net...
      http://marcimat.magraine.net/SPIP-3-Documents-Mots

      J’ai remplacé la boucle suivante :
      BOUCLE_article_multirubricage(ARTICLES)...

      par celle-ci :
      BOUCLE_article_multirubricage(ARTICLES mots_liens)...

      Je ne sais pas expliquer la raison de cet ajout... mais ça fonctionne !
      Merci encore pour ce tuto
      JMM

    • Je ne constate pas ce problème sous SPIP 3.0 (ni sous SPIP 3.1).

    Répondre à ce message

  • 3
    Sandrine Lejeune

    Bonjour,

    J’essaye de mettre en place le multirubricage sur un site en SPIP 3.0.19 et le filtre type=_multirubricage ne fonctionne pas.
    Dès que je l’enlève j’entre bien dans la boucle qui retrouve le mot clé de la rubrique et recherche bien les articles avec ce mot clé ... dès que je remet type= ... plus rien.
    Ce critère est-il toujours utilisable ?
    Sinon quelle est la nouvelle manière de faire ?

    <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
        <h1>"je passe par là"</h1>
        <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}>
            <div>
    	    <h1>"je passe par ici"</h1>
    	    <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
        	    <p>[(#TEXTE)]</p>
    	 </div>
         </BOUCLE_article_multirubricage>
    </BOUCLE_mot_multirubricage>

    Merci d’avance pour votre réponse.
    Sandrine

    • Bonjour,
      Il convient de créer préalablement un groupe de mots clés intitulé « _multirubricage ».

    • Sandrine Lejeune

      Bonjour,

      merci pour cette réponse rapide.

      J’ai créé le groupe de mots clés _multirubricage, j’ai mis dedans un mot clé qui porte le même nom que ma rubrique comme conseillé ... et celà ne fonctionne pas ...
      J’ai essayé en nommant ce groupe multirubricage ...
      En fait dès que je remet le filtre type= ... SPIP se comporte comme si ma rubrique n’avait pas de mot clé ...

    • Je viens de tester le code en question sur mon serveur de test (sous SPIP 3.0.20) et cela fonctionne parfaitement (avec un rubrique qui contient un article).

      Pour mémoire, la rubrique doit contenir au moins un article, qui lui est directement rattaché, sinon elle ne sera pas publiée par SPIP.

    Répondre à ce message

  • 2

    Bonjour,
    Je souhaite dévelloper une navigation transversale par mot clé.
    J’ai deux rubriques avec sous rubrique et des articles.

    Mon but est simple :

    j’ai : rubrique : Designer
    Sous rubrique : designer 1, designer 2 etc
    Article : projet pour chaque sous rubrique designer.

    Mais je veux aussi proposer les projets par thème,
    J’ai : Rubrique : Mobilier par thème
    Sous rubrique : Thème table, Thème chaise etc
    Article : les diférente table, chaise, etc

    Donc mon objectif est que quand je publie un article (par exemple une chaise), je l’associe au mot clé « Designer 1 » du groupe de mot clé designer => pour aller dans la rubrique designer 1 et je l’associe à un deuxième mot clé « chaise » du groupe de mot clé "mobilier par thème.

    J’ai tester la méthode « Multirubricage » que l’on trouve sur spip contrib, cela marche pour un groupe de mot. mais pas pour plusieurs...
    J’associe rubrique et article respectivement suivant mes besoin.
    Mais j’ai mais mot clé designer et mobilier par thème qui sont mélangé et donc c’est pas pratique (cela fait une cinquantaine de mot clé...)

    Mais je recherche une boucle qui associe les deux groupe de mot clé.
    Pour avoir deux menu dans ma parti privé...

    comment faire pour le moment j’ai ça avec id_groupe=2, j’aimerai juste faire uns boucle avec aussi id_groupe=1 :

    <BOUCLE_mot_mobilier(MOTS){id_rubrique}{id_groupe=3}>
    
    <BOUCLE_mobilier(ARTICLES){id_mot}{par date}{inverse}>
    
    
    
    
    <BOUCLE_document_menu(DOCUMENTS){id_article}{0,1}{extension==jpg}{doublons}>
    
    <a href="#URL_DOCUMENT" class='mediabox'  title="#TITRE" rel="groupe(#ID_ARTICLE)">
    
    #TITRE
    #TEXTE</div>						
    
    [(#LOGO_DOCUMENT|image_recadre{277,277,center})]
    
    </a>
    </BOUCLE_document_menu>
    
    
    </BOUCLE_mobilier>
    
    
    
    </BOUCLE_mot_mobilier>

    Merci de votre aide

    • Une piste consiste à utiliser le critère IN :
      http://www.spip.net/fr_article4010.html

    • Bonjour,

      En faite j’ai trouvé, c’était simple, avec le critère tout, cela me prend toute mes rubrique.
      Et finalement dans ma page rubrique j’ai deux boucle, une classique qui appeles mes articles pour chaque designer dans la rubrique , et une boucle à mot clé, ou mes rubriques par thème sont associé. avec deux groupe, pour l’anglais et le français.

    Répondre à ce message

  • 4
    apintofbeer

    Bonjour à tous
    J’ai testé la boucle et elle fonctionne sur spip 2.0 le seul probleme c’est que cela ne me garde pas mes titres de niveau 1.
    Les titres de niveau 2 et 3 de mon article source ne changent pas. Le probleme se pose uniquement pour les titres de niveau 1.

    Avez vous une explication et une solution ?

    Merci beauicoup

    • equipement

      Bonjour,
      L’exemple de boucle utilise la balise « INTRODUCTION ». Il est possible d’utiliser une autre balise à la place, par exemple « TEXTE » ou « DESCRIPTIF ». Par ailleurs, si le site en question utilise un filtre particulier sur l’introduction, la description ou le texte des articles, il convient de l’utiliser également dans la balise en question.

    • apintofbeer

      Merci beaucoup pour votre réponse rapide.
      J’ai effectivement remplacé « INTRODUCTION » par « TEXTE » ce qui a pour conséquence de me récuperer le corps de mon article.
      Par contre ce que je disais dans mon post c’est que dans mpon corps d’article mes titres de niveau 1 se changent en titre de niveau 2.
      Peut être effectivement faut-il chercher du coté des filtres. Mais ou les trouver ?
      Merci

    • equipement

      Dans l’exemple de boucle, il convient de remplacer :

      <div>
      <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
      <p>[(#INTRODUCTION)]</p>
      </div>

      par ce qui figure dans la partie, consacrée aux articles, de votre squelette rubrique.

    • apintofbeer

      Merci !!!!
      En cherchant un peu à taton, sur vos conseils, cela marche finalement !!!!!

      voici la boucle :

      <!-- boucle des articles issus d'autres rubriques par simulation de multirubricage -->
      <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
         <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}>
            [(#MODELE{article-full}{id_article})]
         </BOUCLE_article_multirubricage>
      </BOUCLE_mot_multirubricage>

      merci !!!

    Répondre à ce message

  • 1
    benjamin

    Je suis sous sarka-spip, je débute, et je n’arrive pas à mettre en place ce multirubricage. Je crois que je ne trouve pas le bon endroit où mettre la boucle indiquée :
    Je vous joins le rubrique.html, si quelqu’un peut me dire où il faut mettre la boucle, j’ai essayé ce qui me paraîssait logique, mais rien ne marche...

    • Benjamin, serait’il possible que tu propose ça sur le forum sarka quand tu as la réponce ou que tu me mettes un mail. (via mon site)

    Répondre à ce message

  • 2
    ver_tips

    Bonjour,

    J’ai installé avec succès ce système.

    J’ai un article dans une rubrique1 et il possède comme mot-clé le titre de la rubrique 2.

    La rubrique 2 ne contient aucun article « en propre ». Si je l’affiche je ne vois pas l’article 1.

    En revanche si j’ajoute dans la rubrique 2 un article 2, je vois dans la rubrique 2 aussi l’article 1 que l’article 2.

    Merci pour vos réponses

    • equipement

      SPIP publie une rubrique uniquement si elle contient au moins un article publié ou au moins un site référencé publié. Si la rubrique 2 ne contient aucun article « en propre », SPIP ne la publie pas, aussi il est normal de ne pas voir l’article 1.

    • Pour certains cas spéciaux, on peut avoir besoin de la rubrique vide.
      Petite astuce pour la faire apparaitre : Joindre un fichier à la rubrique, sans pour autant le mettre dans ke texte explicatif.

      Ben

    Répondre à ce message

  • Bonjour,

    Où doit-on insérer ce code ? Dans quel fichier ? J’ai essayé « /dist/rubrique.html/ » sans succès...

    merci

    Répondre à ce message

  • 9
    Olivier

    bonjour,

    tout d’abord merci pour cette boucle tres utile :)

    Une petite question : En l’utilisant, je me suis rendu compte que dans la rubrique cible, les articles de cette rubrique et ceux appraisant par le biais du multirubricage sont separés

    je m’explique :
    mes articles de la rubrique cible sont affichés comme ceux-ci
    date - titre - sous-titre
    style
    01 mai 2005 - toto - sous-toto
    01 jan 2003 - tata - sous-tata

    quand je rajoute des articles issus du multirubricage ca me fait

    01 mai 2005 - toto - sous-toto
    01 jan 2003 - tata - sous-tata

    27 mai 2005 - titrearticlemultirubriqué1 - sous-titrearticlemultirubriqué
    15 mai 2004 - titrearticlemultirubriqué2 - sous-titrearticlemultirubriqué

    Ce que je souhaiterais, C que les articles de la rubrique cible et ceux issus du mutirubricage apparaissent dans un seul ordre chronologique
    ex/
    27 mai 2005 - titrearticlemultirubriqué1 - sous-titrearticlemultirubriqué
    01 mai 2005 - toto - sous-toto
    15 mai 2004 - titrearticlemultirubriqué2 - sous-titrearticlemultirubriqué
    01 jan 2003 - tata - sous-tata

    une aide serait la bienvenue, car je me creuse mais vois pas la solution

    merci d’avance
    Olivier

    • equipement

      Une piste pourrait consister à :
      -  affecter aux articles propres à la rubrique, le mot-clé correspondant (par exemple « Dossiers », etc.) afin qu’ils apparaissent dans la boucle relative au multirubricage.
      -  enlever la boucle des articles de la rubrique (ou bien mettre la boucle de multirubricage avant la boucle des articles de la rubrique et enlever les doublons afin qu’ils n’apparaissent pas deux fois).

    • Bonjour,
      j’ai eu le même problème ou presque, je l’ai réglé en utilisant le « doublonnage dédoublonnage » qui n’est pas élégant, mais qui est efficace.
      ATTENTION toutefois, le code qui suit doit IMPERATIVEMENT être dans un fichier inclus, au milieu de la boucle Rubriques.

      <!-- mets les articles HORS de la rubrique dans d1 -->
      <BOUCLE_a(ARTICLES) {id_rubrique}  {doublons d1}></BOUCLE_a>
      <!-- mets les articles HORS "multi" dans d2 -->
      <BOUCLE_mot(MOTS) {id_rubrique}{type=_multi}>
      	<BOUCLE_mul(ARTICLES) {tout}{titre_mot=#TITRE}{doublons d2}>
      </BOUCLE_mul>
      </BOUCLE_mot>
       
       <!-- astuce: inverse les doublons pour les mettre dans art -->
       <BOUCLE_mult(ARTICLES)  {doublons d1}{doublons d2}{doublons art}></BOUCLE_mult>
      
      <!-- tous les articles voulus sont dans art, y'a plus qu'a en faire ce qu'on veut -->
        <BOUCLE_art(ARTICLES) {doublons art}{par date}>
      #TITRE
        </BOUCLE_art>
    • merci bcp a vous 2
      j’ai pas encore eu le temps d’essayer mais je le ferai bientot et posterai un message ensuite.
      Olivier - :)

    • Bonjour

      la solution d’equipement est efficace et simple a utiliser.
      juste une petite question : je rentre actuellement mes 5000 anciens articles (qui etaient en dur sur des pages html...) et ce nombre va augmenter par la suite. la gestion proposée par mots cle est-elle adaptée sans problemes pour un grand nombre d’articles ? ca va pas mouliner ?

      pour la solution de MJ, ben en fait, j’aurais besoin d’explications si tu veux bien, j’ai fait une inclusion mais ca marche pas, pourrais-tu me donner des details ?

      merci Olivier

    • Hum... En effet, je rencontre également le problème de doublons... Mais là ’avoue que je ne comprend rien à l’explication donnée pour éviter ça... Ce ne serait pas possible d’en avoir des plus détaillées ? Car j’aimerais comprendre comment ça marche...

    • Exemple de boucles pour la solution qui consiste à :
      -  affecter aux articles propres à la rubrique, le mot-clé correspondant (par exemple « Dossiers », etc.) afin qu’ils apparaissent dans la boucle relative au multirubricage.
      -  enlever la boucle des articles de la rubrique (ou bien mettre la boucle de multirubricage avant la boucle des articles de la rubrique et enlever les doublons afin qu’ils n’apparaissent pas deux fois).

      <!-- boucle des articles par simulation de multirubricage -->
      <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
      <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}{doublons}>
      <div>
      <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
      <p>[(#INTRODUCTION)]</p>
      </div>
      </BOUCLE_article_multirubricage>
      </BOUCLE_mot_multirubricage>
      
      <!-- boucle des articles de la rubrique hors doublons c’est-à-dire hors ceux qui ont le mot clé ->
      <BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}{doublons}>
      <div>
      <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
      <p>[(#INTRODUCTION)]</p>
      </div>
      </BOUCLE_articles>
    • Bonjour,

      Tout d’abord, merci pour cette contribution qui m’est vraiment d’un grand secours et dont l’explication est très claire et facile a mettre en oeuvre.
      J’ai juste une petite question : je souhaiterais ajouter apres le nom de mon article et sa date de publication, le nom de l’auteur. Or, je n’arrive pas a le faire sans avoir une erreur de double definition de la boucle BOUCLE_auteurs_articles.
      Voila ce que j’ai mis dans mon fichier rubrique.html :

      <!-- boucle des articles par simulation de multirubricage -->
      <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
      <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}{doublons}>
      <div>
      <li> <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a> [(#DATE|nom_jour)] [(#DATE|affdate)]</li>
      <!-- <p>[(#INTRODUCTION)]</p> -->
      </div>
      </BOUCLE_article_multirubricage>
      </BOUCLE_mot_multirubricage>
      
      <!-- boucle des articles de la rubrique hors doublons c’est-à-dire hors ceux qui ont le mot clé -->
      <BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}{doublons}>
      <div>
      <li> <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a> [(#DATE|nom_jour)] [(#DATE|affdate)]</li>
      <!-- <p>[(#INTRODUCTION)]</p> -->
      </div>
      </BOUCLE_articles>

      Or, si je fais la modif pour afficher les auteur, j’ai le message d’erreur :

      <!-- boucle des articles par simulation de multirubricage -->
      <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
      <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}{doublons}>
      <div>
      <li> <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a> [(#DATE|nom_jour)] [(#DATE|affdate)]  par
                <BOUCLE_auteurs_articles(AUTEURS) {id_article} {", "}>
                <a href="auteur.php3?id_auteur=#ID_AUTEUR">#NOM</a>
                </BOUCLE_auteurs_articles></li>
      <!-- <p>[(#INTRODUCTION)]</p> -->
      </div>
      </BOUCLE_article_multirubricage>
      </BOUCLE_mot_multirubricage>
      
      <!-- boucle des articles de la rubrique hors doublons c’est-à-dire hors ceux qui ont le mot clé -->
      <BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}{doublons}>
      <div>
      <li> <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a> [(#DATE|nom_jour)] [(#DATE|affdate)]  par
                <BOUCLE_auteurs_articles(AUTEURS) {id_article} {", "}>
                <a href="auteur.php3?id_auteur=#ID_AUTEUR">#NOM</a>
                </BOUCLE_auteurs_articles></li>
      <!-- <p>[(#INTRODUCTION)]</p> -->
      </div>
      </BOUCLE_articles>

      Avez vous une idee ?
      Merci d’avance

      mon blog ...

    • SPIP ne permet pas de créer dans une page deux boucles avec le même nom. Aussi, il suffit de nommer différemment la première boucle sur les auteurs (par exemple BOUCLE_auteurs_articles_multirubricage).
      Ci-dessous le code ainsi modifié.

      <!-- boucle des articles par simulation de multirubricage -->
      <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
      <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}{doublons}>
      <div>
      <li> <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a> [(#DATE|nom_jour)] [(#DATE|affdate)]  par
               <BOUCLE_auteurs_articles_multirubricage(AUTEURS) {id_article} {", "}>
               <a href="auteur.php3?id_auteur=#ID_AUTEUR">#NOM</a>
               </BOUCLE_auteurs_articles_multirubricage></li>
      <!-- <p>[(#INTRODUCTION)]</p> -->
      </div>
      </BOUCLE_article_multirubricage>
      </BOUCLE_mot_multirubricage>
      
      <!-- boucle des articles de la rubrique hors doublons c’est-à-dire hors ceux qui ont le mot clé -->
      <BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}{doublons}>
      <div>
      <li> <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a> [(#DATE|nom_jour)] [(#DATE|affdate)]  par
               <BOUCLE_auteurs_articles(AUTEURS) {id_article} {", "}>
               <a href="auteur.php3?id_auteur=#ID_AUTEUR">#NOM</a>
               </BOUCLE_auteurs_articles></li>
      <!-- <p>[(#INTRODUCTION)]</p> -->
      </div>
      </BOUCLE_articles>
    • OK, un grand merci !

    Répondre à ce message

  • Stéphane

    Bonjour,
    Peut-on faire fonctionner le multirubricage dans deux agendas d’EVAweb ?

    Merci de votre aide.

    Répondre à ce message

  • 2

    Mon site est sous EVA web 2.3 avec SPIP 1.9.1.

    Lorsque j’insère la boucle dans le squelette « rubrique.html », j’obtiens une page d’erreur.

    Je débute dans spip. Est-ce le bon squelette que je modifie ? Où est mon erreur ?

    • Quel est le message d’erreur ?

    • Bonsoir,

      Après avoir indroduit la boucle Multirubricage dans le squelette « rubrique-normal.html », ça fonctionne... pour les rubriques normales. Or, dans EVAweb certaines rubriques sont des calendriers (ou agendas) et je souhaiterais envoyer un même article dans deux agendas distincts (un privé et un public) et donc je ne sais pas où mettre la boucle dans le squelette « rubrique-calendrier.html »... (les articles s’affichent mais n’importe où !)

      Si vous avez une piste, merci d’avance.

    Répondre à ce message

  • 1

    Bonjour,

    J’utilise avec succes votre contribution. en revanche, elle semble etre incompatible avec une autre contrib qui permet d’afficher directement l’article si il n’y a qu’un seul article dans la rubrique (ici). En effet, si les 2 contrib sont en place, la simulation de multirubricage fait qu’il n’est considere qu’un seul article dans la rubrique, d’ou le conflit.

    Auriez vous une solution ?

    D’avance merci

    • Si on affecte un seul mot-clé du groupe "_multirubricage" à la rubrique, alors une piste pourrait consister à :

      a) affecter aux articles propres à la rubrique, le mot-clé correspondant (par exemple « Dossiers », etc.) afin qu’ils apparaissent dans la boucle relative au multirubricage.

      b) enlever la boucle des articles de la rubrique

      c) appliquer une contribution pour afficher directement l’article si il n’y en à qu’un seul à afficher.

      Cela pourrait donner par exemple le code suivant :

      <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=_multirubricage}>
      
      <!-- rediriger directement sur l’article si il n’y en à qu’un seul à afficher -->
      <BOUCLE_nb_article (ARTICLES){id_mot}{par date}{inverse}>
      <?php $k="#URL_ARTICLE"; ?>
      </BOUCLE_nb_article>
      <?php if ('#TOTAL_BOUCLE'==1) header("location:$k");?>
      </B_nb_article>
      
      <!-- boucle des articles par simulation de multirubricage -->
      <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}>
      <div>
      <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a>
      <p>[(#INTRODUCTION)]</p>
      </div>
      </BOUCLE_article_multirubricage>
      
      </BOUCLE_mot_multirubricage>

    Répondre à ce message

  • 2

    Bonjour,

    J’utilise avec succès cette contribution pour des rubriques qui se situent sur le même niveau de profondeur.
    Mais échec total pour des rubriques qui sont sur des niveaux différents.

    Une idée peut-être ?

    • La contribution fonctionne même avec des articles situés dans des
      rubriques qui sont sur des niveaux différents.

      Merci de décrire précisément un cas qui pose problème et de copier / coller les boucles utilisées.

    • Ok ma faute !
      J’ai attribué le mot clé à 2 rubriques au lieu de la rubrique cible et de l’article source...
      Et comme je n’affiche rien sur la rubrique dans ma boucle, c’est donc un affichage vide que j’obtenais.
      Tout est ok pour moi maintenant.
      Merci et heureux de constater la vitesse pour obtenir une réponse ici !

    Répondre à ce message

  • 2

    Bonjour,

    Dans mon site, j’ai deux rubriques dont le contenu se croise :
    -  Hébergement>hôtel>mes articles
    -  Annuaire>Restaurants, snacks, café>mes articles

    En fait, certains hôtels font aussi restaurant et j’aurais aimé que ces
    articles apparaissent aussi dans ma rubrique restaurant.

    Pour celà j’ai crée un groupe de mots-clés « multirubricage » (sur l’exemple que vous avez fourni) où j’y ai créé
    le mot-clé « restaurant » que j’ai assigné à tous les articles devant figurer dans la rubrique restaurant (mêmes à ceux se situant dans la rubrique « hôtels »).

    Ensuite, j’au ajouté au fichier « rubrique.html » la boucle suivante :

    <!-- boucle des articles issus d'autres rubriques par simulation de 
    multirubricage -->
    
    <BOUCLE_mot_multirubricage(MOTS){id_rubrique}{type=multirubricage}>
    
    <BOUCLE_article_multirubricage (ARTICLES){id_mot}{par date}{inverse}>
    
    <h3>
    [<a href="#URL_ARTICLE" 
    [title="(#DESCRIPTIF|supprimer_tags|attribut_html)"]>(#TITRE|supprimer_numero)</a>]</h3>
    [<p class="intro">(#TEXTE|textebrut|couper{500}) <a href="#URL_ARTICLE" 
    class="spip_in" 
    title="[(#TITRE|supprimer_numero|supprimer_tags|attribut_html)]">lire la 
    suite</a></p>]
    
    </BOUCLE_article_multirubricage>
    
    </BOUCLE_mot_multirubricage>

    Hélas, je n’obtiens rien. Est-ce que quelqu’un pense pouvoir m’aider ?

    Didi.

    • Il faut affecter à la rubrique le mot-clé correspondant. A noter que la rubrique cible doit contenir au moins un article qui lui est directement rattaché, sinon elle ne sera pas publiée.

    • Merci, j’ai en plus eut un problème sur le serveur qui est à présent réglé mais il avait généré plusieurs bugs inexplicables en fait.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom