Créer un système d’archivage (en jouant avec statut)

une astuce pour créer un système d’archivage à moindre frais en détournant le statut des articles.

SPIP conserve tous les articles dans la base de données. Tous les articles publiés sont en ligne. Cela peut être parfois être génant si on veut distinguer les articles toujours d’actualités et ceux qui doivent être archivés (mais rester consultables à la demande).
Voir aussi Plugin Archive.

Méthode du rangement

La méthode du rangement consiste à utiliser la structure de répertoire de SPIP. On crée un répertoire “archives” dans lequel on placera tous les articles anciens.

Problèmes:
-  Il faut créer des nouveaux répertoires et reprendre les squelettes pour exclure des répertoires
-  Manipulation fastidieuse si l’on a beaucoup d’articles

Méthode de la date

Tous les articles agés de plus de n jours sont listés sur une page archive. L’avantage de cette méthode est qu’elle ne nécessite pas de manipulation ultérieure: il faut juste attendre que temps passe... De plus, si la date n’est pas une donnée importante, on peut même forcer à archiver un article en l’anti-datant.

Problèmes:
-  Convient bien pour des sites avec un fonctionnement de type agenda ou blog où les articles les plus anciens sont ceux à archiver. Si le choix des articles à archiver est arbitraire (indépendant de la date et on ne peut trafiquer la date car elle est pertinente), cette méthode ne fonctionne plus.
-  Il faut reprendre le jeu de squelette et jouer avec le critère {age}

Méthode du mot clé

On crée un mot-clé “A archiver”. Lorsqu’un article est trop vieux, on lui attribue le mot clé

Problèmes:
-  Il faut reprendre les squelettes pour exclure des articles qui possèdent ce mot clé
-  Manipulation un peu fastidieuse si l’on a beaucoup d’articles

Méthode du statut

On va détourner l’utilisation habituelle du statut “refusé” des articles. Au lieu de signaler “l’article est non publié”, le fait de choisir “réfusé” permettra de l’archiver

Avantages:
-  Modification rapide des statuts
-  Peu de modifications de squelettes puisque les articles réfusés sont par défaut exclus du site public

Exemple de mise en place

Page courante: rubrique, plan, ....
Rien à faire les articles sont exclus automatiquement !

Page recherche
On peut rajouter une recherche sur les articles archivés grâce au filtre {statut=refuse} disponible depuis SPIP 1.8.2:

<!-- liste articles archivés -->
<B_art_rub2>
<ul class="search">
<BOUCLE_art_rub2(ARTICLES){recherche}{statut=refuse}{par points} {inverse}{0,20}>                 
<li><a href="article_archive.php?id_article=#ID_ARTICLE">#TITRE</a></li>                    
</BOUCLE_art_rub2></ul>
</B_art_rub2>

Page article archivé (article_archive.html)

On va créer une page spéciale pour consulter les archives

<BOUCLE_art_principal(ARTICLES){id_article}{statut=refuse}>

<div id="warning">              
<strong>Attention:</strong> le contenu de cet article n'est plus à jour               Il reste disponible en ligne pour un soucis d'archivage et de chronologie              
</div>
              
<h1>#TITRE</h1>

</BOUCLE_art_principal>

Pour finir...

Pour les perfectionnistes, on peut retoucher le fichier de langue pour que dans l’espace privé, il n’y ait de confusions. Ajouter (ou créer) un fichier de langue personnalisé pour votre jeu de squelettes /mondossier_squelette/lang/local_fr.php

'texte_statut_refuse' => 'archiv&eacute;',

updated on 21 February 2019

Discussion

5 discussions

  • Bonjour,

    Je suis débutante dans ce domaine et vous avez l’air de vous y connaître alors j’’aimerai savoir comment mettre en place un système d’archivage?

    Cordialement

    Reply to this message

  • 1

    Hello a tous,
    Je sais que le post date un peu, mais j’espère que quelqu’un verra mon message et pourra me répondre.

    Voilà je suis très intéressé par l’idée de mettre au point un système d’archivage par l’intermédiaire des statuts comme présenté dans l’article, mais je ne trouve pas où je peux modifier le statut “refusé” afin qu’il affiche archivé dans la console d’admin.

    J’espère que quelqu’un pourra m’aider

    D’avance merci

    • bonjour,
      pour afficher l’étiquette archivé dans l’espace privé, il faut créé un fichier nommé local_fr.php
      le placer dans /squelettes/lang/ si le sous répertoire n’existe pas le créer.
      ce fichier local_fr.php doit être complété comme ceci :

      <?php
      if (!defined("_ECRIRE_INC_VERSION")) return;
      $GLOBALS[$GLOBALS['idx_lang']] = array(
      'texte_statut_refuse' => 'archiv&eacute;',
      );
      ?>

      voila ! c’est tout

    Reply to this message

  • Sans avoir vu cet article, c’est ce système que j’utilise depuis des années.

    Il y a pourtant un défaut majeur : on ne peut voir les articles archivés contenus dans une rubrique sur la page .../ecrire/?exec=naviguer&id_rubrique=9 et, encore plus gênant, on peut supprimer une rubrique qui contient des articles « refusés/archivés », et suite à cela SPIP efface automatiquement les articles archivés qui s’y trouvaient. Ainsi récemment j’ai perdu toute une série d’articles :(

    Reply to this message

  • Dans la même thématique a été développé récemment un Plugin Archive

    Reply to this message

  • pour ceux qui souhaitent utiliser l’archivage en détournant le statut “refusé”, il reste à pouvoir afficher les articles archivés, sur une page “Archives du Site” (comme on a un “Plan du Site”) : pour cela je me suis inspiré du squelette “resume.html” (Boucle tirée de “Usage du filtre ’unique’ pour classer des articles” sur SPIP-Contrib : http://www.spip-contrib.net/Usage-du-filtre-unique-pour), et l’on doit modifier la boucle principale du squelette “article.html” comme suit :

    <BOUCLE_article_principal(ARTICLES){id_article}{statut!=poubelle}>

    ... ainsi, les articles “refusés” sont autorisés à l’affichage car ils sont maintenant “archivés”

    Reply to this message

Comment on this article

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