Ordonner soi même les articles

All contributions published for previous SPIP versions

permet une méthode de tri des articles “à la main”

Un rédacteur de spip m’a récemment fait remarquer qu’il ne pouvait pas ordonner lui même l’apparition des articles dans le site qu’il administrait. Et après réflexion il paraît intéressant de vouloir trier soit même les articles, sans passer par les critères par date, par id_article, par titre.

Un premier exemple de mise en application qui peut venir à l’esprit est la mise à l’honneur de tel ou tel article. Enfin, autre point positif, permettre cette souplesse de gestion profite aux rédacteurs les moins patients.

I ] Du point de vue du rédacteur

Les articles peuvent être réorganisés lors de la navigation dans une rubrique, s’il y a plusieurs articles publiés. L’exemple ci dessous représente une implémentation de cette nouvelle fonctionnalité, les deux bouton permettent de faire « remonter » ou « redescendre » l’article d’un cran (les numéros rouges ont été rajoutés par mesure de compréhension pour les exemples à venir).

-   Et si je publie un nouvel article ?
L’article obtiendra comme nouvelle position une position « supérieure » à la précédente. Par exemple ici si l’article en cours de rédaction est publié, il aura comme indice de position « 5 »

-   Et si je dépublie un article?
Les indices des articles publiés seront recalculés.
Par exemple si on enlève l’article d’indice 1 :
l’article d’indice 2 deviendra l’article d’indice 1
l’article d’indice 3 deviendra l’article d’indice 2
etc...

II ] Du point de vue du client

Pour obtenir le même résultat au niveau de l’ordre des articles du côté client, un nouveau critère a été développé pour trier les résultats de la boucle d’articles.
Ce critère a pour nom par position.
Exemple :

<BOUCLE_toto(ARTICLES){id_rubrique=6}{par position}{inverse}>
#TITRE<br>
</BOUCLE_toto>

On obtiendra ainsi la liste des titres des articles de la rubrique 6 ordonnés par position.

III ] Installation

Tout est dans l’archive. Il suffit copier les fichiers, ensuite de se logger sous l’interface d’admin, puis de faire pointer le navigateur vers le fichier pos_install.php. Celui ci va installer une nouvelle table contenant les indices de position en la remplissant pour s’adapter directement à vos articles existants.

IV] Désinstallation

Vous pouvez supprimer la table spip_ordre_articles dans la base de donnée et remettre les fichiers originaux spip à la place des versions modifiées.

V] Exemple

Cette fonctionnalité a été mise en place sur le site web de l’entreprise AIC informatique, à l’adresse http://www.aic-informatique.com .

Précisions pour l’installation :

Une fois l’archive décompressée et téléchargée, on obtient une arborescence de fichiers.

-  Le contenu du dossier spip (fichier “inc-critère.php3”) est donc a copier via ftp sur le répertoire racine du site (là où se trouve tes fichiers articles - rubriques).

-  Le contenu du dossier ecrire (fichiers articles -> pos_install) est a copier dans le dossier ecrire de ton site.

Dans toutes ces manipulations des fichiers seront remplacés, ce qui est normal.

Enfin, pour que le nouveau script soit mis en place, il faut executer le script pos_install.php en tapant dans le navigateur http://adressedetonsite/ecrire/pos_install.php.

Discussion

12 discussions

  • 2

    Merci pour cette contrib, tu m’enlèves une épine du pied.
    ça marche du premier coup.

    Juste une petite modif : quand j’allais dans la page “tous vos articles” (articles_page.php) j’avais un message d’erreur :
    “Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\internet\easyphp1-8\www\sarka_spip\ecrire\inc_presentation.php on line 774”

    En bidouillant le fichier incprsentation(c’est mon premier site en spip, je connais pas mieux le php)j’ai copié la condition de la ligne 883 et je l’ai adapté à la ligne 774, ce qui donne :
    if(ereg(“naviguer”,$_SERVER[“SCRIPT_NAME”]))
    $nombre_art = mysql_num_rows($total_rubrique);

    :) vous voyez un peu mon niveau je sais même pas mettre les accolades ouvrantes et fermantes avant “$nombre” et après “rubrique);”...

    Merci encore pour cette contrib. 2 questions en passant :
    Peut-on interdire les rédacteurs de modifier l’ordre des articles et réserver ça aux administrateurs ?
    Je rejoins Remi : comment pourrait-on l’adapter aux rubriques ?

    • Bonsoir,

      Contrib très intéressante. mais j’ai eu le même problème en ligne 774 et n’ai pas réussi à corriger la condition.

      Donc je suis preneur de toute info + détaillée sur le correctif.

      Je suis également intéressé pour le généraliser aux rubriques, voire aux brèves, sites, ...

      Merci,
      Pierre

    • Bonjour et merci d’avoir signalé le bug.

      J’ai fait un correctif que je publierais bientot, et qui revoit quelques portions de code.

    Reply to this message

  • -  Plus besoin de détourner le titre à des fins de tri et de renommer tous les titres des autres articles en cas d’insertion ou de changement de position.
    -  Plus besoin de préciser aux rédacteurs d’écrire scrupuleusement “1. ”.
    -  Plus besoin de filtrer le titre avec “supprimer_numero”.

    A quand la même chose pour les rubriques ?

    Ne faudrait-il pas que ce soit le critère d’ordre par défaut dans les boucles ?

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom