Externe Links in Joomla überprüfen

Erstellt 02.10.2009  Kategorien  Software

joomla_logo

Lang, lang ist es her, da habe ich meine Webseiten noch in MS Frontpage zusammengestrickt. An eine recht nützliche Funktion von Frontpage kann ich mich aber noch gut erinnern. Man klickte auf ein Knöpfchen, und in allen HTML-Dokumenten wurden externe Links gesucht und anschließend getestet, ob die Verweisziele noch existieren. Das Ergebnis wurde in einer Liste dargestellt, in der man defekte Links gleich auch reparieren konnte.

Für Joomla suche ich eine ähnliche Funktion/Komponente - bislang leider vergeblich. Deshalb behelfe ich mich derzeit mit einem kleinen, selbst-geschriebenen Perl-Skript, welches diese Aufgabe jedoch nur offline erledigt.

 

Inzwischen bin ich ja in der Lage, mit dem tollen Tool MySQLDumper, welches ich vor ein paar Tagen vorgestellt habe, die MySQL-Datenbank meines Projekts herunterzuladen. Eigentlich ist das ja keine Datenbank, sondern so eine Art Batchfile mit MySQL-Befehlen, um eben eine solche Datenbank zu erzeugen. Diese Batch-Datei ist in ASCII und enthält in der Table content Einträge für alle Artikel der Joomla-Webseite. Das von mir geschriebene Perl-Skript parsed nun die MySQL-Datei auf eben diese Einträge der Table content. Für jeden Artikel wird der Artikelinhalt nach Links durchsucht. Jeder Link wird nun durch Perl aufgerufen und das Feedback des Webservers ausgewertet. Das Grundprinzip habe ich mir hier abgeschaut. Dazu verwende ich Perl LWP, was für "Library for WWW in Perl" steht. Ggf. müßt Ihr LWP vor Ausführen des Programms noch vom CPAN installieren. Damit nicht bei jedem Link zeitaufwändig der ganze Content geladen wird, wird nur der HTTP-Header vom Webserver angefragt und da konkret der Status-Code ausgewertet. Wenn dieser Rückgabewert nicht "200 OK" ist, wandert der Link auf eine schwarze Liste.

Ausgabe des Perl-Skripts ist eine einfache HTML-Datei, die für jeden Artikel, der defekte Links enthält, einen Eintrag enthält. Zusätzlich werden die defekten Links aufgeführt. Auf den Artikel-Eintrag kann geklickt werden, was die entsprechende Seite im Browser zum Editieren öffnet - so läßt sich der kaputte Link gleich reparieren.

Wenn Ihr das Skript ebenfalls einsetzen wollt, könnt Ihr Euch das unten herunterladen. Im Skript selbst, müßt Ihr eigentlich nur noch die Variable

$base_article an Eure Gegebenheiten anpassen. Aufgerufen wird das Programm dann über

./linkvalidator.pl [sql-Datei] [HTML Output-Datei]

Wenn jemand von Euch aber eine Komponente kennt, die diese Funktion im Backend von Joomla übernimmt, schreibt bitte einen Kommentar oder eine Email!

 

Tags  internet,  joomla,  cms,  links