Article Précédent / Article Suivant - commentaires Article Précédent / Article Suivant 2022-05-31T10:44:29Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment511068 2022-05-31T10:44:29Z <p>Bonjour<br class="autobr"> je veux afficher dans un article, quelque soit la rubrique à laquelle il appartient, un lien vers l'article précédent, dans tout le site, et l'article suivant (éventuellement)<br class="autobr"> j'ai essayé 5 ou 6 solutions qui ne marchent pas : soit l'article précédent est le même que celui qui est affiché, soit l'article suivant n'est pas affiché (bien qu'il y en ait un) ou les articles ne sont récupérés que dans la rubrique en cours… bref, j'en perds mon lapin. <br class="autobr"> Quelqu'un peut-il m'aider<small class="fine d-inline"> </small>? merci (pour les lapins)</p> Article Précédent / Article Suivant 2017-06-19T18:07:08Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment492564 2017-06-19T18:07:08Z <p>Obtenir l'article suivant et précédent via le critère <var>age_relatif</var> fonctionne très bien si les articles ne sont pas à la même heure. Sinon, le fonctionnement est aléatoire...</p> <p>Une suggestion pour résoudre ce souci :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code>#SET{DATE_COURANTE,#DATE} <BOUCLE_precedent(ARTICLES){id_rubrique}{!par date}{date<#GET{DATE_COURANTE}}{0,1}> <a href='[(#URL_ARTICLE)]'> <nobr>< article pr&eacute;c&eacute;dent</nobr> </a> </BOUCLE_precedent> </td> <td align=right> <BOUCLE_suivant(ARTICLES){id_rubrique}{par date}{date>#GET{DATE_COURANTE}}{0,1}> <a href='[(#URL_ARTICLE)]'> <nobr>article suivant ></nobr> </a> </BOUCLE_suivant></code></pre></div> Article Précédent / Article Suivant 2013-09-26T18:34:32Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment471070 2013-09-26T18:34:32Z <p>@FabriceN : merci ça marche super bien<small class="fine d-inline"> </small>! Et j'ai appris en même temps qu'on pouvait mettre une balise <code class="spip_code spip_code_inline" dir="ltr"><multi></code> dans les pages HTML... Yé<small class="fine d-inline"> </small>!</p> Article Précédent / Article Suivant 2012-05-18T15:32:28Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment457261 2012-05-18T15:32:28Z <p>désoler je n'arrive pas a faire fonctionner ton code ...<br class="autobr"> j'ai créer le fichier mes_fonctions.php dans squelettes<br class="autobr"> puisnavigation.html dans squelettes aussi<br class="autobr"> puis inlus ton code dans articles.html ..<br class="autobr"> j'ai louper quoi<small class="fine d-inline"> </small>?<br class="autobr"> Merci</p> Article Précédent / Article Suivant 2012-03-22T14:27:13Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment455587 2012-03-22T14:27:13Z <p>Un grand merci pour ta contribution elle marche très bien c'est exactement ce que je cherchais<small class="fine d-inline"> </small>!!</p> Article Précédent / Article Suivant 2011-12-02T13:33:45Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment452447 2011-12-02T13:33:45Z <p>Bonjour,</p> <p>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.</p> <p>Voici la solution :</p> <p>créer un fichier mes_fonctions.php dans votre répertoire squelletes :</p> <div class="precode"><pre class="spip_code spip_code_block language-php" dir="ltr" style="text-align:left;" data-language="php"><code><?php function extraire_numero ($titre) { if (ereg("([0-9]+)\.", $titre, $match)) { return $match[1]; } else return $titre; } ?></code></pre></div> <p>créer un fichier squellete : navigation.html dans le répertoire squellete</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code> <BOUCLE_next(ARTICLES){id_rubrique}{par num titre}{titre > (#TITRE*|extraire_numero)}{0,1}> <div align="left"><b>Article suivant : <a href='#URL_ARTICLE'>[(#TITRE|supprimer_numero)]</a></b></div> </BOUCLE_next> <BOUCLE_previous(ARTICLES){id_rubrique}{!par num titre}{titre < (#TITRE*|extraire_numero)}{0,1}> <div align="left"> <b>Article précédent :<a href='#URL_ARTICLE'>[(#TITRE|supprimer_numero)]</a></b></div> </BOUCLE_previous></code></pre></div> <p>rajouter ensuite la balise inclure suivante dans votre squellette article et la pagination fonctionne :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code>[(#INCLURE{fond=navigation}{titre=[(#TITRE*)]}{id_rubrique})]</code></pre></div> <p>Bon SPIP à tous</p> Article Précédent / Article Suivant 2010-10-07T03:53:43Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment435414 2010-10-07T03:53:43Z <p>J'oubliais l'include de rappel à placer dans le squelette article.html :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code>[(#INCLURE{fond=inc-mininav}{titre=[(#TITRE*)]}{id_secteur}{id_rubrique})]</code></pre></div> Article Précédent / Article Suivant 2010-10-07T03:39:49Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment435412 2010-10-07T03:39:49Z <p>Variante, en forme de liste. Propose également lien sur tête de rubrique et de secteur :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><div id="spip-mininav"> <h2><:navigation_rapide:></h2> <ul> <BOUCLE_precedent(ARTICLES){id_rubrique}{!par num titre}{titre < #TITRE*}{0,1}> [<li><:article_precedent_:><a href="#URL_ARTICLE" title="[(#SURTITRE): ][(#TITRE|supprimer_numero|trim)]">[(#SURTITRE): ](#TITRE|supprimer_numero)</a></li>] </BOUCLE_precedent> <BOUCLE_suivant(ARTICLES){id_rubrique}{par num titre}{titre > #TITRE*}{0,1}> [<li><:article_suivant_:><a href="#URL_ARTICLE" title="[(#SURTITRE): ][(#TITRE|supprimer_numero|trim)]">[(#SURTITRE): ](#TITRE|supprimer_numero)</a></li>] </BOUCLE_suivant> <BOUCLE_page1(RUBRIQUES){id_rubrique}{0,1}> <li><:accueil_rubrique_:><a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a></li> </BOUCLE_page1> <BOUCLE_secteur(RUBRIQUES){id_secteur}{0,1}> <li><:accueil_secteur_:><a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a></li></BOUCLE_secteur> </ul> </div></code></pre></div> <p>Là aussi bien sûr, ne pas oublier de numéroter les titres d'article.</p> Article Précédent / Article Suivant 2010-08-01T15:38:45Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment432958 2010-08-01T15:38:45Z <p>Merci Fabrice<small class="fine d-inline"> </small>!</p> <p>C'est exactement ce que je cherchais. <br class="autobr"> Plus besoin de me casser la tête...</p> Article Précédent / Article Suivant 2010-06-03T04:02:33Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment431179 2010-06-03T04:02:33Z <p>Bonjour,</p> <p>j'ai bien galéré avant de trouver cette solution (pourtant simple), donc je vous la livre.<br class="autobr"> Le but était ici de naviguer vers l'article suivant/précédent dans un tri par num titre.<br class="autobr"> Tout d'abord, j'ai créé un squelette pour pouvoir ensuite l'inclure au besoin : inc-previous_next.html</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><div align='center'> <BOUCLE_previous(ARTICLES){id_rubrique}{!par num titre}{titre < #TITRE*}{0,1}> <a href='#URL_ARTICLE'> <img class="no_image_filtrer" src="/plugins/auto/couteau_suisse/img/decoupe/precedent.gif" align="middle"> <multi> [fr]Précédent [en]Previous </multi> </a> </BOUCLE_previous> <BOUCLE_next(ARTICLES){id_rubrique}{par num titre}{titre > #TITRE*}{0,1}> <a href='#URL_ARTICLE'> <multi> [fr]Suivant [en]Next </multi> <img class="no_image_filtrer" src="/plugins/auto/couteau_suisse/img/decoupe/suivant.gif" align="middle"> </a> </BOUCLE_next> </div></code></pre></div> <p>Puis je l'ai inclus dans mon article :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code>[(#INCLURE{fond=inc-previous_next}{titre=[(#TITRE*)]}{id_rubrique})]</code></pre></div> <p>Et voilà. Ya plus qu'à.</p> Article Précédent / Article Suivant 2010-04-23T16:35:35Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment429698 2010-04-23T16:35:35Z <p>Merci beaucoup, <br class="autobr"> J'ai deja moins mal à la tete<small class="fine d-inline"> </small>!</p> Article Précédent / Article Suivant 2010-02-22T15:40:40Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment426771 2010-02-22T15:40:40Z <p>@Voldor<br> Essaie avec <code class="spip_code spip_code_inline" dir="ltr"> {1,1}</code> et non <code class="spip_code spip_code_inline" dir="ltr"> {0,1}</code>.</p> <p>Mathieu</p> Article Précédent / Article Suivant 2010-02-22T15:32:42Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment426769 2010-02-22T15:32:42Z <p>Juste pour info ça marche très bien avec les rubriques également, merci pour cette « contrib » très utile<small class="fine d-inline"> </small>!</p> <p>Mathieu</p> Article Précédent / Article Suivant 2009-02-18T11:02:45Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment413549 2009-02-18T11:02:45Z <p>Bonjour,</p> <p>Malgré tous mes efforts et essais nombreux, je n'arrive pas à obtenir l'article précédent selon l'ordre alphabétique.</p> <p>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.</p> <p>2 - Si j'enlève le =</p> <p>Le site public affiche :<br class="manualbr"># Erreur sur le site, boucle critère inconnu<br class="manualbr"># (articles)<br class="manualbr">Erreur MySQL<br class="manualbr">articles.id_article, articles.lang FROM spip_articles AS <code class="spip_code spip_code_inline" dir="ltr">articles</code> WHERE (articles.id_rubrique = '147') AND titre() AND (articles.statut = « publie ») AND (articles.date < NOW()) ORDER BY articles.titre DESC LIMIT 0,1<br class="manualbr">You have an error in your SQL syntax<small class="fine d-inline"> </small>; check the manual that corresponds to your MySQL server version for the right syntax to use near '() AND (articles.statut = «<small class="fine d-inline"> </small>publie<small class="fine d-inline"> </small>») AND (articles.date < NOW()) ORDER BY artic' at line 4<br class="manualbr"></p> <p>3 - Si je mets :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><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>--</code></pre></div> <p>Lorsque je suis sur l'article : 002.<br class="autobr"> Précédent : il n'affiche rien (alors qu'il existe un article 001.)</p> <p>Lorsque je suis sur l'article : 003.<br class="autobr"> Précédent : il n'affiche rien (alors qu'il existe un article 002.)</p> <p>**************</p> <p>Le site est en 1.9.2c<br class="autobr"> Quelqu'un peut-il m'aider<small class="fine d-inline"> </small>?</p> <p>Merci par avance<small class="fine d-inline"> </small>!</p> Article Précédent / Article Suivant 2009-01-31T16:21:12Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment412889 2009-01-31T16:21:12Z <p>Le '_article_principal' vient du nom de la boucle qui englobe la page html...</p> Article Précédent / Article Suivant 2009-01-31T16:17:37Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment412888 2009-01-31T16:17:37Z <p>J'ai remarqué un problème avec les boucles avec un classement par titre. La boucle suivant boucler (héhé<small class="fine d-inline"> </small>!) sur deux articles commençant par J'... Je me suis penché sur ce problème et j'ai pondu ça :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>[(#REM) On cherche l'emplacement de l'article dans les boucles ] <BOUCLE_art_prec_suiv(ARTICLES){id_rubrique}{par titre}> [(#ID_ARTICLE|=={#_article_principal:ID_ARTICLE}|?{[(#SET{place_article,#COMPTEUR_BOUCLE})]})] </BOUCLE_art_prec_suiv> #SET{place_article_precedent,#GET{place_article}|moins{2}} <div class="precedent_suivant"> <!-- le lien vers l'article précédent, par ordre alphabétique--> <BOUCLE_art_prec(ARTICLES){id_rubrique}{par titre}{#GET{place_article_precedent},1}> <a href='#URL_ARTICLE' class="precedent">< Spectacle précédent</a> </BOUCLE_art_prec> <!-- le lien vers l'article suivant, par ordre alphabétique--> <BOUCLE_art_suiv(ARTICLES){id_rubrique}{par titre}{#GET{place_article},1}> <a href='#URL_ARTICLE' class="suivant">Spectacle suivant ></a> </BOUCLE_art_suiv> </div></code></pre></div> <p>En espérant que ça en aide d'autres<small class="fine d-inline"> </small>!</p> Article Précédent / Article Suivant 2008-08-02T13:02:56Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment407820 2008-08-02T13:02:56Z <p>Bonjour Julien,</p> <p>Si vous aviez le temps de regarder mon problème ce serait très sympath.</p> <p>Patrick ROUDEIX, Provence Infos.<br class="autobr"> Manosque dans le 04 - 04 9272 8000 - 06 8151 0663 - provenceinfos@wanadoo.fr</p> <p>Bon week end quand même.</p> <p>- Site : <a href="http://www.andrebeaurepaire.com" class="spip_url spip_out auto" rel="nofollow external">www.andrebeaurepaire.com</a> <br>- SPIP 1.9.2<sup class="typo_exposants">d</sup> [11132] <br>- Plugins : Lecteur Multimédia en Flash (MP3,flv) <br>- <strong>Page avec articles préc et suivants : Rubrique TRAVAIL, sous rubrique Peinture</strong> <br>- <a href="http://www.andrebeaurepaire.com/spip.php?article2" class="spip_url spip_out auto" rel="nofollow external">http://www.andrebeaurepaire.com/spip.php?article2</a> <br>- Titre des articles : 01. xxxxxxx/ 02. yyyyyyyyyyy et suivants <br>- Code source :<br class="autobr"> <i>BOUCLE_navig(ARTICLES) <i>id_rubrique=6</i> <i>id_article</i><br class="autobr"> <small class="fine d-inline"> </small>!— le lien vers l'article précédent, par ordre alphabétique—<br class="autobr"> BOUCLE_art_prec(ARTICLES)<i>id_rubrique</i><i>titre<=#_principale:TITRE</i><i>exclus</i><i>par titre</i><i>0,1</i><i>inverse</i><br class="autobr"> div align="left"<br class="autobr"> a href='#URL_ARTICLE'><img src='https://contrib.spip.net/IMG/gauche.gif' alt="Tableau précédent" border="0" class="autobr"> /a<br class="autobr"> /div<br class="autobr"> /BOUCLE_art_prec<br class="autobr"> /td<br class="autobr"> td width="50%"<br class="autobr"> !-- le lien vers l'article suivant, par ordre alphabétique--<br class="autobr"> BOUCLE_art_suiv(ARTICLES){id_rubrique}{titre>#_principale:TITRE</i><i>exclus</i><i>par titre</i><i>0,1</i><br class="autobr"> div align=«<small class="fine d-inline"> </small>right<small class="fine d-inline"> </small>»<br class="autobr"> a href='#URL_ARTICLE' img src=«<small class="fine d-inline"> </small>../IMG/droite.gif<small class="fine d-inline"> </small>» alt=«<small class="fine d-inline"> </small>Tableau suivant<small class="fine d-inline"> </small>» border=«<small class="fine d-inline"> </small>0<small class="fine d-inline"> </small>»<br class="autobr"> /a<br class="autobr"> /div<br class="autobr"> /BOUCLE_art_suiv<br class="autobr"> /td<br class="autobr"> /tr<br class="autobr"> /table<br class="autobr"> /BOUCLE_navig</p> Article Précédent / Article Suivant 2008-07-15T11:43:06Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment407462 2008-07-15T11:43:06Z <p>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 : <i>mes_options.php</i> il est inscrit le code :<br> <br> <strong>$table_des_traitements['TITRE'][]='supprimer_numero(typo(%s))'<small class="fine d-inline"> </small>;</strong><br> <br> Il faut donc effacer ce code et alors ou peut utiliser les balises <strong><abbr title="supprimer_numero)">(#TITRE</abbr></strong></p> <p>Avec Spip 1.9.2<sup class="typo_exposants">d</sup> <br> Julien</p> Article Précédent / Article Suivant 2007-10-28T09:16:12Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment399583 2007-10-28T09:16:12Z <p>Installation sur <a href="http://www.arts-web-gallery.com/" class="spip_out" rel='nofollow external'>Art's Web Gallery</a> pour la visite de la galerie d'artistes : nickel</p> Article Précédent / Article Suivant 2007-04-12T09:45:53Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment392877 2007-04-12T09:45:53Z <p>ou plutôt, enlever le “=” de l'expression “<=” dans la boucle “BOUCLE_art_prec”</p> <p>Aussi, attention les espaces des titres ne sont pas supportés dans l'expression “#_principale:TITRE”</p> <p>=> Préfixez donc vos titres d'article par "01. le premier article", "02. le deuxième article", .... et utilisez ensuite “<abbr title="supprimer_numero)">(#TITRE</abbr>”</p> Article Précédent / Article Suivant 2007-04-11T22:04:16Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment392860 2007-04-11T22:04:16Z <p>Il y a un oubli : <br class="autobr"> il manque <i>exclus</i> dans la boucle « article précédent » :</p> <p><br class="autobr"> <BOUCLE_art_prec(ARTICLES)<i>id_rubrique</i><i>titre<=#_principale:TITRE</i><i>exclus</i><i>par titre</i><i>0,1</i><i>inverse</i>></p> <div>Article précédent : <a href="#URL_ARTICLE" rel='nofollow'>#TITRE</a></div> Article Précédent / Article Suivant 2007-01-19T20:11:55Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment390384 2007-01-19T20:11:55Z <p>Il faut trier les boucles ARTICLES (BOUCLE_prec et BOUCLE_suiv) avec un critère <code class="spip_code spip_code_inline" dir="ltr">{par }</code>, sinon, il n'affiche rien d'aléatoire mais bien les articles par id_article.</p> Article Précédent / Article Suivant 2006-06-29T23:52:43Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment386483 2006-06-29T23:52:43Z <p>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).</p> <p>J'ai essayé ça, mais ça ne marche pas :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><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></code></pre></div> <p>J'arrive bien (enfin<small class="fine d-inline"> </small>!) à 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.</p> <p>Comment faire<small class="fine d-inline"> </small>?</p> <p>Merci</p> Article Précédent / Article Suivant 2005-11-03T17:59:26Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment384281 2005-11-03T17:59:26Z <p>Un tri qui serait particulièrement intéressant est le <code class="spip_code spip_code_inline" dir="ltr">{par num titre}</code> (basé sur l'ordre arbitraire donné dans le titre), mais ça ne fonctionne pas avec <code class="spip_code spip_code_inline" dir="ltr">{titre>#TITRE}</code> pour des listes supérieures à 10 items (cf. <a href="http://thread.gmane.org/gmane.comp.web.spip.user/72563" class="spip_url spip_out" rel='nofollow external'>http://thread.gmane.org/gmane.comp....</a>).</p> <p>Il y a bien <a href='https://contrib.spip.net/Galerie-photo-tout-Spip' class="spip_in" rel='nofollow'>une solution proposée par rpapa</a>, mais elle est un peu compliquée.</p> <p>François</p> > Article Précédent / Article Suivant 2005-09-18T20:26:21Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment383467 2005-09-18T20:26:21Z <p>Moi, je voudrais avoir « Brève suivante » / « Brève précédente », et ce qui est indiqué ne marche pas.</p> <p>J'ai essayé aussi avec quelque chose du style <i>id_breve>#_breve_en_cours#ID_BREVE</i>, mais je n'arrive pas à trier, spip transformant ça en « ...WHERE (breves.id_breve > 'id_breve')... ».</p> <p>Une petite idée, peut-être<small class="fine d-inline"> </small>?</p> > Article Précédent / Article Suivant 2005-07-05T00:42:52Z https://contrib.spip.net/Article-Precedent-Article-Suivant#comment382010 2005-07-05T00:42:52Z <p>Excellent,</p> <p>Testé avec succés ...</p> <p>@lexandre</p>