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 ?

    Répondre à ce 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.

    Répondre à ce message

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

    Répondre à ce 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

    Répondre à ce 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

    Répondre à ce message

  • T’es un chef !!! Merci !

    Répondre à ce message

  • Tres sympa et tres efficace

    Répondre à ce message

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

    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