Chemin principal : Accueil > SPIP > Plugin > Succession d’articles avec A2A

Autre chemin : (Aller directement au contenu de l'article)

Succession d’articles avec A2A

jeudi 13 septembre 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

La nouvelle version du plugins A2A permet de typer les relations entre articles. Je m’en sert sur ce site pour créer des succession d’articles, par exemple ma série d’articles sur les stemma.

Comment fais-je ?

Configuration du plugin

Je crée un nouveau type de relation, dont la clef est « Suivant » et le titre est « Article suivant ».

Chaque article de la chaîne, sauf le dernier, est relié à l’article suivant selon ce type.

Voilà pour l’espace privé.

Côté squelettes

Je souhaite afficher l’ensemble des articles de la chaîne dans laquelle se situe l’article courant mais :

  1. En ne mettant pas de lien sur l’article courant.
  2. En mettant un attribut rel=prev ou rel=next pour le liens vers l’article immédiatement précédent/suivant.

Voici comme je procéde, les commentaires suivent.

  1. <BOUCLE_article(ARTICLES){id_article}>
  2. #SET{precedent,''}
  3. #SET{suivant,''}
  4. #SET{succession,#LISTE{#ID_ARTICLE}}
  5. <BOUCLE_precedent(ARTICLES_LIES){id_article_lie=#ID_ARTICLE}{type_liaison=suivant}>
  6. #SET{succession,#LISTE{#ID_ARTICLE}|push{#GET{succession}}}
  7. [(#ID_ARTICLE_LIE|=={#_article:ID_ARTICLE}|oui)
  8. #SET{precedent,#ID_ARTICLE}
  9. ]
  10. <BOUCLE_precedents(Boucle_precedent) />
  11. </BOUCLE_precedent>
  12.  
  13. <BOUCLE_suivant(ARTICLES_LIES){id_article=#ID_ARTICLE}{type_liaison=suivant}>
  14. #SET{succession,#GET{succession}|push{#ID_ARTICLE_LIE}}
  15.  
  16. #SET{suivant,#ID_ARTICLE_LIE}
  17.  
  18. <BOUCLE_suivants(ARTICLES_LIES){id_article=#ID_ARTICLE_LIE}{type_liaison=suivant}>
  19. #SET{succession,#GET{succession}|push{#ID_ARTICLE_LIE}}
  20. <BOUCLE_suivantsr(BOUCLE_suivants) />
  21. </BOUCLE_suivants>
  22. </BOUCLE_suivant>
  23.  
  24.  
  25. <B_succession>
  26. <p><strong><:geek:succession_article:> :</strong></p>
  27. <ol class='succession'>
  28. <BOUCLE_succession(ARTICLES){id_article IN #GET{succession}}{si #GET{succession}|count|>{1}} >
  29. <li[ class='(#EXPOSE)']>
  30.  
  31. [(#EXPOSE|non)<a href="#URL_ARTICLE"[ rel="next"(#ID_ARTICLE|=={#GET{suivant}}|oui)][ rel="prev"(#ID_ARTICLE|=={#GET{precedent}}|oui)]>]
  32. #TITRE
  33. [(#EXPOSE|non)</a>]
  34.  
  35. </li>
  36. </BOUCLE_succession>
  37. </ol>
  38.  
  39. </B_succession>
  40. </BOUCLE_article>

Télécharger

  • l. 1 : la boucle englobante du squelette, je masque ici les autres contenus.
  • l. 2-3 : deux variables dans lesquelles on stockera les numéros de l’article précédent et de l’article suivant.
  • l. 4 : liste dans laquelle on va stocker les id de chaque article de la chaîne. On initialise la liste avec le numéro de l’article courant.
  • l. 5 et 11 : on cherche l’article précédent.
  • l. 6 : on ajoute l’article précédent à la liste des articles de la chaîne, en début de liste.
  • l. 9 : on indique l’id de l’article immédiatement précédent dans la variable precedent. Notez le test qui permet de jouer avec la récursion de la l. 10 sans changer à chaque fois precedent.
  • l. 13 à 20 : la même chose que l. 5 à 11, mais pour les articles qui suivent dans la chaîne. Notez qu’on étend la liste vers la fin, et non pas vers le début, comme précédement.
  • l. 23 à 38 : boucle (ARTICLES) classique, mais on choisit comme < code>id_article ceux listés dans le tableau. Notez que {id_article IN …}. On notera :
    • l. 24 : l’utilisation de #EXPOSE pour styler différemment l’article courant, de même l. 25 et 27 pour n’afficher le liens que sur les articles différent de l’article courant.
    • l. 25 [ rel="next"(#ID_ARTICLE|=={#GET{suivant}}|oui)] et son comparse [ rel="prev"(#ID_ARTICLE|=={#GET{precedent}}|oui)] qui permet d’ajouter l’attribut rel à la balise <a>, si besoin.
Qui êtes-vous ?

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 formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un master en sciences religieuses de l’Université de Strasbourg, je suis depuis août 2012 assistant-diplômé en histoire du christianisme antique et littérature apocryphe chrétienne à l’Université de Lausanne, où je prépare une thèse sous la direction de Frédéric Amsler.

Dans le cadre de la rédaction de mon mémoire de master, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul