Dépublie

Dépublie des objets, comme 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 objets automatiquement.

Dépublie est un plugin avec un code très simplifié, il 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.

Depuis la version 1.3.4, la configuration du plugin détecte tout objet qui supporte la dépublication. Pour être pris en compte, la table principale de l’objet doit posséder les champs « date, id_rubrique, statut » comme articles rubriques ou brèves ou bien s’il a été créé indépendamment, par exemple avec le plugin « la Fabrique ».

La table unique très simple avec le couple générique objet/id_objet, le nouveau statut et sa date de changement.

L’écriture de son code profite 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 accessible depuis la page des plugins.
On choisira d’afficher la ligne supplémentaire du formulaire, soit le input des dates, sur certains secteurs ou rubriques.

La page de configuration de Dépublie.

Page de configuration du plugin Dépublie remarquer l’ajout d’un objet différent qui possède les champs nécessaires.

Si l’on souhaite que l’article prenne automatiquement une date de dépublication, il faut remplir la durée de publication voulue sinon le faire manuellement ou automatiser le processus par vous même en le codant. Au changement de statut de l’objet comme un article, la date de dépublication sera enregistrée automatiquement en base avec la durée configurée.

A partir de la page de configuration, accèdez à la page qui affiche les objets en attente de changement de statut (nommée Liste des dépublications) ecrire/?exec=configurer_depublie

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 (et donc penser à ajouter les champs nécessaires avec le plugin Cextra par exemple)

Tester la dépublication

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

Dépublier ou archiver ?

En activant le plugin ciarchive : statut archivé pour les articles qui ajoute un nouveau statut archive aux articles (sans modifier la date de publication) on peut parfaitement automatiser l’archivage. Dans la configuration du plugin « Dépublie » passez le sélecteur de statut « Choisissez le statut à donner lors de la dépublication » à « archive ».

Discussion

