SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 232 visiteurs en ce moment

Accueil > Navigation > Navigation à suivre > Article Précédent / Article Suivant

Article Précédent / Article Suivant

26 juin 2005 – par DoriaN – 25 commentaires

12 votes

Le but est d’afficher des liens vers l’article précédent, puis vers l’article suivant en bas ou en haut de page d’un article.

Articles triés par date

Dans ce cas il suffit de se reporter à la documentation officielle qui donne l’astuce dans la page parlant des dates de publication.
À vous, bien sûr, d’améliorer l’affichage selon votre site !

Et si je veux un autre critère de tri ?

Si vous voulez classer vos articles par ordre alphabétique, le code précédent n’est pas si dur à adapter avec spip 1.8, une fois que vous vous souvenez du critère #_nom_de_boucle:BALISE et que vous relisez son utilisation (il faut faire attention, dans un classement alphabétique aux articles qui auraient le même Titre).

P.-S.

variantes bienvenues !

Voir aussi le plugin Critères precedent et suivant.

Dernière modification de cette page le 14 juin 2012

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 19 juin à 20:07, par TjB En réponse à : Article Précédent / Article Suivant

    Obtenir l’article suivant et précédent via le critère age_relatif fonctionne très bien si les articles ne sont pas à la même heure. Sinon, le fonctionnement est aléatoire...

    Une suggestion pour résoudre ce souci :

    1. #SET{DATE_COURANTE,#DATE}
    2.  
    3. <BOUCLE_precedent(ARTICLES){id_rubrique}{!par date}{date<#GET{DATE_COURANTE}}{0,1}>
    4. <a href='[(#URL_ARTICLE)]'>
    5. <nobr>&lt;&nbsp;article pr&eacute;c&eacute;dent</nobr>
    6. </a>
    7. </BOUCLE_precedent>
    8. </td>
    9. <td align=right>
    10.  
    11. <BOUCLE_suivant(ARTICLES){id_rubrique}{par date}{date>#GET{DATE_COURANTE}}{0,1}>
    12. <a href='[(#URL_ARTICLE)]'>
    13. <nobr>article suivant&nbsp;&gt;</nobr>
    14. </a>
    15. </BOUCLE_suivant>

    Télécharger

    Répondre à ce message

  • Le 3 juin 2010 à 06:02, par FabriceN En réponse à : Article Précédent / Article Suivant

    Bonjour,

    j’ai bien galéré avant de trouver cette solution (pourtant simple), donc je vous la livre.
    Le but était ici de naviguer vers l’article suivant/précédent dans un tri par num titre.
    Tout d’abord, j’ai créé un squelette pour pouvoir ensuite l’inclure au besoin : inc-previous_next.html

    1. <div align='center'>
    2. <BOUCLE_previous(ARTICLES){id_rubrique}{!par num titre}{titre < #TITRE*}{0,1}>
    3. <a href='#URL_ARTICLE'>
    4. <img class="no_image_filtrer" src="/plugins/auto/couteau_suisse/img/decoupe/precedent.gif" align="middle">
    5. <multi>
    6. [fr]Précédent
    7. [en]Previous
    8. </multi>
    9. </a>   
    10. </BOUCLE_previous>
    11.  
    12. <BOUCLE_next(ARTICLES){id_rubrique}{par num titre}{titre > #TITRE*}{0,1}>
    13.    
    14. <a href='#URL_ARTICLE'>
    15. <multi>
    16. [fr]Suivant
    17. [en]Next
    18. </multi>
    19. <img class="no_image_filtrer" src="/plugins/auto/couteau_suisse/img/decoupe/suivant.gif" align="middle">
    20. </a>
    21. </BOUCLE_next>
    22. </div>

    Télécharger

    Puis je l’ai inclus dans mon article :

    1. [(#INCLURE{fond=inc-previous_next}{titre=[(#TITRE*)]}{id_rubrique})]

    Et voilà. Ya plus qu’à.

    • Le 1er août 2010 à 17:38, par frth En réponse à : Article Précédent / Article Suivant

      Merci Fabrice !

      C’est exactement ce que je cherchais.
      Plus besoin de me casser la tête...

    • Le 7 octobre 2010 à 05:39, par Paladin En réponse à : Article Précédent / Article Suivant

      Variante, en forme de liste. Propose également lien sur tête de rubrique et de secteur :

      Là aussi bien sûr, ne pas oublier de numéroter les titres d’article.

    • Le 7 octobre 2010 à 05:53, par Paladin En réponse à : Article Précédent / Article Suivant

      J’oubliais l’include de rappel à placer dans le squelette article.html :

      1. [(#INCLURE{fond=inc-mininav}{titre=[(#TITRE*)]}{id_secteur}{id_rubrique})]
    • Le 26 septembre 2013 à 20:34, par zaa En réponse à : Article Précédent / Article Suivant

      @FabriceN : merci ça marche super bien ! Et j’ai appris en même temps qu’on pouvait mettre une balise <multi> dans les pages HTML... Yé !

    Répondre à ce message

  • Le 2 décembre 2011 à 14:33, par Eric En réponse à : Article Précédent / Article Suivant

    Bonjour,

    Merci FabriceN pour ta solution, je l’utilise et elle fonctionne seulement. J’ai réalisé une variante car dans certains cas particulier la solution original n’arrivait pas à trouver l’article précédent. J’ai rajouter une fonction qui permet d’extraire le numéro du titre pour comparer uniquement les numéros et avoir un résultat cohérent.

    Voici la solution :

    créer un fichier mes_fonctions.php dans votre répertoire squelletes :

    1. <?php
    2.  
    3. function extraire_numero ($titre) {
    4. if (ereg("([0-9]+)\.", $titre, $match)) {
    5. return $match[1];
    6. }
    7. else return $titre;
    8. }
    9.  
    10. ?>

    Télécharger

    créer un fichier squellete : navigation.html dans le répertoire squellete

    1. <BOUCLE_next(ARTICLES){id_rubrique}{par num titre}{titre > (#TITRE*|extraire_numero)}{0,1}>
    2. <div align="left"><b>Article suivant : <a href='#URL_ARTICLE'>[(#TITRE|supprimer_numero)]</a></b></div>
    3. </BOUCLE_next>
    4. <BOUCLE_previous(ARTICLES){id_rubrique}{!par num titre}{titre < (#TITRE*|extraire_numero)}{0,1}>
    5. <div align="left"> <b>Article précédent :<a href='#URL_ARTICLE'>[(#TITRE|supprimer_numero)]</a></b></div>
    6. </BOUCLE_previous>

    Télécharger

    rajouter ensuite la balise inclure suivante dans votre squellette article et la pagination fonctionne :

    1. [(#INCLURE{fond=navigation}{titre=[(#TITRE*)]}{id_rubrique})]

    Bon SPIP à tous

    • Le 22 mars 2012 à 15:27, par CharliesAngel En réponse à : Article Précédent / Article Suivant

      Un grand merci pour ta contribution elle marche très bien c’est exactement ce que je cherchais !!

    • Le 18 mai 2012 à 17:32, par micker En réponse à : Article Précédent / Article Suivant

      désoler je n’arrive pas a faire fonctionner ton code ...
      j’ai créer le fichier mes_fonctions.php dans squelettes
      puisnavigation.html dans squelettes aussi
      puis inlus ton code dans articles.html ..
      j’ai louper quoi ?
      Merci

    Répondre à ce message

  • Le 31 janvier 2009 à 17:17, par robomatix En réponse à : Article Précédent / Article Suivant

    J’ai remarqué un problème avec les boucles avec un classement par titre. La boucle suivant boucler (héhé !) sur deux articles commençant par J’... Je me suis penché sur ce problème et j’ai pondu ça :

    En espérant que ça en aide d’autres !

    Répondre à ce message

  • Le 12 avril 2007 à 00:04, par sly En réponse à : Article Précédent / Article Suivant

    Il y a un oubli :
    il manque exclus dans la boucle « article précédent » :


    <BOUCLE_art_prec(ARTICLES)id_rubriquetitre<=#_principale:TITREexcluspar titre0,1inverse>

    Article précédent : #TITRE
    • Le 12 avril 2007 à 11:45, par sly En réponse à : Article Précédent / Article Suivant

      ou plutôt, enlever le “=” de l’expression “<=” dans la boucle “BOUCLE_art_prec”

      Aussi, attention les espaces des titres ne sont pas supportés dans l’expression “#_principale:TITRE”

      => Préfixez donc vos titres d’article par "01. le premier article", "02. le deuxième article", .... et utilisez ensuite “(#TITRE

    • Le 15 juillet 2008 à 13:43, par Julien En réponse à : Article Précédent / Article Suivant

      Je me permet de rendre attentif les personnes qui trie leur article avec l’explication ci-dessu poster par Sly, ne foncitonne pas si dans : mes_options.php il est inscrit le code :

      $table_des_traitements[’TITRE’][]=’supprimer_numero(typo(%s))’ ;

      Il faut donc effacer ce code et alors ou peut utiliser les balises (#TITRE

      Avec Spip 1.9.2d
      Julien

    • Le 2 août 2008 à 15:02, par ? En réponse à : Article Précédent / Article Suivant

      Bonjour Julien,

      Si vous aviez le temps de regarder mon problème ce serait très sympath.

      Patrick ROUDEIX, Provence Infos.
      Manosque dans le 04 - 04 9272 8000 - 06 8151 0663 - provenceinfos@wanadoo.fr

      Bon week end quand même.

      -  Site : www.andrebeaurepaire.com
      -  SPIP 1.9.2d [11132]
      -  Plugins : Lecteur Multimédia en Flash (MP3,flv)
      -  Page avec articles préc et suivants : Rubrique TRAVAIL, sous rubrique Peinture
      -  http://www.andrebeaurepaire.com/spip.php?article2
      -  Titre des articles : 01. xxxxxxx/ 02. yyyyyyyyyyy et suivants
      -  Code source :
      BOUCLE_navig(ARTICLES) id_rubrique=6 id_article
       !— le lien vers l’article précédent, par ordre alphabétique—
      BOUCLE_art_prec(ARTICLES)id_rubriquetitre<=#_principale:TITREexcluspar titre0,1inverse
      div align="left"
      a href=’#URL_ARTICLE’>Tableau précédent /a
      /div
      /BOUCLE_art_prec
      /td
      td width="50%"
      !-- le lien vers l'article suivant, par ordre alphabétique--
      BOUCLE_art_suiv(ARTICLES){id_rubrique}{titre>#_principale:TITRE
      excluspar titre0,1
      div align=« right »
      a href=’#URL_ARTICLE’ img src=« ../IMG/droite.gif » alt=« Tableau suivant » border=« 0 »
      /a
      /div
      /BOUCLE_art_suiv
      /td
      /tr
      /table
      /BOUCLE_navig

    • Le 18 février 2009 à 12:02, par Voldor En réponse à : Article Précédent / Article Suivant

      Bonjour,

      Malgré tous mes efforts et essais nombreux, je n’arrive pas à obtenir l’article précédent selon l’ordre alphabétique.

      1- Si je mets la boucle telle qu’elle est dans l’article ci-dessus, « article précédent » me renvoie l’article de la page visitée.

      2 - Si j’enlève le =

      Le site public affiche :
      # Erreur sur le site, boucle critère inconnu
      # (articles)
      Erreur MySQL
      articles.id_article, articles.lang FROM spip_articles AS `articles` WHERE (articles.id_rubrique = ’147’) AND titre() AND (articles.statut = « publie ») AND (articles.date < NOW()) ORDER BY articles.titre DESC LIMIT 0,1
      You have an error in your SQL syntax ; check the manual that corresponds to your MySQL server version for the right syntax to use near ’() AND (articles.statut = "publie") AND (articles.date < NOW()) ORDER BY artic’ at line 4

      3 - Si je mets :

      <BOUCLE_principal(ARTICLES){id_article}>
      <BOUCLE_avant(ARTICLES){id_rubrique}{titre<=#_principal:TITRE*}{exclus}{par titre}{0,1}{inverse}>
      [(#LOGO_ARTICLE|center|#URL_ARTICLE||reduire_image{0,100}|)]
      </BOUCLE_avant>--

      Lorsque je suis sur l’article : 002.
      Précédent : il n’affiche rien (alors qu’il existe un article 001.)

      Lorsque je suis sur l’article : 003.
      Précédent : il n’affiche rien (alors qu’il existe un article 002.)

      **************

      Le site est en 1.9.2c
      Quelqu’un peut-il m’aider ?

      Merci par avance !

    • Le 22 février 2010 à 16:40, par ? En réponse à : Article Précédent / Article Suivant

      @Voldor
      Essaie avec {1,1} et non {0,1}.

      Mathieu

    Répondre à ce message

  • Le 22 février 2010 à 16:32, par ? En réponse à : Article Précédent / Article Suivant

    Juste pour info ça marche très bien avec les rubriques également, merci pour cette « contrib » très utile !

    Mathieu

    Répondre à ce message

  • Le 31 janvier 2009 à 17:21, par robomatix En réponse à : Article Précédent / Article Suivant

    Le ’_article_principal’ vient du nom de la boucle qui englobe la page html...

    Répondre à ce message

  • Le 28 octobre 2007 à 10:16, par Philippe En réponse à : Article Précédent / Article Suivant

    Installation sur Art’s Web Gallery pour la visite de la galerie d’artistes : nickel

    Répondre à ce message

  • Le 3 novembre 2005 à 18:59, par François Schreuer En réponse à : Article Précédent / Article Suivant

    Un tri qui serait particulièrement intéressant est le {par num titre} (basé sur l’ordre arbitraire donné dans le titre), mais ça ne fonctionne pas avec {titre>#TITRE} pour des listes supérieures à 10 items (cf. http://thread.gmane.org/gmane.comp....).

    Il y a bien une solution proposée par rpapa, mais elle est un peu compliquée.

    François

    • Le 30 juin 2006 à 01:52, par Godot En réponse à : Article Précédent / Article Suivant

      Dans mon site c’est un peu plus compliqué parce que les articles sont tous dans des rubriques (un article par rubrique, pas plus d’un article).

      J’ai essayé ça, mais ça ne marche pas :

      <BOUCLE_tete_de_page(ARTICLES) {id_article}>



      <BOUCLE_rub1(RUBRIQUES) {id_rubrique}>
      <BOUCLE_precedent(RUBRIQUES) {meme_parent} {debut_p,1} {par titre}>
      <BOUCLE_prec(ARTICLES) {id_rubrique}>
      Precedent :
      #TITRE
      </BOUCLE_prec>
      </BOUCLE_precedent>
      </BOUCLE_rub1>
             

                             
      <BOUCLE_rub2(RUBRIQUES) {id_rubrique}>
      <BOUCLE_suivant(RUBRIQUES) {meme_parent} {debut_s,1} {par titre} {inverse}>
      <BOUCLE_suiv(ARTICLES) {id_rubrique}>
      Suivant :
      #TITRE
      </BOUCLE_suiv>
      </BOUCLE_suivant>

      </BOUCLE_rub2>
      </BOUCLE_tete_de_page>

      J’arrive bien (enfin !) à atteindre le bon niveau hiérarchique, mais ça ne m’affiche pas l’article précédent ni l’article suivant à l’article en cours. Ce qui est affiché est un peu aléatoire.

      Comment faire ?

      Merci

    • Le 19 janvier 2007 à 21:11, par Aurélie En réponse à : Article Précédent / Article Suivant

      Il faut trier les boucles ARTICLES (BOUCLE_prec et BOUCLE_suiv) avec un critère {par }, sinon, il n’affiche rien d’aléatoire mais bien les articles par id_article.

    Répondre à ce message

  • Le 18 septembre 2005 à 22:26, par Banga En réponse à : > Article Précédent / Article Suivant

    Moi, je voudrais avoir « Brève suivante » / « Brève précédente », et ce qui est indiqué ne marche pas.

    J’ai essayé aussi avec quelque chose du style id_breve>#_breve_en_cours#ID_BREVE, mais je n’arrive pas à trier, spip transformant ça en « ...WHERE (breves.id_breve > ’id_breve’)... ».

    Une petite idée, peut-être ?

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Serveur HTTP abstrait

    25 novembre 2013 – commentaires

    Un plugin-outil pour aider les développeurs à implémenter des API orientées REST, basées sur les méthodes HTTP (get, post, put, delete). Ce plugin a pour but premier de normaliser des URL que l’on pourra appeler pour manipuler les données du site. À (...)

  • Agenda Fullcalendar facile

    29 octobre 2016 – 33 commentaires

    Dans un précédent article, nous expliquions comment afficher un agenda Fullcalendar sur son site avec le plugin agenda. Cependant, ceci nécessite des manipulation de squelettes, ce qui n’est pas toujours évident lorsqu’on débute. La présente (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 93 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Acces Restreint 3.0

    11 décembre 2008 – 804 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Abonnements

    31 janvier 2015 – 18 commentaires

    Gérer des abonnements à des offres, et uniquement cela. Ce plugin a pour but de regrouper tout ce qui est commun aux différents types d’abonnements possibles (à des zones restreintes, à des contenus précis, à une version papier pourquoi pas (...)

Ça spipe par là