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 !
<BOUCLE_principale(ARTICLES){id_article}>
<!--ici l'affichage concernant l'article en cours (#TEXTE, #NOTES et autres) -->
<!-- le lien vers l'article précédent, par ordre chronologique} -->
<BOUCLE_precedent(ARTICLES){age_relatif>=0}{par date}{inverse}{1,1}>
Article précédent : <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_precedent>
<!-- le lien vers l'article suivant, par ordre chronologique-->
<BOUCLE_suivant(ARTICLES){age_relatif<0}{par date}{0,1}>
Article suivant : <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_suivant>
<!-- fin de votre boucle article-->
</BOUCLE_principale>
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).
<BOUCLE_principale(ARTICLES){id_article}>
<!-- ici l'affichage concernant l'article en cours (#TEXTE, #NOTES et autres) -->
<!-- le lien vers l'article précédent, par ordre alphabétique-->
<BOUCLE_art_prec(ARTICLES){id_rubrique}{titre<=#_principale:TITRE}{par titre}{0,1}{inverse}>
<div>Article précédent : <a href='#URL_ARTICLE'>#TITRE</a></div>
</BOUCLE_art_prec>
<!-- le lien vers l'article suivant, par ordre alphabétique-->
<BOUCLE_art_suiv(ARTICLES){id_rubrique}{titre>#_principale:TITRE}{exclus}{par titre}{0,1}>
<div align='right'>Article suivant : <a href='#URL_ARTICLE'>#TITRE</a></div>
</BOUCLE_art_suiv>
<!-- fin de votre boucle article-->
</BOUCLE_principale>
Discussions par date d’activité
12 discussions
Bonjour
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)
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.
Quelqu’un peut-il m’aider ? merci (pour les lapins)
Répondre à ce message
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 :
Répondre à ce message
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
Puis je l’ai inclus dans mon article :
Et voilà. Ya plus qu’à.
Merci Fabrice !
C’est exactement ce que je cherchais.
Plus besoin de me casser la tête...
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.
J’oubliais l’include de rappel à placer dans le squelette article.html :
@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
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 :
créer un fichier squellete : navigation.html dans le répertoire squellete
rajouter ensuite la balise inclure suivante dans votre squellette article et la pagination fonctionne :
Bon SPIP à tous
Un grand merci pour ta contribution elle marche très bien c’est exactement ce que je cherchais !!
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
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 !
Merci beaucoup,
J’ai deja moins mal à la tete !
Répondre à ce message
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>
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”
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
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’> /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:TITREexcluspar 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
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,1You 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 :
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 !
@Voldor
Essaie avec
{1,1}
et non{0,1}
.Mathieu
Répondre à ce message
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 ’_article_principal’ vient du nom de la boucle qui englobe la page html...
Répondre à ce message
Installation sur Art’s Web Gallery pour la visite de la galerie d’artistes : nickel
Répondre à ce message
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
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 :
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
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
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |