SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 141 visiteurs en ce moment

Accueil du site > Navigation > Tris sur choix > Choix de l’ordre de tri des articles par les visiteurs

Choix de l’ordre de tri des articles par les visiteurs

Page rubrique.html & page recherche.html

5 décembre 2006 – par Minga – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

6 votes

Choix du tri par date / par popularité des articles d’un rubrique par les visiteurs Choix de différents ordres de tri pour les résultats des recherches.

Des exemples avaient déjà étés données pour des versions antérieures de SPIP, mais la 1.9 permet de faire ça avec bien plus de facilité : dans le premier exemple ci-dessous, la boucle BOUCLE_articles du squelette rubrique.html a été modifié pour offrir aux visteurs le choix entre un tri par date et un tri par popularité.

Dans cet exemple simple, les articles sont, par défaut, classés par popularité. pour les classer par date, un lien renvoie sur la même page (rubrique.html), avec un paramètre de plus dans l’URL : le paramètre « classement ». Celui-ci sert ensuite de critère de test à la fois pour afficher le classement actuel et pour modifier l’ordre de tri. On passe également dans l’URL l’ancre pagination #ANCRE_PAGINATION pour permettre une navigation agréable.

Pour utiliser ce code tel quel, il vous faut également ajouter à vos squelettes un fichier de langue local_fr.php qui contiendra (en plus des autres chaïnes), les textes correspondant aux ordres de tri utilisés :

Enfin, je précise que ce (petit) changement est compatible avec l’existant, et n’oblige pas à un recalcul complet par vidage du cache.

Tri des résultats d’une recherche

Tri du résultat d'une recherche

Sur le même principe, voici une page de résultats d’une recherche offrant au visiteur le choix de l’ordre de tri. C’est à peine plus compliqué :

François Schreuer avait déjà proposé une conribution à ce sujet en 2005, mais il semblait possible, le progrès aidant ( ;-), de faire à la fois plus compact et plus riche fonctionnellement.

On notera que l’astuce utilisée pour gérer l’ordre de tri croissant ou décroissant utilise la nouvelle syntaxe disponible pour {inverse} :

Ce paramètre-là peut s’utiliser aussi bien pour les articles trouvés que pour les brèves, messages de forums, etc. Ce n’est pas le cas pour tous les paramètres : il faut que le champ existe en base de données pour le type d’objet considéré.

Afin de fonctionner même si javascript est désactivé, un bouton « submit » est affiché uniquement dans ce cas, grâce au tag <noscript>.

Enfin, il convient bien entendu d’ajouter les chaînes de caractères adéquates dans les fichiers de langues.

Voir en ligne : Exemple : les rubriques de revoltes.free.fr

P.-S.

Minga
« Parce que le vrai courage est de faire ce qui est juste »

Retour en haut de la page

