Nettoyer la médiathèque

Ce plugin est intéressant dans l’un des cas suivants :

  1. Vous avez un site SPIP avec une version inférieure à la 1.9.2 et vous voulez le monter de version ;
  2. Vous avez un site depuis une version inférieure à SPIP 1.9.2 ;
  3. Vous voulez faire le ménage des logos et des documents orphelins dans votre répertoire /IMG.

Dans tous les cas, ce plugin déplacera les fichiers obsolètes dans un sous-répertoire IMG/orphelins. A vous de décider de leur sort par la suite ;-)

Préambule

Les captures d’écran présentes dans cet article sont faites à partir d’un site sous SPIP 3.0. De plus, je vous donnerai le mode d’accès aux pages selon le menu de la partie privée de SPIP 3.0.
La version 0.9.3 du plugin fonctionne aussi sous SPIP 2.1. L’apparence de l’interface diffère donc mais reste sur le même principe de fonctionnement.

Installation du plugin

Le plugin est repertorié dans le dépôt proposé par défaut : « SPIP-Zone - Plugins ». Aussi, il est installable depuis la page Gestion des plugins, onglet Ajouter des plugins si vous avez activé ce dépôt.
En cas de besoin, référez-vous à l’article dédié à ce sujet sur spip.net.

Fonctionnalités

Le plugin fonctionnera par tâches de fond. En clair, vous n’avez quasiment rien à faire pour que le plugin fonctionne après son activation. Vous pouvez déterminer dans quelle tranche horaire les tâches de fond doivent se lancer.
Avant de parler des fonctions en elles-mêmes, nous allons aborder les principes de base et la configuration du plugin pour ne pas avoir de surprise.
Ce plugin fonctionne aussi sur les sites SPIP où le core est mutualisé. Merci à Pierre KUHN pour les tests.

Principe de base des tâches de fond
Le plugin lancera les tâches de fond (cf. cron) toutes les 5h. Si vous n’avez fait qu’activer le plugin sans le configurer, pour des raisons de performances du site, une sécurité est mise en place en vérifiant que nous sommes bien entre minuit (0h) et 6h du matin.

Configuration
Pour accéder à la page de configuration, aller sur « Configuration > Gestion des plugins », puis chercher le plugin :

Cliquer sur la petite icône à droite du bloc. Vous serez redirigé sur la page http://example.org/ecrire/?exec=configurer_medias_nettoyage.

Sur cette page, vous pouvez activer les tranches horaires (recommandé) ou laisser le plugin se lancer régulièrement durant la journée.
Les tranches horaires, d’un pas de 6 heures, sont les suivantes :

  • 0h à 6h ;
  • 6h à 12h ;
  • 12h à 18h ;
  • 18h à minuit.

Tâche de fond #1 : Déplacer les répertoires obsolètes
Il arrive parfois qu’on récupère de très vieux sites internet qui traînent de vieilles coquilles. Dans les versions < 1.9.2, SPIP stockait dans le répertoire IMG/ les répertoires pour les icônes et les répertoires de cache. Ces répertoires sont obsolètes à partir de la version SPIP 1.9.2
Cette fonction va déplacer tous les répertoires commençant par « cache- » ou par « icones », de même pour les fichiers « cache-xxx » (après vérification qu’ils ne soient pas de vrais documents enregistrés en base de données) dans le répertoire IMG/orphelins/.

Tâche de fond #2 : Réparer les documents mal classés
Comme il a été dit en début de cet article, il arrive parfois que l’on récupère un vieux site. Il arrivait que pour des raisons de droits d’accès aux sous-répertoires que SPIP enregistre directement les documents dans le répertoire IMG/ au lieu de le mettre dans le répertoire correspondant à son extension. Exemple : IMG/jpg_monfichier.jpg au lieu de IMG/jpg/monfichier.jpg.
Cette tâche de fond va déplacer et renommer ce fichier selon la mécanique native de SPIP. Cela fait, il met à jour le lien du document dans la base de données.
Cette fonction reprend en grande partie le code issu de cet outil sur la zone : http://zone.spip.org/trac/spip-zone/browser/_outils_/repare_doc.html

