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 .
Discussions par date d’activité
12 discussions
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.
Répondre à ce 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 ?
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 : |