Vos commentaires

  • Le 12 juillet 2010 à 13:11, par Julie En réponse à : Choix de l’ordre de tri des articles par les visiteurs

    Bonjour à tous,

    J’ai un peu modifié le code fourni par Minga pour faire utiliser ce tri sur un spip 2.1.

    J’espère que ca fonctionnera aussi pour vous ....

    1.    <B_articles>
    2.    [<div class="cartouche">
    3.       <form id="tri" action="#SELF" method="get" name="tri">
    4.          <h1 class="surtitre"><:resultats_recherche:> <b>«(#RECHERCHE)»</b>, <:tries_par:>
    5.             <input type="hidden" name="page" value="recherche" />
    6.             <input type="hidden" name="recherche" value="#RECHERCHE" />
    7.             <select class="" name="tri" onchange="submit(); " class="spip_bouton">
    8.                <option value="points"[(#ENV{tri}|=={points}|?{' selected="selected" class="selected"'})] /><:pertinence:></option>
    9.                <option value="popularite"[(#ENV{tri}|=={popularite}|?{' selected="selected" class="selected"'})] /><:popularite:></option>
    10.                 <option value="visites"[(#ENV{tri}|=={visites}|?{' selected="selected" class="selected"'})] /><:nb_de_visites:></option>
    11.                 <option value="date_redac"[(#ENV{tri}|=={date_redac}|?{' selected="selected" class="selected"'})] /><:date_de_redaction:></option>
    12.                 <option value="date"[(#ENV{tri}|=={date}|?{' selected="selected" class="selected"'})] /><:date_de_publication:></option>
    13.             </select>
    14.             <input type="checkbox" name="ordre" [(#ENV{ordre}|=={on}|?{'checked '})]onchange="submit();">[(#ENV{ordre}|?{&uarr;,&darr;})] </input>
    15.             <noscript>
    16.                <input type="submit" value="<:trier:>" class="spip_bouton" />
    17.             </noscript>
    18.          </h1>
    19.       </form>
    20.    </div>]
    21.    <div class="liste-articles">
    22.       #ANCRE_PAGINATION
    23.       <h2 class="invisible"><:articles:></h2>
    24.       <ul>
    25.          <BOUCLE_articles(ARTICLES) {recherche} {par #ENV{tri,points}} {inverse #ENV{ordre,0}} {pagination}>
    26.          <li>
    27.          <h3 class="titre"><a href="#URL_ARTICLE" title="#DESCRIPTION">#TITRE</a></h3>
    28.          <small>[<a title="<:pertinence:>: #POINTS - <:visites:>: #VISITES - <:popularite:>: #POPULARITE[ - <:date_de_publication:>: (#DATE|affdate)]">(#DATE_REDAC|affdate|sinon{#DATE|affdate})</a>][, <:par_auteur:> (#LESAUTEURS)]</small>
    29.          </li>
    30.          </BOUCLE_articles>
    31.       </ul>
    32.       [<p class="pagination">(#PAGINATION)</p>]
    33.    </div>
    34.    </B_articles>
    35.    </B_articles>
    36.       <p><:aucun_article:></p>
    37.    <//B_articles>

    Répondre à ce message

  • Le 6 décembre 2008 à 22:23, par Thierry En réponse à : Choix de l’ordre de tri des articles par les visiteurs

    Bonjour,

    il doit y avoir un truc que je n’ai pas pigé mais ça ne fonctionne pas chez moi. Quand je clique sur trier par date, la page se réouvre mais c’est toujours le « par date » qui s’affiche comme proposition de tri et non le « par popularité ». La logique voudrait que si la page s’ouvre par un trier par date, elle propose un trier par popularité. Puis, s’il elle s’ouvre triée par popularité, elle devrait proposer un trier par date.

    J’ai pourtant fait un copié collé du code.

    Répondre à ce message

  • Le 22 mars 2008 à 12:02, par ? En réponse à : Choix de l’ordre de tri des articles par les visiteurs

    ça a l’air bête mais comment inverser inverse (#ORDRE| ?0,1)
    because il es inversé dans un fichier inclus (bizare non ?)

    Répondre à ce message

  • Le 5 décembre 2006 à 20:12, par cent20 En réponse à : Choix de l’ordre de tri des articles par les visiteurs

    • Le 5 décembre 2006 à 23:13, par Minga En réponse à : Choix de l’ordre de tri des articles par les visiteurs

      Oui : j’en parles dans ma contribution. Nénamoins, la précedente date de 2005 : on peut désormais, avec les dernières versions de SPIP, faire plus « propre » et bien plus simple.

      Minga

      « Parce que le vrai courage est de faire ce qui est juste »

    • Le 2 janvier 2007 à 20:51, par Pi r En réponse à : Choix de l’ordre de tri des articles par les visiteurs

      Carrément ! ça c’est une trouvaille !
      plus de php, plus de boucles à dupliquer
      3 fois moins de code
      je rêve...
      Merci beaucoup, c’est juste... juste !

    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

  • Rainette, la méteo au quotidien

    31 juillet 2009 – 60 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet d’afficher les conditions et les prévisions météorologiques d’une ville donnée à partir du flux xml fourni par le site weather.com(r).

  • Thélia

    26 juin 2007 – 838 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Une approche basée sur l’utilisation conjointe des deux logiciels SPIP et Thélia pour la réalisation de sites de publication et de vente en ligne

  • MediaBox

    10 mai 2010 – 178 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Aperçu La MediaBox est une Boîte multimédia polyvalente et personnalisable. Le plugin est basé sur la librairie moderne ColorBox, qui a été enrichie et adaptée pour SPIP. Par défaut, mediabox propose 5 habillages. Il est assez facile d’en créer de (...)

  • Navigation AJAX

    31 janvier – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)

  • Squelettes IENSP-X version Pleine Page pour SPIP 2.1

    8 décembre 2008 – 11 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Version 3.2 pour SPIP 2.1