Tâche de fond #3 : Déplacer tous les documents orphelins
Un document orphelin dans ce plugin est un document physique qui n’est plus référencé en base de données (cf. la boucle DOCUMENTS de SPIP). Alors, ce document sera déplacé dans le répertoire des orphelins (pour rappel : IMG/orphelins/). Il respectera le chemin d’accès du fichier initial.
Exemple : IMG/jpg/monfichier.jpg n’est plus référencé en base de données. Il sera déplacé dans IMG/orphelins/jpg/monfichier.jpg. En clair, si votre fichier était dans un sous répertoire de IMG/, il sera déplacé dans le même sous-répertoire dans IMG/orphelins/. De même, s’il était à la racine de IMG/, il se retrouvera à la racine IMG/orphelins/.
Cette fonction, la principale des 3 tâches de ce plugin, s’occupe de déplacer tous les documents orphelins. Il respectera la hiérarchie du fichier originel (cf. l’exemple donné au paragraphe précédent.)
A noter ici que le plugin prend en compte aussi les logos se référants à un objet qui n’est plus enregistré dans la base de données. Ces derniers seront des logos orphelins.

Il ne touchera pas aux répertoires qui ne font pas références aux documents de SPIP. Par exemple, le plugin Article PDF (actuellement en version 0.4.5) crée un sous répertoire dans IMG/ pour y enregistrer les pdf des articles demandés par le visiteur.
Le plugin « Nettoyer la médiathèque » ne touchera ni à ce répertoire, ni à ses fichiers.

Interface d’utilisation

En plus de ces tâches de fond, le plugin offre quelques pages pour consulter le contenu du répertoire IMG/. Il ne listera pas les documents qui sont stockés dans la base de données, SPIP le fait déjà très bien avec la page http://example.org/ecrire/?exec=documents

Tableau de bord - Documents
Après activation du plugin, vous aurez accès dans le menu « Édition » au tableau de bord des documents. (Édition > Tableau de bord - Documents).
Accessible par : http://example.org/ecrire/?exec=medias_tabbord

Ce tableau de bord donnera des informations techniques sur les documents, à savoir leur nombre et leur taille en octets :

  • en base de données :
    • Tous les documents ;
    • Les documents non-distants ;
    • Les documents sans fichiers physiques.
  • Répertoire IMG/ :
    • Tous les fichiers ;
    • Fichiers dans les répertoires d’extensions ;
    • Fichiers orphelins avec extensions (sauf logos), c’est-à-dire les fichiers non référencés en base de données ;
    • Répertoires à la racine.
  • Les logos dans IMG/ :
    • Logos des objets de SPIP ;
    • Logos en mode « on » ;
    • Logos en mode « off ».
  • Répertoire IMG/orphelins :
    • Tous les fichiers ;
    • Répertoires à la racine.

Dans les différents tableaux, la version actuelle du plugin 0.9.3 ne donne pas le poids des répertoires.

Dans la colonne de gauche, vous aurez accès à des pages correspondantes à ce tableau. Elles vous donneront plus d’informations.

Répertoire IMG/
Accessible par : http://example.org/ecrire/?exec=medias_rep_img

Cette page listera les répertoires présents dans IMG/. On y trouvera leur nom et leur date de création.
Pour avoir les fichiers contenus dans IMG/, je vous invite à consulter la page fournie par SPIP. http://example.org/ecrire/?exec=documents

Les logos dans IMG/
Accessible par : http://example.org/ecrire/?exec=medias_logos_img

Cette page listera dans un tableau les logos présents dans IMG/.
Ce tableau contient 3 colonnes :

  • Le nom et la prévisualisation du logo ;
  • Infos techniques : l’extension, la taille en octets et les dimensions en pixels ;
  • La date de création.

Vous pourrez cliquer sur la prévisualisation ou le nom du fichier pour avoir une vue plus grande du fichier.

Les logos de SPIP possèdent des « modes » : on (le logo normal) et off (le logo de survol). Au dessus du tableau, vous pouvez cliquer sur le mode désiré du logo et le tableau affichera les logos correspondants à votre sélection.

Documents orphelins
Accessible par : http://example.org/ecrire/?exec=medias_rep_orphelins

Cette page possède 2 tableaux :

  • la liste des documents ;
  • la liste des répertoires (comme sur la page des répertoires de IMG/).

On reprend le même type d’informations que pour le tableau des logos pour la liste des documents.
Lorsque le fichier est une image, une prévisualisation sera présente. Le nom est cliquable pour pouvoir accéder au fichier et ainsi le télécharger.

Todo

Voici une petite liste d’évolutions et/ou de choses à faire sur le plugin :
-  vérifier si l’objet d’un logo est toujours en base de données, si le logo n’est pas orphelin donc z82917 ;
-  ajouter un bouton supprimer le fichier orphelin 83009 ;
-  ajouter un bouton supprimer le répertoire (sous condition qu’il n’y a pas de fichiers dans le répertoire) ;
-  ajouter un bouton pour importer le fichier dans la table spip_documents ;
-  ajouter un bouton « vider le répertoire orphelins ».

Discussion

Aucune discussion

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