29 discussions

  • 2

    bonjour,

    Merci d’avance pour votre effort et votre temps disponible.

    j’ai essayé d’activer votre plugin sur un SPIP 3.0.7. il est déclaré incompatible.

    avez-vous une idée ?

    merci d’avance.

    • Je ne sais pas pourquoi il y a ce message.
      Dans tous les cas, il est préférable de réaliser les mises à jour de SPIP régulièrement la version actuelle est en SPIP 3.0.16

    • Hello,

      La cause est « simple » : le plugin est indiqué compatible SPIP 3.0.13 et supérieur (http://zone.spip.org/trac/spip-zone...), soit probablement la version SPIP courante au moment de la publication du plugin et c’est très bien ainsi.

      En effet : chaque nouvelle version amène son lot de corrections de bugs identifiés et il se pourrait très bien qu’une version précédente soit dès lors effectivement incompatible, pas par principe (la branche 3.0 de SPIP est supposée avoir des interfaces de programmation stables) mais dans les faits.

      Mais surtout : certaines nouvelles versions bouchent des trous de sécurité dont certains sont importants. Et autant le dire, la version 3.0.7 est concernée par au moins un de ces trous. On ne peut que te conseiller de mettre ton SPIP à jour (version 3.0.17 à la date de ce message) et à continuer dans le futur. Les mises à jour dans la même branche sont d’une grande simplicité pour les sites codés proprement.

    Répondre à ce message

  • 4

    Bonjour,
    est-ce qu’il est possible de trier dans une boucle les articles par date de dépublication ? Merci par avance, ce plugin est super bien !

    • Bonne idée, c’est à rajouter dans le plugin la prochaine fois

      <B_depublier>
      <ul>
      <BOUCLE_depublier(spip_depublies){par date_depublie}>
      <li>[<a href="#URL_ARTICLE{#ID_OBJET}">(#INFO_TITRE{article,#ID_OBJET})</a>] sera dépublié le [(#DATE_DEPUBLIE|affdate)]</li>
      </BOUCLE_depublier>
      </ul>
      </B_depublier>
    • Franchement merci ! Il est vraiment bien ton plugin, parce que des fois utiliser l’agenda c’est trop une usine à gaz et trop complexe à expliquer à une équipe. Là c’est super simple et clair, Merci encore.

    • Bonjour,
      tant mieux si cela te sert ! Je suis curieuse de connaitre la façon dont tu l’utilises, peux-tu l’expliquer ici ? Merci

    • Je l’utilise comme un agenda simplifié. Lors de la création de l’article l’auteur indique la date de dépublication qui correspond à la date de fin de l’événement du site. Une fois cette date passée l’article est dépublié et disparait du site. Cela évite d’avoir un article plus un évènement agenda, ce qui me semble complexe pour une utilisation simple comme expliqué ci-dessus.

    Répondre à ce message

  • 4

    Bonjour touti et merci pour ce portage.

    J’ai besoin de ce module pour dépublier un auteur à une date donnée. Un admin doit renseigner la date dans le backoffice de spip (sa fiche auteur dans l’idéal).
    Mettre l’auteur à un statut visiteur sera parfait.

    Vous dites que ce module « peut être éventuellement étendue aux auteurs ou à d’autres objets par la suite »
    Apparemment il faut modifier genie/depublier.php pour l’étendre aux auteurs ? Que doit-on modifier dans ce fichier ?

    • Bonsoir, pour un autre objet comme par exemple les auteurs, il suffit de remplir les champs de la table spip_depublies avec le couple auteur/id_auteur la date_depublication et le statut que l’auteur prendra :
      Par exemple manuellement si vous utilisez mysql

       INSERT INTO <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9kZXB1YmxpZXM8L2NvZGU+"></span> (
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+b2JqZXQ8L2NvZGU+"></span> ,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfb2JqZXQ8L2NvZGU+"></span> ,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3RhdHV0PC9jb2RlPg=="></span> ,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGF0ZV9kZXB1YmxpZTwvY29kZT4="></span> ,
      <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bWFqPC9jb2RlPg=="></span>
      )
      VALUES (
      'auteur', '2', 'poubelle', '2014-02-11 20:00:00',
      CURRENT_TIMESTAMP
      )

      Je viens d’essayer, ça marche très bien.
      Il faut donc fabriquer le code php pour entrer/modifier ces champs avec une interface de formulaire sur la page des auteurs, ce qui n’existe pas à l’heure actuelle.

    • Merci touti pour cette réponse.
      Hélas les admins du site n’ont pas la connaissance suffisante pour modifier manuellement la base sql lorsqu’ils auront besoin de modifier un auteur. Le risque est trop important.
      De mon côté je ne sais pas coder en php...
      Avez-vous la possibilité de le coder ?

    • Bonsoir V1nce,
      je n’ai actuellement pas l’usage ni trop le temps de faire ces ajouts de code dans le SAD ;)

    • Lorsque j’ai cherché longuement un module capable de faire une dépublication d’auteur (avec statut visiteur), j’ai vu que pas mal de spipnautes en avaient également l’usage sur différents forums. Pourtant depuis le plugin dépublication de Julien, aucun portage en spip 3 n’avait été fait. Cela comblerai pourtant une demande importante et un élément majeur de spip (la gestion plus fine des auteurs).

      Ton module semble le plus adapté à cette évolution car il manque peu de choses comme tu l’indiques pour l’ajout de cette fonction.
      Si un dev php ou toi-même arrivez à trouver le temps pour réaliser cette mise à jour, ce serait vraiment une sacré bonne évolution.
      Merci en tout cas pour tes réponses rapides.

    Répondre à ce message

  • 2
    obiwanriko

    @touti
    Donc si je comprend bien votre post de 11:19, seule le webmestre a accès à cette fonction, donc au bouton changer ?
    Pas moyen que ce soit accessible aux admin restreint donc ...

    • Regardez bien l’image dans l’article, il y a un seul bouton « Changer » et je viens de tester en admin restreint il fonctionne très bien.

    • obiwanriko

      Effectivement ! Je viens de vois avec mes utilisateurs... et j’ai compris !
      Ils créent l’article, l’éditent, lui attachent un logo et un évènement et ils veulent ensuite lui affecté sa date de dépublication. Or à ce stade il y a une seule ligne qui dit « date de création » !!!
      Et effectivement à ce stade pas de bouton changer !!!!
      La mise en ligne fait bien aparaître les dates de dépublication et le bouton Changer...

      Donc pas de bug, juste un petit soucis de façon de mettre en ligne.

    Répondre à ce message

  • 1
    obiwanriko

    Un nouveau retour...
    La fonction dépublie n’est accessible qu’au Webmestre principal ?
    Car j’ai montré cette fonction sur mon poste et une fois devant leur poste et authentifié avec leurs info, les administrateurs restreints ne peuvent voir le bouton changer à droite de la ligne création/publication de l’article... normal ?

    • Vous parlez du bouton « Changer » qui en administrateur restreint ou en webmaster principal est le même et l’unique bouton puisque c’est un formulaire qui gère publication et dépublication !

    Répondre à ce message

  • 4
    obiwanriko

    Bonjour et surtout MERCIIIIIII pour avoir porté ce plugin que j’attendais depuis longtemps. Il fonctionne bien chez moi pour l’instant, j’attends de vois si le « CRON » marche correctement. Par contre une remarque : il s’agit de la ligne « Choisir la (ou les) rubrique(s) pour y afficher le formulaire : Identifiant(s) séparé(s) par des virgules » dans la configuration.
    Il faut saisir toutes les rubriques si on veut que ce plugin s’affiche dans tous le site ?
    C’est fastidieux car dans un gros site comme celui que je gère c’est pas évident exemple ma première tentative donne déjà un champ rempli ainsi : « 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,340,476,495 » et ce n’est que le début.
    Ais je mal compris quelque chose ?

    • Je vais voir ce que je peux faire !

    • obiwanriko

      Merci d’avance et encore merci !!!! :-)

    • On peut dorénavant choisir le secteur dans lequel le formulaire de dépublication s’affiche, du coup, tous les articles du ou des secteurs choisis afficheront le formulaire,
      le plus dur a été de simplifier la sémantique du formulaire !

      Si urgence, le plugin est en SVN http://zone.spip.org/trac/spip-zone/changeset/80271,
      le zip ne devrait pas tarder !

    • obiwanriko

      Mille mercis ! Je vais attendre le zip car quand j’essaie de mettre à jour les plugins en SVN... gloupsss... ça foire souvent...

    Répondre à ce message

  • 2

    Bonjour,

    Merci pour le portage ! :)
    Petite question, j’ai spécifié une rubrique (256), un statut « poubelle » dans la config de depublie, créé un article dans 256, en mettant un jour et une heure précise ... Mais l’article ne bouge pas de statut ...
    J’ai oublié quelque chose ?

    SPIP 3.0.13 [20962] + écran de sécurité 1.1.8

    • En effet, merci de la remarque, le plugin est initialement prévu pour des dépublications journalières (le cron passe deux fois par jour), je vais y ajouter l’heure dès que j’ai un peu de temps !
      #todo

    • Bonjour,
      Merci pour la réponse, et désolé pour la mienne un peu tardive ;)

      Donc je n’ai plus besoin de chercher ... Autre question, comment je fais pour le plugin soit actif sur tout le site ?

      Je viens de tester, et ça marche quand la rubrique est identifiée dans les paramètres du plugin, mais ça s’arrête à la rubrique. C’est à dire que les sous rubriques ne sont pas automatiquement ajoutées dans la configuration du coup ... Donc pour faire court, si je veux utiliser le plugin, je dois mettre tous les id de toutes les rubriques dans la config ???

    Répondre à ce message

  • 6

    Bonjour,
    J’ai activé avec intérêt ce plugin ;-)
    Malheureusement dès que je change le statut de l’article à « Publier », j’obtiens le message suivant
    Une idée ?

    • Bonsoir,
      il semble qu’il n’y ait pas de id_rubrique dans la requête SQL mais
      je ne vois pas d’où peut venir ce problème. Pouvez vous me donner plus de détails : version SPIP, page exacte…

    • Bsr,
      Merci de la réponse rapide
      Mon site est sous SPIP 3.0.13 [20962]
      Cela concerne toutes les créations d’article, donc pas de page spécifique

    • C’est la bonne version stable de SPIP3, ça devrait marcher.
      Mais ce n’est pas très précis !
      Je ne comprends pas ce que veut dire « toutes les créations d’articles » et « pas de page spécifique » ?
      Êtes-vous sur l’URL ecrire/?exec=article pour changez manuellement le statut de l’article à ’publié en ligne’ ?
      Sinon il y a peut-être un plugin qui joue sur le flux en ne renvoyant pas l’id_rubrique, essayez de les désactiver.

    • Dsl,
      ça signifiait que j’’ai essayé en créant plusieurs nouveaux articles dans des rubriques différentes avec l’URL ecrire/?exec=article
      Je vais tester avec les plugins ...
      Merci

    • Ah, et votre image est tronquée car normalement le message doit indiquer de quel squelette il s’agit.

    • Impossible d’en visualiser plus !
      Le squelette est Japibas, mais même désactivé, l’erreur se produit ...
      Je vais tester avec le reste
      Merci

    Répondre à ce message

  • 1

    Bonjour touti et merci.
    le zip n’est pas présent, est-ce un oubli où c’est volontaire.

    Cordialement

    tofum

    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