ciarchive : statut archivé pour les articles

Ce plugin ajoute un statut supplémentaire pour les articles, le statut « archivé ».

Les objectifs de ce plugin

L’objectif de ce plugin est de disposer d’un statut supplémentaire pour les articles, le statut « archivé ».

Pourquoi un plugin supplémentaire sur ce sujet ?

L’objectif est similaire au plugin “Archive”, toutefois contrairement à ce dernier :
-  il ajoute un statut “archivé” à la liste des statuts actuellement proposés pour les articles (et non pas une option “archivé”).
-  l’approche technique est radicalement différente.
-  il ne crée pas de champ ou de table suppléméntaire.
-  il est compatible avec SPIP 2.1 et avec SPIP 3.
-  je n’ai pas noté d’incompatibilité avec d’autres plugins.
-  etc.

Compatibilité

-  Le plugin est compatible avec SPIP 2.1 et SPIP 3.
-  Il est compatible avec PHP 5 (y compris PHP 5.3).

Installation

Le plugin s’installe comme tous les plugins, cf. http://www.spip.net/fr_article3396.html .

Fonctionnalités

Lorsque que l’on affecte le statut « archivé » à un article, il n’apparaît plus sur le site public ainsi que dans l’espace privé de SPIP.

A noter que seul le statut de l’article change. L’article reste lié à sa rubrique d’origine, même s’il n’apparaît plus dans cette rubrique.

Dans l’espace privé de SPIP, on peut retrouver un article qui a le statut « archivé », via le menu Edition > Archives, et modifier cet article (y compris son statut).

On peut également, consulter les articles archivés d’une rubrique particulière.

Le moteur de recherche de l’espace privé permet également de retrouver un article archivé.

Le détail des fonctionnalités de ce plugin figure dans la documentation ci-jointe.

Remarques :

  • Sur le site public, le critère statut=archive permet d’afficher les articles archivé (c’est le fonctionnement standard de SPIP qui s’applique).
  • Une rubrique (sans sous rubrique) dont tous les articles sont archivés n’aura pas le statut publié (c’est le fonctionnement standard de SPIP qui s’applique).

updated on 2 October 2019

Discussion

