Lier plusieurs articles

Cette contribution présente la manière dont j’ai implémente des articles chainés sur mon site.

Présentation

Il y a une certaine analogie avec la contribution Découper un article en plusieurs pages et lui ajouter un sommaire, mais la démarche est dfférente: le but est de lier logiquement plusieurs articles différents (chacun restant sur sa propre page) plutot que de découper un article sur plusieurs pages.

Un petit exemple se trouve sur cette page

Le menu déroulant Quick Jump permet de naviguer simplement entre trois articles représentant trois chapitres d’un meme sujet.

La boucle complète

Ce menu est généré automatiquement pour les articles qui en ont besoin par la boucle suivante:

<BOUCLE_quickjump(MOTS){id_article}{id_groupe=6}>   
<form>
<select SIZE=1 ONCHANGE="window.open(this.options[this.selectedIndex].value,'_top')">
<option>Quick Jump</option>
<BOUCLE_items(ARTICLES){id_mot}>
  <option value="article.php3?id_article=#ID_ARTICLE"> #SOUSTITRE </option>
</BOUCLE_items>
</select></form>
</BOUCLE_quickjump>

Quelques explications

<BOUCLE_quickjump(MOTS){id_article}{id_groupe=6}>

Cette boucle permet de décider ou non de l’apparition du menu déroulant: si l’article courant possède un mot clé d’un certain groupe (ici le groupe possédant l’id 6), alors le menu sera affiché (et le mot clé correspondant ajouté au contexte courant).

Dans mon backoffice SPIP, ce groupe de mot clé s’appelle article chainé.

Pour chaque famille d’articles liés, il est nécessaire de créer un mot clé qui va l’identifier et qui appartient à ce groupe article chainé. Voici un exemple d’un tel mot clé: Getting Started.

Ce mot clé sera ensuite utilisé par la boucle suivante pour remplir les entrées du menu déroulant:

<BOUCLE_items(ARTICLES){id_mot}>
  <option value="article.php3?id_article=#ID_ARTICLE"> #SOUSTITRE </option>
</BOUCLE_items>

Chaque option du menu est renseigné avec le sous-titre de l’article. C’est un choix d’implémentation mais cela permet d’avoir une certaine cohérence dans la présentation: le titre principal de chaque article peut ainsi etre le même (par exemple sur mon site “Titre - Titre part II - Titre part III”).

Voila...

J’espère que vous avez réussi à suivre (!) et que cette contribution pourra vous etre utile.

Discussion

8 discussions

  • Très pratique et très simple.
    Juste une petite question : comment ne faire apparaitre qu’un seul article (le premier de la chaine) dans la liste des dernières mises à jour, par exemple ?

    Reply to this message

  • 1

    Si j’ai bien compris(...), les articles sont filtrés par mot-clé mais dans quel ordre sont ils affichés? par ordre chronologique de publication? Par id_article? ou par un ordre logique défini par l’auteur?

    Merci.

    • Par id_article.... il est donc important d’écrire ses différents chapitres dans l’ordre ou de reserver quelques id en créant des articles vides pour d’eventuels ajouts ultérieurs.

    Reply to this message

  • Une nouvelle fonctionnalité à mettre à l’actif des squelettes Spip.
    C’est propre, bien vu, et surtout pratique ;-) !

    Reply to this message

  • 1

    Je dispose d’eva sur lequel il est possible de créer des albums.
    cette démarche est-elle aplicable pour créer plusieurs pages reliées entre elles et permmetre l’affichage de 10 photos sur chaque page d’albums avce un lien vers les 10 suivantes ?

    • Je ne connais pas Eva, mais elle n’utilise que des mécanismes standard de SPIP et un peu de gymnastique pour organiser et appliquer un mot clé. Donc, je ne vois pas spécialement d’incompatibilité!

      Eric

    Reply to this message

  • Sébastien

    Bonjour,

    Je sais pas si la question est déjà abordée, mais comment faire pour utiliser un article qui listera une compilation d’autres artciles à l’affichage ? Je voudrais cette astuce pour imprimer plusieurs articles à la suite sur la meme page html et ceci sans connaitre le nombre d’articles et sans passer par des mots clefs. Exemple un article contenant une liste de numéros d’articles qui s’afficheront entierement lors de la moulinette SPIP.
    Je sais pas si je suis très clair ?

    merci de votre aide

    Reply to this message

  • T’es un chef!!! Merci!

    Reply to this message

  • Tres sympa et tres efficace

    Reply to this message

  • Super, merci ! Impeccable ! Simple et très efficace!

    Reply to this message

Add a comment

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom