Corbeille pour Spip 1.9

La version plugin d’une ancienne contrib

Contribution archived for history purposes. May contains any interessant information either in forum comments or in article itself

Pour forcer l’effacement de la base de donnée de certains objets SPIP

Une documentation succinte et improvisée sur ce plugin

Pour qui : Ce plugin est trivial à installer et à faire fonctionner. Par contre il efface immédiatement et définitivement certains éléments, il faut donc s’en servir en connaissance de cause.

A quoi ça sert

Ce plugin permet de déroger au comportement standard de SPIP qui efface certains objets de la base de donnée avec un délai, ou les retire de l’affichage public sans les effacer de la base .... voir les explications plus bas, au paragraphe «Pour en savoir plus»

Pour télécharger et installer

Jusqu’à nouvel ordre le paquet zip est sur la zone de téléchargement de la Zone ... c’est un plugin donc le dossier dézippé est à installer tel quel dans le répertoire «plugins» de son site (à créer manuellement s’il n’existe pas), puis à activer via l’onglet «Configuration > gestion des plugins» de l’espace privé, comme pour tous les autres plugins

Le paquet ’corbeille.zip’ est téléchargeable sur la zone.

Pour s’en servir

Placer à la poubelle (ou en statut refusé) ce que l’on veut supprimer via la commande standard de SPIP, puis vider la dite poubelle via le plugin. Cela concerne : brèves ; articles ; forums publics ; forums privés ; auteurs ; signatures des pétitions jugées irrecevables, et syndication.

Ou se trouve l’icone ?
l’icone du plugin s’ajoute au menu configuration
Choix du type d’entrée à effacer
un clic met en évidence la catégorie choisie
Case à cocher pour la suppression définitive

Le plugin va forcer l’effaçage immédiat de ces objets SPIP de la base de donnée. Les relations entre les objets SPIP seront aussi effacer (tel que les associations auteurs-articles)
Mais il ne nettoie :
-  ni le cache sur le disque,
-  ni l’indexation dans la base par le moteur de recherche,
-  ni les documents placés dans le répertoire IMG de votre site.

Si vous voulez enlevez toute trace, pensez aussi à vider le cache du serveur et à ré-indexez votre site de temps en temps (tous les mois, 2 mois, ou 6 mois par exemple).

L’historique de ce plugin

Ce plugin a une longue histoire, et n’a ni développeur, ni documentaliste [1] en titre, ni Service Après Don assuré, voir ci-dessous la reprise d’un message sur spip-user

bon j’ai ajouté le paquet corbeille_1_9_1.zip (sur http://zone.spip.org/files/spip-zone/) , il sera dispo des 11h30. le truc en fait, c’est que y a pas de développeur pour ce plugin ... il vit tout seul :)

Mathieu Onfray est l’auteur de la contrib corbeilles que l’on trouve sur spip-contrib pour spip 1.8.x. (cf. les articles en archive Vider la corbeille de SPIP, version 1.8 et Vider la Corbeille de Spip, version 1.4)

Mais en ce qui concerne le plugin, c’est une transposition que j’avais faite de sa contrib vers février ou mars 2006, dans la phase de test du principe des plugins. A vrai dire, c’etait juste une «proof of concept», et je ne pensais pas qu’il servirait reellement, mais maintenant je vois qu’il est utilisé.

Cependant Mathieu n’en assure pas le dev ni la maintenance, et moi je n’ai pas vraiment le temps de m’en occuper. Il est donc bien sans développeur, même si il y a pas longtemps j’ai reporté des corrections qui m’avaient été envoyées par mail, et que je viens de faire le zip.

Cédric

Le comportement standard de SPIP

L’administration de SPIP permet de «mettre à la poubelle» (ou en statut refusé), puis effacer de la base, des éléments dans les conditions suivantes, en résumé :
-  les forums modérés sont marqués «supprimés» mais gardés en base de donnée pour des raisons juridiques (si problèmes ultérieurs lié à la gestion des forums) ... les forums associés à des éléments supprimés (article, brève, rubrique, site) sont aussi effacés au bout de 1 jour normalement ;
-  les auteurs sont supprimés seulement s’ils ne sont pas associés à des articles, et ce avec un certain délai (1 jour normalement) ;
-  les rubriques ne peuvent être supprimées que si elles ne contiennent plus rien ;
-  Tous les autres éléments passés à la poubelle (ou refusé) sont eux aussi supprimés après un certain délai (1 jour normalement)

Même remarque que précédemment pour le dossier IMG (non purgé), l’indexation, et les différents caches.

Il est intéressant de regarder les commentaires du code pour en savoir plus. Le nettoyage des éléments à la poubelle est défini dans la fonction optimiser_base. Le délai standard est de 86400 secondes soit 1 jours. Le nettoyage étant appelé par le «cron» de Spip, il dépend du nombre d’appel à ce script de cron (visite de certaines pages, partie admin, balise cron ...). Ce décalage, et cette durée parfois prolongée par le cron en cas de site peu visité (cas d’un site en local, ou un intranet) peuvent expliquer la (fausse) réputation de ne pas effacer de la poubelle SPIP

Ce script optimiser_base effectue toute une série d’actions sur rubriques, articles, breves, etc .... on le trouve dans le fichier «ecrire/base/optimiser.php. L’étude du texte de celui-ci (Révision 7112 - septembre 2006), nous montre que, selon les commentaires, sont effacés physiquement de la base (fonction DELETE) les éléments suivants dans l’ordre ci-après :

// Rubriques
# les articles qui sont dans une id_rubrique inexistante
# les breves qui sont dans une id_rubrique inexistante
# les forums lies a une id_rubrique inexistante
# les droits d'auteurs sur une id_rubrique inexistante
# les liens des documents qui sont dans une id_rubrique inexistante
# les liens des mots affectes a une id_rubrique inexistante

// Articles
les articles au statut poubelle
# les liens d'auteurs d'articles effaces
# les liens de documents d'articles effaces
# les liens de mots affectes a des articles effaces
# les forums lies a des articles effaces

// Breves
les brèves au statut refusé
# les liens de documents sur des breves effacees
# les liens de mots affectes a des breves effacees
# les forums lies a des breves effacees

// Sites
les sites au statut refusé
# les articles syndiques appartenant a des sites effaces
# les liens de mots affectes a des sites effaces
# les forums lies a des sites effaces

// Auteurs
# les liens d'articles sur des auteurs effaces
# les liens de messages sur des auteurs effaces
# les liens de rubriques sur des auteurs effaces
# effacer les auteurs poubelle qui ne sont lies a aucun article

// Messages prives
# supprimer les messages lies a un auteur disparu

// Mots-cles
# les liens mots-articles sur des mots effaces
# les liens mots-breves sur des mots effaces
# les liens mots-forum sur des mots effaces
# les liens mots-rubriques sur des mots effaces
# les liens mots-syndic sur des mots effaces

// Forums
# les liens mots-forum sur des forums effaces

// Indexation
 // les objets inutiles

Il semble bien que les signatures des pétitions ne soient effectivement pas traitées. et quid de l’effacement physique des rubriques ?

La numérotation dans la base de donnée

Un autre point aussi qui perturbe certains débutants découvrant leur base de donnée (par exemple via phpmyadmin) après des effacements. Ils s’émeuvent de constater des «trous» dans la numérotation (les «id» ne se suivent plus) et se demandent comment «ranger», ou si cela «prend de la place».

Et bien laissez tomber, cela n’a strictement aucune importance pour le bon fonctionnement de votre site. Les numéros «id» sont en effet des identifiants internes à la base, purement arbitraires, et gérés automatiquement par mysql. leur seule caractéristique importante est qu’ils doivent être uniques. Un nouveau numéro est donc bêtement attribué à chaque nouvel objet dans l’ordre d’arrivée, et l’id d’un élément supprimé est détruit. Tout cela explique que le «id» n’est pas un critère de tri pertinent dans vos boucles.

Voila, n’hésitez pas à compléter vos observations via ce forum. Il est assez amusant d’ailleurs de constater que cette fonction, à priori basique d’emploi, à pu faire l’objet de nombreux messages sur la liste utilisateur par le passé.

Footnotes

[1L’auteur de cet article intervient ponctuellement pour compiler quelques informations sur ce plugin et c’est tout

Discussion

No discussion

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

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