Dépublie

Dépublie des articles à une date prédéfinie, soit automatiquement avec une durée établie au moment du changement de statut en publication, soit manuellement.

En préambule il est nécessaire de se souvenir que personne n’apprécie se retrouver sur une page d’erreur 404. Pensez à vous servir parcimonieusement de cette possibilité de dépublier vos articles car les moteurs de recherche ne pourront évidemment pas indexer correctement votre site. Un site vivant conserve les strates de son existence et c’est plutôt plaisant, encore une fois, mieux vaut avoir un système d’archivage que de suppression. Maintenant que vous êtes prévenu…

Dépublier des articles automatiquement.

Dépublie est un plugin avec un code très simplifié en SPIP3, qui se veut pédagogique et facile à comprendre. Il effectue pratiquement les mêmes tâches que le plugin Dépublications pour SPIP2.
Il ne porte pas le même nom car il ne possède qu’une seule table dans la base de données qui peut être éventuellement étendue aux auteurs ou à d’autres objets par la suite, il ne traite actuellement que les articles.
Une table unique avec le couple générique objet/id_objet.

L’écriture de son code est entièrement refaite et est originale pour profiter du système des pipelines des formulaires CVT

il se greffe ainsi au formulaire dater.
http://programmer.spip.net/Passage-d-arguments-aux-fonctions

Simple affichage d’une ligne supplémentaire dans le formulaire dater avec l’inclusion d’un bout de squelette.

Installation

Comme tous les plugins, voir http://www.spip.net/fr_article3396.html

Configuration

Le plugin Dépublie dispose d’une configuration spécifique accessible depuis la page des plugins.
On choisira d’afficher la ligne supplémentaire du formulaire, le input des dates, uniquement dans les articles de certains secteurs ou rubriques.

La page de configuration de Dépublie.

Si l’on souhaite que l’article prenne automatiquement une date de dépublication, on remplira la durée de publication voulue sinon on le fera manuellement et ponctuellement. Au changement de statut de l’article, la date de dépublication sera enregistrée automatiquement en base avec la durée configurée.

Rappel sur les statuts SPIP :

  • Statut « à la poubelle » : l’article est conservé 24 heures puis effacé définitivement de la base.
  • Statut « refusé » : l’article est retiré de l’espace public mais il est conservé en base de données.

Étendre à d’autres objets

L’écriture de la tâche automatique de dépublication dans genie/depublier.php permet d’en faire profiter d’autres objets. Ainsi vous pouvez mettre dans la table spip_depublies divers couples de style (objet/id_objet) comme (mot/32) ou (auteur/456) avec les dates de dépublication de votre choix en utilisant les outils appropriés.

Tester la dépublication

Pour vérifier les dépublications, il suffit de se rendre sur la page ecrire/?exec=job_queue
et lancer la tâche depublier.

Discussion

