Réponses:
Je ne suis pas sûr qu'il existe une meilleure méthode pour y parvenir. La seule façon dont je peux penser nécessite un peu d'effort. C'est-à-dire, générer une liste de toutes les images dans la table de contenu de la base de données (et potentiellement dans les modules, les menus, les bannières, etc ... N'importe quel endroit où les images sont référencées, ce qui est beaucoup), comparer cette liste à toutes les images sur le système de fichiers, puis comparez entre chaque liste et supprimez les images qui ne sont pas utilisées.
Cela ressemblerait donc à:
1) Obtenez une liste de toutes les images dans la table de base de données de com_content. Vider toutes les lignes, regex pour <img src="images/stories/an-image.jpg" />
. Une autre façon est d'utiliser la méthode strip_tags () de php et de n'autoriser que la balise. Je trouve cela plus facile que d'écrire une expression régulière en général. Fondamentalement, exécutez un script php pour créer cette liste pour vous en tant que document texte ou csv.
2) Obtenez une liste de toutes les images sur le site. Vous pouvez utiliser grep à partir de la ligne de commande pour ce faire, je crois. Vous pourriez probablement le faire avec une sorte de méthode récursive de système de fichiers php.
3) mettez les deux dans une feuille de calcul et exécutez une sorte de comparaison avec chaque colonne pour voir si l'image est utilisée, en compilant une liste d'images inutilisées dans une troisième colonne.
-
Personnellement, à moins que vous n'ayez une tonne d'images, je ne suis pas sûr que cela en vaille la peine. Mais vous devrez déterminer cela en attendant votre cas d'utilisation. Il peut également y avoir une solution beaucoup plus simple que quelqu'un d'autre devra suggérer!
Si vous avez vos journaux d'accès, vous pourrez peut-être extraire tous les fichiers d'image demandés au cours des X derniers mois (vous devrez jouer avec toutes ces données). Ils sont donc très probablement utilisés sur votre site actuel (mais pas à 100%). En fonction de votre contenu et de la structure de votre site et si votre site n'est pas vraiment énorme (soit 1 million d'articles), il est très probable que les autres ne soient probablement pas utilisés (là encore pas à 100%).
Je trouve cette solution aussi simple. Sauvegardez les images avant la suppression. Vous pouvez suivre plus tard les erreurs 404 en essayant d'ouvrir des fichiers spécifiques et vous pouvez décider de les restaurer.
C'est une solution sale, mais il n'y a vraiment pas de moyen facile. La meilleure option serait de suivre les conseils du Tchad et d'écrire votre propre analyseur.
Bien qu'aucune extension n'existait lorsque la question a été posée, en août 2018, il existe au moins quelques extensions qui peuvent apparemment trouver et supprimer des images orphelines:
VX orphanImages (extension payante)
"Le plug-in VX orphanImages analyse votre dossier d'images de site Joomla! Pour trouver des éléments qui ne sont utilisés dans aucun contenu du site. Il utilise le composant principal du média pour marquer les images orphelines dans la liste, afin que vous puissiez décider de les conserver ou de les supprimer. "
ImageManager (versions gratuites / payantes)
"ImageManager pour Joomla! Vous permet de déplacer et de renommer des images sans perdre le lien d'image dans les articles et les modules HTML personnalisés. Faites simplement glisser et déposez vos images pour restructurer et nettoyer votre site Web. Il peut également répertorier toutes les images inutilisées et les supprimer. . "