6 discussions

  • 1

    Bonjour,
    je signale une notice à la création d’une rubrique, puisque celle-ci n’existe pas encore
    “Notice: Undefined index: id_rubrique in /…/ciarchive_190306/ciarchive_pipelines.php on line 27”

    et aussi bonne nouvelle, couplé au plugin “Dépublie” on peut ainsi changer le statut de l’article à “archive” à la date de son choix ou automatiquement après une période donnée de publication.

    Reply to this message

  • 6

    Bonjour,
    merci pour ton plugin facile à mettre en œuvre.
    Je trouve cependant assez perturbant lorsqu’on change à nouveau de statut de perdre l’ancienne date d’un article archivé.
    Je vois que tu es en creative common, ou ton code est-il modifiable ? es-tu d’accord pour ajouter une fonction lors de la modification du statut d’un article ayant le statut “archive”, ne pas modifier sa date de publication.

    Voici le code à ajouter sans oublier la ligne dans paquet.xml pour le pipeline pre_edition

    <pipeline nom="pre_edition" inclure="ciarchive_pipelines.php" />
    /**
     * Lors de la modification du statut d'un article ayant le statut "archive",
     * ne pas modifier sa date de publication.
     *
     * @param array
     * @return array
     */
     
    function ciarchive_pre_edition($flux) {
            if(($flux['args']['table'] == 'spip_articles') 
                    AND ($flux['args']['action'] =='instituer') 
                    AND ($flux['args']['statut_ancien'] =='archive')){
            
                    spip_log("B on a l'article ".$flux['args']['id_objet'],'acirchive');
            
                    $flux['data']['date'] = $flux['args']['date_ancienne'];
            }
            return $flux;
    }

    ++
    touti

    • Bonjour,
      La version 1.3 de ciarchive, jointe à la présente page (ciarchive_190306.zip), prend en compte cette demande d’évolution.

      Remarque : Si on publie un article archivé, l’ancienne date de publication est conservée. En revanche, si on met le statut “en cours de rédaction” à un article archivé, puis qu’ensuite on le publie, l’ancienne date de publication n’est pas conservée.

    • Ok, contente d’avoir pu participer à l’évolution du plugin, même si je regrette qu’il ne soit pas accessible en proposition d’écriture soit en GIT soit SVN.

      Le log de mon code est en fait inutile à conserver en prod, à moins de rajouter la date ? c’était juste pour caler le flux car ce n’est pas toujours évident.

      touti

    • Je viens d’enlever la ligne du log.

    • Naema

      Bonjour, je poursuis sur ce sujet : serait-il possible de proposer une version étendue de ce plugin (qui fonctionne parfaitement sous 3.2.3 par ailleurs, merci) en créant cette fois un champ supplémentaire dans la table des versions (ajouter le ’statut’ de l’objet) et en y attribuant la variable ’permanent’, de sorte à ce que l’article soit enregistré dans les Révisions au moment du changement de statut en “archivé” et pouvoir ensuite faire une jointure facile avec cette table des versions et y retrouver la date d’archivage. Si j’arrive à vous produire le code, je vous l’envoie dans un message ultérieur (mais j’ai qq difficultés de codage!).

    • Egalement, de conditionner la modification du statut de façon à ce que seuls les articles publiés puissent être classés en ’archivés’ (actuellement, quel que soit le statut de l’article, il peut être modifié en ’archivé’, ce qui ne semble pas — du moins de mon point de vue — pertinent de pouvoir mettre en ’archivé’ un article qui était simplement en cours de rédaction.) Merci.

    • Mon rôle n’est pas d’offrir une assistance à la réalisation d’une fonctionnalité sur mesure pour un site particulier.

    Reply to this message

  • 4

    Bonjour,

    j’utilise ciarchive sur mon site, dans la doc il est indiqué “Sur le site public, le critère statut=archive permet d’afficher les articles archivé (c’est le fonctionnement standard de SPIP qui s’applique).”. J’arrive bien en effet à afficher la liste des articles ayant le statut “archive” grâce à une boucle article avec statut=archive mais quand je clique sur le lien c’est comme si l’article n’existait pas...
    Je ne sais pas comment faire pour que le lien soit actif.

    Merci d’avance pour votre aide

    • Une solution consiste à ce que le lien ne renvoie pas sur la page “article”, mais sur une page “article-archive” correspondant à une variante (à créer) du squelette article avec dans la boucle article le critère statut=archive .

    • Merci pour votre réponse rapide. Depuis, je tente de trouver la solution à partir des éléments de votre réponse, sans succès.
      Voici ce que j’ai fait :
      -  création dans “squelettes” d’un squelette article-archive, sur le modèle du squelette article mais avec le critère statut=archive dans la boucle article, comme indiqué.
      -  c’est ensuite que ça se complique, je ne sais pas comment spécifier dans mon lien qu’il faut pointer sur article-archive, j’ai mis article-archive#ID_ARTICLE dans mon href mais ça ne fonctionne pas

      Merci d’avance

    • href="[(#URL_PAGE{article-archive}|parametre_url{id_article,#ID_ARTICLE})]"

    Reply to this message

  • obiwanriko

    Bravo
    Excellent plugin simple et très efficace ! Va permettre de faire un nettoyage et un tri énOOOOrme sur le site que je gère tout en gardant un historique pour les articles de fond... Merci

    Reply to this message

  • 1

    Bonjour,
    Pensez-vous qu’il serait possible d’ajouter ce statut aux brèves ?
    Merci de votre retour.

    Reply to this message

  • 2

    Intéressant !

    Est-ce que tu pourrais mettre ce plugin sur la Zone ?

    Pour afficher un article archivé, il faut utiliser le critère {statut=archive} ?

    Et si une rubrique n’a que des articles archivé, quel est le statut de la rubrique ? Publiée ou non ?

    Reply to this message

Comment on this article

pre-moderation

Warning, your message will only be displayed after it has been checked and approved.

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