24 discussions

  • Bonjour,
    Je cherche un système de dépublication, mais ayant noté la remarque sur l’erreur 404 en début d’article, serait-il facile de modifier ce plugin afin de, non pas modifier le statut, mais retirer un mot-clé à l’objet, toujours à une date donnée.
    Cela permettrait de retirer l’article d’un affichage « Actualité » par mots-clés, mais de le laisser en ligne.
    Merci

    Répondre à ce message

  • 1

    Bonjour,

    en SPIP 3.2.0 [23778] et Dépublie 1.2.6, lorsque je me rend sur la page ecrire/ ?exec=job_queue
    et je ne trouve pas la tâche depublier.

    J’ai, depuis longtemps activé les date de rédaction antérieur, est-ce que cela pourrait avoir un rapport avec çà ?

    Merci d’avance,

    Cordialement,

    Hervé

    • Je me réponds car en fait tout fonctionne bien !

      Désolé, mais j’ai fait une erreur de débutant :
      pour faire mes tests de ce plugin, j’ai logiquement travaillé sur une copie locale du site, mise à jour depuis phpMyAdmin, mais j’ai oublié de changer l’URL d’origine par l’URL locale dans « Identité du site ».

      Résultat :
      Je suis aller en espace publique et j’ai ajouté /ecrire/ ?exec=job_queue et j’ai logiquement atterri sur https://URL_du_site_en_ligne/ecrire/?exec=job_queue, alors que le plugin n’est pour l’instant installé qu’en local.

    Répondre à ce message

  • 5

    Bonjour,

    Est-il judicieux, possible, envisageable d’avoir une balise #DATE_DEPUBLICATION qui irait chercher bêtement la date de dépublication de l’objet dans lequel elle est appelée ?

    Répondre à ce message

  • 1
    Jim Wanderscheid

    Merci pour ce plugin qui fonctionne bien sur 3.1.6.
    Toutefois, en permettant de choisir l’heure de dépublication et en ne lançant le job cron que toutes les 12 heures, c’est un peu contradictoire.

    Personellement, j’ai accéléré en remplaçant la ligne 216 de /depublie/depublie_pipelines.php :

    $taches[’depublier’] = 60*60*12 ; // 2 fois par jour

    par :

    $taches[’depublier’] = 600 ; // toutes les 10 minutes

    Pourquoi ne pas permettre de modifier le délai dans les options ?

    Répondre à ce message

  • 5

    Bonjour !

    J’administre temporairement un site municipal sous SPIP 3.0.17.
    L’intégration d’une dépublication serait un vrai plus, j’installe le plugin (v1.1.8) sans soucis, mais à l’activation j’obtiens au moment de l’enregistrement d’un nouvel article :

    "1 Erreur SQL 1146
    Table ’base.spip_depublies’ doesn’t exist
    SELECT date_depublie,statut FROM spip_depublies WHERE id_objet=2518 AND objet=’article’

    J’ai déjà tenté la désinstallation/réinstallation... Je n’ai pas trouvé dans les comm précédents Comment résoudre ça ?
    Merci d’avance !

    • Je ne reproduis pas avec une installation du plugin sur un SPIP 3.0.15 [21231] propre sans aucun autre plugin et tout semble fonctionner correctement.

      Comme piste de debug, essayez comme il est dit ici sur le #forum486867 ou bien, pour tester d’où vient le problème il faut désactiver temporairement tout vos plugins, en tout cas ceux faits maison qui peut-être ont oublié de renvoyer le flux d’un pipeline comme declarer_tables_interfaces ou declarer_tables_auxiliaires ?

    • Alors !
      Je suis passé en 3.0.22. J’ai désactivé tous mes plugins. Réinstallé Depublie, et cette fois plus de message d’erreur :)
      Reste à comprendre maintenant pourquoi il ne m’affiche pas de ligne « dépublication » sous la ligne « date de création », que je renseigne l’identifiant de secteur/rubrique ou pas... Mais c’est sans doute de l’ordre du réglage plutôt que du problème structurel

    • Oups, j’ai vu aussi qu’il n’y a rien par defaut (c’est mal) il faut aller dans la page des plugins, à côté du nom « Dépublication » il y a une icone de config sur laquelle cliquer !
      Have good time !

    • C’est bien là qu’est l’os ; j’ai beau indiquer mon numéro de rubrique servant aux articles d’agenda en « Identifiant de secteur(s) », en « Identifiants de rubrique(s) », ou dans les deux à la fois : ça donne aussi peu de résultat qu’il est possible !

      (ps : pour mon précédent soucis d’installation, je soupçonne un conflit avec le cache plutôt qu’avec les autres plugins, pour info)

    • Toujours avec les plugins désactivés, installez le plugin dépublication, véroifiez la configuration du plugin, videz le cache et rendez-vous sur la page d’un article déjà publié. Dites moi si cette fois ça marche !

    Répondre à ce message

  • 2

    SPIP 3.1.1 [22913], Dépublie 1.2.3, Sarka-SPIP 3.4.6
    test de compatibilité du Dépublie 1.2.3 pour spip 3.1 ... Compatible

    Installation plusieurs fois
    1/ à partir du dépot par téléchargement et
    2/ par dépot par ftp du fichier

    MAIS
    Configuration du plugins
    Erreur SQL 1146
    Table ’amitiefrwemada2.spip3021a_depublies’ doesn’t exist

    /home/amitiefrwe/www/site/ecrire/public/composer.php

    calculer_select() sql_select() ;

    Ligne 1005

    Vérification avec phpMyAdmin... la table n’existe effectivement PAS

    Merci de votre attention

    Avez vous une solution à me proposer ?

    MERCI

    • Si un plugin ne semble pas s’installer ou l’installation a échoué, dans ce cas il faut faire croire qu’il est désinstallé pour pouvoir relancer l’installation.
      Essayez en cliquant sur le bouton « désinstaller » qui permet de vider la table spip_meta ou demander à faire une réparation de la base bouton maintenance du site.

    • Merci de votre rapide réponse

      J’avais essayé cette désintallation et re installation .. sans succès.. trois fois de suite sur un seul site

      Du coup j’ai essayé sur deux sites spip différents avec la même version de spip et la même version de depublie... mais avec deux bases de données différentes, spip chez OVH en php 5.6.17 (vérifié)
      et
      Dommage pour moi
      TOUJOURS la table ne se construit pas

      Y a t il un fichier à lancer en php... directement..... j’ai bien trouvé un base/depublication_install.php... j’essaye de le lancer... mais toujours page blanche

      Une Idée ??

      MERCI de votre patience et de votre aide

      MB

    Répondre à ce message

  • 4

    Hello.

    Merci pour ce plugin, qui fonctionne bien. Il me pose cependant un problème annexe : si je veux changer la date de publication d’un article, ça me met « format date incorrecte » pour la date de dépublication. Voir image ci-jointe.

    Méthode de contournement : je décoche puis recoche la case « Ne pas utiliser la date de dépublication ». Mais ce n’est pas très intuitif pour les autres auteurs du site.

    J’ai tenté de modifier la valeur par défaut pour date_depublie dans la table spip_depublies et de lui mettre une datetime valide (au lieu de 0000-00-00 00:00:00) mais ça ne change rien.

    Avez-vous une piste ou une solution ?
    Versions : SPIP 3.0.21, Dépublie 1.1.7.

    Merci d’avance.

    1138.

    • grr, j’ai perdu mon message à la connexion …

      Bonjour,
      j’essaierai de voir ça mais la solution c’est de
      faire vos mises à jour, ce plugin a été porté en SPIP3.1 !
      Un spip_loader.php à la racine de votre site suffit si vous n’avez pas de plugins spécifiquement créé pour votre site, ensuite mettez à jour vos plugins !

    • Je mettrai le site de production à niveau vers Spip 3.1 quand j’aurai bien testé si tout fonctionne. Mon employeur ne serait pas content si je casse tout. ;-)

    • Ok, ce sera une bière dans ce cas :)
      http://zone.spip.org/trac/spip-zone/changeset/95767
      Réparé normalement avec 1.1.8

    • Merci beaucoup ! 👌

    Répondre à ce message

  • 2

    Hello,

    j’ai la version 1.2.2 de ce plugin avec SPIP 3.1 et j’ai du le désactiver car il empêche de changer la date d’un article.
    Message d’erreur : Il y a 3 erreurs dans votre saisie, veuillez vérifier les informations.
    Date de publication en ligne

    je voulais juste change le mois.

    dd

    • Je viens de vérifier avec différents articles, avec ou sans dépublication, tout fonctionne comme attendu chez moi.
      Le plugin affiche le message « Message d’erreur : Il y a 3 erreurs dans votre saisie, veuillez vérifier les informations. » mais aussi les détails de l’avertissement …

      « La date de dépublication doit être supérieure à la date de publication ».

      Merci de regarder si c’est bien de cela qu’il s’agit !

    • Bonsoir,
      Alors je l’ai ré-installé et fait des tests.

      Je pense que le problème venait du fait que j’avais indiqué dans l’admin des Identifiants de rubrique(s) ET des Identifiants de rubrique(s) qui se chevauchaient ou n’existaient plus.
      (j’ai bougé des rubriques il y a quelques temps)

      En tout cas merci cela refonctionne et je ne reproduis plus l’erreur.
      http://snag.gy/OIBIs.jpg

      dd

    Répondre à ce message

  • 8
    obiwanriko

    Merci pour la mise à jour. Elle s’est déroulé sans problème depuis l’interface de spip.
    le choix par secteur marche correctement.
    Un petit retour d’utilisateur après quelques jours d’utilisation :
    -  La différence avec la ligne supérieur « date de publication » n’est pas évidente, beaucoup d’utilisateurs se trompent et clique sur cette dernière et change la date de publication au lieu de créer une date de dépublication. Peut-être qu’un changement de couleur en rouge foncé suffirait à différencier ces lignes ?
    -  Lorsqu’un jour est choisit l’heure se met à 00:00, la question qui revient est : la dépublication se fait à minuit du jour en cours ou se fait-elle au jour suivant ??? j’avoue avoir été incapable à répondre, ...

    • Tant mieux si tout fonctionne comme prévu.

      #todo J’essaierai de différencier les deux dates, les débutants sont de bons testeurs !

      Pour l’imprécision de l’heure, le système automatique des tâches à accomplir se lance 2 fois par jour (si il y a une visite) à un instant T.
      Il vérifie les objets à dépublier et si la date_depublie est inférieure ou égale à T, il dépublie. Si un objet est à dépublier à 12h, il se peut donc que le cron ne passe qu’à 18h lui en donner l’ordre !

      Je ne sais pas quel serait l’usage d’un timing précis, si vous me donnez un bon exemple, on pourrait demander au marchand de sable de passer plus souvent, ce n’est pas très dur d’augmenter la fréquence du cron.

      Vous avez sinon ecrire/?exec=job_queue pour tester et lancer manuellement le cron qui depublie.

    • Bonjour Touti,

      Merci pour cet outil qui est parfait dans la gestion des films d’un cinéma :
      -  www.crcatb.fr
      -  j’utilise le plugin Séances qui permet de gérer les séances pour chaque film (article)
      -  le plugin Dépublie me permet de gérer la mise à la poublelle des films qui n’ont plus de séances

      Mais il y a un bug : la dépublication se fait par rapport à la date sans tenir compte de l’heure choisie :
      -  un article possède une date de dépublication aujourd’hui à 20h
      -  je force la tâche cron Tâche CRON depublier à 10h
      -  l’article est mis à la corbeille :-((( alors qu’il ne devrait pas être dépublié avant 20h

      Merci pour ton aide,
      françois

    • Bonjour graphie,

      Effectivement, comme tu le vois sur la ligne suivante
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/depublie/genie/depublier.php#L16

      les dates entrées sont de forme Y-m-d, alors que pour ce que tu souhaites (mais aussi par rapport à l’interface proposée) il faudrait que les dates à tester pour la dépublication soient de la forme « Y-m-d H:i:s »

      Essaie si tu peux, je n’ai pas le temps de suite.

    • Merci beaucoup pour le tuyau Touti ;-)
      J’y jette un coup d’œil et te tiens au courant.

      François

    • Il faudra également que tu augmentes et testes le décelnchement du CRON !
      Car celui-ci ne se fait que 2 fois dans la journée.
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/depublie/depublie_pipelines.php#L213
      remplacer
      $taches['depublier'] = 60*60*12; // 2 fois par jour
      par
      $taches['depublier'] = 3600; // toutes les heures

    • OK : tout semble fonctionner ;)

      Voici les modifs sur le fichier http://zone.spip.org/trac/spip-zone... :

      Ligne 13 remplacer :
      date('Y-m-d');
      par
      date('Y-m-d H:i:s');

      Ligne 16 remplacer :
      "%Y-%m-%d"
      par
      "%Y-%m-%d %H:%i:%s"

      Pour la tâche CRON, j’ai utilisé un délai court de 30 minutes : peut-être que ce délai pourrait faire partie des éléments configurables et de 12h par défaut ?

    • Je prends le file en cours de route.
      Les heures de dépublcation ne sont pas pris en compte pour l’instant donc ?
      Ça sera prévu dans une prochaine version ?

    • Bonjour,

      Il semble que Touti ait fait la modif il y a quelques semaines :
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/depublie/branches/v1/genie/depublier.php?order=date&desc=1

      Donc soit tu récupères la source sur le Trac (le lien ci-dessus), soit tu appliques les modifs des 2 lignes que je détaille juste au dessus (pas compliqué ;)

    Répondre à ce message

  • 3
    obiwanriko

    Merci d’avoir republié ce plugin pour spip 3.1
    J’ai donc récupéré la dernière version 1.2.0
    Ne marche toujours pas sous spip 3.1 en ce qui me concerne :
    J’ai essayé plusieurs manipulations :
    -  activer ou désactiver le plugin
    -  Désinstaller et réinstaller le plugin
    -  vider le cache
    ....

    Mais rien à faire la ligne et le formulaire « date de dépublication » n’apparaissent toujours pas...
    Alors que le plugin n’est plus listé comme incompatible...

    Merci d’avance pour toute aides

    • Bonjour,
      J’ai exactement le même problème. J’ai deux sites à jour utilisant :
      Sarka-SPIP 3.4.6 [93498]
      SPIP 3.1.0 [22707]
      PHP 5.2.17
      Ce problème est plus prégnant sur un des deux sites, où il y a des infos d’actualité qu’on fait disparaître sous un mois.
      Merci de ce que vous pourrez faire pour corriger ce problème (pour moi, ce plugin est un « indispensable »).

    • Bonjour,

      Merci pour cette version 1.2.2 qui corrige le problème rencontré.

      Cordialement.

    • obiwanriko

      Bonjour et un grand merci !
      la version 1.2.2 corrige le problème = tout remarche correctement

    Répondre à ce message

Ajouter un commentaire

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

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

Dernière modification de cette page le 12 janvier 2016