SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 188 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 – 24 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

Vos commentaires

  • 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

  • Le 5 juillet 2005 à 02:42, par @lexandre En réponse à : > Article Précédent / Article Suivant

    Excellent,

    Testé avec succés ...

    @lexandre

    Répondre à ce message

Répondre à cet article

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

  • Champs Extras 3

    16 janvier 2012 – 523 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 188 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

  • Recommander

    3 avril 2011 – 16 commentaires

    Ce plugin propose une manière simple de suggérer de recommander par email un article à un ami. Fonction « recommander un article à un ami ». On l’ajoute dans n’importe quel squelette sous la forme : #RECOMMANDERtitre de la page,url de la page,intro (...)

Ça spipe par là