Ordonner soi même les articles

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

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

  • 1

    J’exhume cet article pour demander si une version de ce plugin ou bien de TriMots existe et fonctionne pour un spip 2 ?
    La demande d’un tri manuel des articles est de plus en plus importante de la part des mes clients et j’avoue n’avoir ni le temps ni les compétences pour le faire moi-même.
    Merci d’avance !

    • Salut,

      Je n’ai pas continué à développer cette contrib qui pourtant avait quelques côtés pratiques. Je ne bosse plus dans la même boîte, je n’utilise plus trop spip, j’essaye de mettre de temps en temps mon autre contrib qui fait l’intégration de xhina.

      Pour ton problème je n’ai que cette solution à proposer
      http://www.spip.net/fr_article2035.html

      bonne journée
      Jérémie

    Répondre à ce message

  • Bonjour,

    Le plug-in répond pile-poil à mon besoin, ça à l’air d’être nickel.
    Le truc c’est que j’aimerais l’utiliser avec une version 2.0 de SPIP.
    Est-ce possible ?
    Merci d’avance.

    Répondre à ce message

  • 7

    Je pense avoir suivi les instructions (très simples) à la lettre.
    Mais déjà, je n’ai pas de fichier inc.php3, d’où une floppée de message d’erreurs lors de l’exécution du script pos_install.php ; ensuite, in y a un problème avec l’utilisateur OBCD.
    Ensuite j’ai aussi l’impossiblité d’ouvrir inc_connect.php3
    Bref, j’ai dû oublier un gros truc, mais je ne vois pas ...
    Je suis avec SPIP 1.9.0.
    Merci de toute idée, parce que c’est frustrant de ne pouvoir classer les articles à l’affichage.
    Didier.

    • Je complète : j’ai fait les choses à la main (je n’avais que 4 articles dans 3 rubriques).
      J’ai créé la table, je l’ai remplie ...
      le pb du inc_connect.php3 venait du fait que le mien s’appelle .php (je n’y ai pas touché pourtant).
      Maintenant, je n’ai toujours pas les flèches pour modifier l’ordre des articles, et ils ne sont pas triés dans l’ordre de la nouvelle table.
      Des idées ?

    • Bonjour,

      Je suppose que cette contrib n’est pas compatible avec la version 1.9 de spip.

      Moi qui suis également sous cette version, ça m’intéresserait de savoir si une future version est prévue pour spip 1.9 ? Le contraire serait dommage, c’est vraiment quelque chose qui manque a spip.

    • J’ai fait le nécessaire ce we pour faire fonctionner cette contrib sur mon site avec la version 1.9. Si vous êtes interressés par le détail des mises à jour, envoyer moi un mail à rguevel@hotmail.com et je vous ferai parvenir mes fichiers modifiés.

    • Bonjour, je serais super interessé par les fichiers modifiés pour spip 1.9.

      Si vous pouviez me donner en réponse un lien pour les telecharger, ce serait vraiment génial.

      Merci d’avance

    • Salut,
      Je suis intéressée par les fichiers adaptée à Spip 1.9
      J’ai envoyé un mail comme demandé, mais je n’ai pas eu de réponse. Peut être mon mail a-t-il été considéré comme du spam...
      Ce serait très gentil de me les envoyer !
      Merci !

    • arf...
      mon e-mail : contact@maillefaud.net

    • Salut, une version un peu différente mais qui permet de trier les articles avec des tris personalisables est disponible en plugins là :
      http://zone.spip.org/trac/spip-zone...

      et telechargeable là en attendant mieux :
      http://zone.spip.org/files/spip-zon...

    Répondre à ce message

  • Bonjour, cette contrib fonctionne très bien, par contre je viens de remarquer que lors de la sauvegarde de la base de données, la table spip_ordre_articles n’est pas exportée. Certains articles n’étaient alors plus visibles sur mon site après restauration.
    J’ai ajouté la ligne suivante dans le fichier export_all.php3 :

    après :
    export_objets($query, « syndic_article », $f, $gz, $etape, 13, _T(’info_sauvegarde_articles_sites_ref’)) ;

    ajouter :
    $query = « SELECT * FROM spip_ordre_articles ».$debug_limit ;
    export_objets($query, « ordre_articles », $f, $gz, $etape, 13, _T(’info_sauvegarde_articles_ordres’)) ;

    et dans le fichier inc_import.php3 :
    après :
    ’type_document’ => ’spip_types_documents’

    ajouter :
    ,’ordre_articles’ => ’spip_ordre_articles’ (ne pas oublier la virgule)

    il faut peut etre modifier d’autres fichiers ? merci de m’en informer si c’est le cas, et merci beaucoup pour cette contrib !

    Répondre à ce message

  • Bonjour,

    Je n’ai pas encore installé le patch même s’il m’intéresse vraiment. Comme je suis débutante, avant j’aurais quelques questions à poser.

    Déjà, notre site étant pratiquement fini, si j’installe ce patch, j’espère n’avoir aucune perte de données au niveau contenu et graphisme...

    Ensuite, il y a un passage que je ne comprend pas :

    « 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. »

    Supprimer la table, ok, ça je sais faire. Mais la suite... Je suis larguée : qu’est-ce que vous appelez « les fichiers originaux spip » et « les version modifiées » ?

    Répondre à ce message

  • Merci pour ce patch ! :)

    Petit bug lorsqu’on utilise des bases ayant un autre préfixe. (Typiquement lorsqu’on a plusieurs sites spip et droit à une seule base SQL)

    Solution : Dans inc_presentation.php3, changer mysql_query par spip_query et mysql_num_rows par spip_num_rows

    Note pour pos_install :
    Il ne sait gérer que les noms de base non modifés. Donc avant de l’executer il vous faudra le modifier si vos tables ont des préfixes personnalisés.

    Répondre à ce message

  • J’avais 3 articles, j’en ai mis un à la poubelle : défaut d’affichage pour ordonner les articles et impossibilité de changer l’ordre.

    En regardant de plus près, la table qui permet d’ordonner les articles n’est pas maj après mise à la poubelle.

    Je crois que le problème est bloquant s’il y a deux articles.

    Répondre à ce message

  • 6

    Bonjour !
    depuis que j’ai installé cette belle contrib, j’ai le message suivant :

    # Erreur(s) dans le squelette

    * (articles)
    Erreur MySQL
    SELECT articles.titre, articles.id_article, articles.descriptif, articles.texte, articles.chapo, articles.lang FROM spip_articles AS articles WHERE (articles.id_rubrique = ’5’) AND 0=0 AND (articles.lang = ’fr’) AND articles.statut=’publie’ ORDER BY position LIMIT 0,10
    Unknown column ’position’ in ’order clause’
    AIDE,
    * (articles)
    Erreur MySQL
    SELECT articles.id_article FROM spip_articles AS articles WHERE ((articles.id_rubrique IN (5))) AND (articles.lang = ’fr’) AND articles.statut=’publie’ ORDER BY position
    Unknown column ’position’ in ’order clause’

    Comment regler ce bug ?

    • je me reponds a moi-même :

      Il suffisait de ne rien faire !

      Ca me semblait bizarre car le message d’erreur n’est pas apparu tout de suite, au debut ca marchait très bien.

      Je pense que c’est a cause des problemes de serveur qu’a eu mon hebergeur (ouvaton.coop) aujourd’hui...

      Tout est rentré dans l’ordre.

    • encore moi...

      en fait le probleme est intermittent, et après reflexion je ne crois pas que cela soit dû au serveur...

      alors si qq’un a une idée...

    • Bonjour,

      Cela parait bizarre, en effet pour votre problème, le filtre position (dans le fichier inc-criteres.php3) ne semble pas etre en place.

      Avez vous copié le fichier inc-criteres.php3 au bon endroit (à la racine du site) ? J’ai vérifié dans l’archive et normalement cela devrait fonctionner.

      A+

    • oui le fichier est au bon endroit...
      je ne comprends pas...
      ca ne pourrais pas etre un pb du coté de MySQL ?

    • Hélas je ne comprend pas non plus...

      Pouvez vous me donner l’adresse de votre site ?

      Est ce que tout marche bien du côté administration ?

      Vous pouvez m’écrire sur jeremie.serme[-at-]aic-informatique.com

    • toujours la meme erreur

      Erreur MySQL
      SELECT articles.id_article, articles.lang FROM spip_articles AS articles WHERE (articles.id_rubrique = '14') AND articles.statut='publie' ORDER BY position
      Unknown column 'position' in 'order clause'

      debug -> //requete :

      06         $result = spip_abstract_select(
      07         array("articles.id_article",
      08         "articles.lang"), # SELECT
      09         array("spip_articles AS articles"), # FROM
      10         array("(articles.id_rubrique = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
      11         "articles.statut='publie'"), # WHERE
      12         '', # GROUP
      13         array('position'), # ORDER
      14         '', # LIMIT
      15         '', # sous
      16         '', # HAVING
      17         'articles', # table
      18         '_par_position', # boucle
      19         ''); # serveur
      20     $t0 = "";
      21     $SP++;

      J’ai tout essayé (je debute...)

      la table spip_ordre_articles existe bien dans ma base et contient les bonnes données.

      Je crois que l’erreur vient de inc-critères.php3 mais je n’y ait pas touché et si ca marche pour vous ca devrait en etre de meme pour moi...

      mon site http://aspe.ouvaton.org/spip

    Répondre à ce message

  • Bonjour,

    La contrib a tété retirée un petit moment, ce qui m’a permis de faire mes modifs.

    J’ai donc corrigé trois bugs principaux.

    -  bugs sur changement de statut avec les « puces »
    -  bugs sur pages « afficher tous les articles »
    -  bugs lors de changement de rubrique d’un article

    Il y a également un ajout : Fichier inc-presentation compatible avec BlOog pour spip 1.8.2 (testé par un spipeur : Alexandre Bronsard).

    Pour l’avenir de cette contrib, celle ci est déjà prête pour la version prochaine, avec ajout des scriptaculous.
    Cette version vous sera bientot présentée par Mortimer.

    En attendant vous pouvez utiliser celle ci, en la mettant à jour en copiant collant les nouveaux fichiers si vous l’avez déjà installée (sinon revoyez la procédure d’installation).

    Répondre à ce message

  • Voici des techniques qui permettent d’alléger l’interface en se dispensant des flèches : sur ces démos, il suffit de cliquer-glisser pour déplacer les éléments de la liste.

    http://wiki.script.aculo.us/scripta...
    http://www.gregphoto.net/index.php/...
    http://www.gregphoto.net/sortable/

    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 :

  • 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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom