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 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.

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, 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. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

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