Das Örtchen RSS-Feed
Suchen
Blog
Ähnliche Beiträge
Neueste Kommentare
Neueste Einträge
Populäre Einträge
Tagwolke
addon auswertung barcamp blog bug cms cms made simple datenkrake drupal feed film firefox frickeln friday gewinnspiel hardware how-to individualisierung meinung mmo modul nas php problem rss se7en server sicherheit sicherung software spiel teil theme trailer unterhaltung update windows windows 7 wordpress wow
Monatsarchiv

Drupal: Fehlerseite

Sobald ein Projekt einigermaßen rund läuft, sucht man Lösungen für Probleme im Detail und die tauchen meist in irgendwelchen Fehlerlogs auf. In meinem Fall handelt es sich diesmal um die Anzeige der Fehlerseite für den Statuscode 404 (Seite nicht gefunden).

Einer meiner Artikel war in einem relativ frühen Stadium im Google-Index gelandet und bekam danach noch von mir eine Änderung der Überschrift inklusive einer Textergänzung verpasst. Da ich die URL (bzw. den Path) automatisch anhand des Titels generieren lasse, stimmte nun natürlich die URL nicht mehr und es erschien für Besucher, die über den Google-Link kamen, die normale 404 Seite von Drupal. Der Standard ist hässlich wie die Nacht, nicht sehr aussagekräftig und lässt etliches an Benutzerfreundlichkeit missen. Doch welche Alternativen gibt es?

Im Blog von Kineta Systems wurde ich fündig. Dort werden folgende drei Möglichkeiten verglichen:

Standard Drupal Node

Dies ist die Technik, die ich bisher bei Kundenprojekten genutzt habe. Man legt einen neuen Node an und gibt den Path in der Administration unter Einstellungen -> Fehlermeldungen für den Fehlercode 404 an. Doch diese Technik hat, wie auch bei Kineta Systems geschrieben, ein paar Nachteile. Da die Fehlerseite ein Node ist, wird sie standardmäßig überall mit gelistet (Suche, neue Beiträge, etc.) und der Besucher braucht die Berechtigung, den Nodetyp überhaupt lesen zu dürfen. Auch der linke und rechte Seitenblock wird leider von Drupal 6 bei dieser Lösung unterdrückt. Auf einige Nachteile werde ich im Fazit noch genauer eingehen und Lösungen beschreiben.

Search404

Das Modul habe ich persönlich nicht getestet, aber die Modul-Beschreibung hat mich davon auch abgehalten. So finde ich die Idee einer Suche auf Basis der URL zwar klasse und die neueste Version soll sogar die Möglichkeit bieten, den linken und rechten Seitenblock wieder sichtbar zu machen, aber die Umsetzung ist mir zu unflexibel.

CustomError

Das Modul fand ich vom Ansatz her vielversprechend und habe es deswegen hier im Blog getestet. Deswegen war das Blog neben meinem Umzug zu Host Europe fast das ganze Wochenende im Wartungsmodus, aber letzterer wird Teil eines anderen Beitrags.

Das Modul bietet eine ähnliche Eingabemaske, wie Drupal sie für einen Node anbietet, d.h. man wählt den Eingabefilter aus und gibt den Titel und Inhalt der Fehlerseite ein. Leider hat das Modul auch den gravierendsten Nachteil immer noch, nämlich die fehlenden Blöcke. Nach ein wenig Recherche fand ich einige Lösungen hierfür, wie beispielsweise das Modul 404 Blocks, einem Patch für CustomError und weitere Möglichkeiten aus einer Diskussion im allgemeinen Drupal Forum.

Leider hat bei mir keine der obigen Lösungen für das Anzeigen der fehlenden Blöcke komplett funktioniert, d.h. mal fehlten die Menüs oder andere Seiten funktionierten plötzlich nicht mehr. Deswegen kam auch dieses Modul für mich leider nicht in Frage und ich besann mich auf alt bekanntes.

Fazit

Ich bin wieder zur Node-Lösung zurückgekehrt, habe jedoch einige Verbesserungen einfließen lassen. Ich habe einen extra Nodetyp für Fehlerseiten erstellt, bei dem die URLs nicht automatisiert erstellt werden und der in allen Auflistungen (inkl. der Suche mittels Search config) von der Anzeige ausgeschlossen wird. Dieser Node hat für alle Sprachen den gleichen Path (der ganz normal unter Einstellungen -> Fehlermeldungen hinterlegt wird) und basiert bei mir nun auf dem zusätzlich aktivierten PHP-Eingabefilter. Dort benutze ich einen Codeschnipsel (siehe unten) ähnlich dem Blogeintrag von Kineta Systems, um ein anhand der URL vorbefülltes Suchformular zu generieren. Die Anzeige der fehlenden Blöcke habe ich mit einer der Lösungen aus der Diskussion im Drupal Forum hinbekommen und da ich einen Node benutze sind auch die fehlenden Menüs kein Thema mehr.

<?php
// check the search module
if (
module_exists('search') && user_access('search content')
) {

$path = preg_replace(
'|^.*/(.*)/?$|', '$1', $_REQUEST['destination']
);

$keys = strtolower(preg_replace(
'/[^a-zA-Z0-9]+/', ' ', $path
));

print drupal_get_form(
'search_form', NULL, $keys, 'node'
);

}
?>

Der dargestellte Code wird zusätzlich zu der eigentlichen Fehlermeldung im Textkörper des Nodes hinterlegt und erzeugt aus dem Stück nach dem letzten Slash in der angeforderten URL ein vorbefülltes Suchformular, welches lediglich vom Besucher noch abgeschickt werden muss.

Hallo! Bist du neu hier? Dann abonniere doch den RSS-Feed dieses nicht mehr ganz so stillen Örtchens, um über meine geistigen Ergüsse auf dem Laufenden zu bleiben. Alternativ besteht auch die Möglichkeit, sich von FeedBurner per E-Mail über meine Ausscheidungen benachrichtigen zu lassen.

Kommentar hinzufügen

(If you're a human, don't change the following field)
Your first name.
Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Der Inhalt dieses Feldes wird öffentlich zugänglich angezeigt, aber als nofollow markiert.
Hinweis

Kommentare beleben den Blog! Ich freue mich über jeden Kommentar. Du kannst hier offen Deine Meinung zum Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.

Bitte unterlasst es die Kommentare zu SEO-Zwecken zu missbrauchen. Kommentare mit Links, die nicht zu Blogs führen (oder zu Blogs mit Grauzonen-Themen) und/oder Keywords als Namen verwenden und/oder Links im Kommentarbereich enthalten, sind nicht erwünscht!

Möchtest Du mir einen Blog-Artikel schmackhaft machen, dann schreib die URL ohne Link-Tag und ohne http(s):// in den Kommentarbereich und ich werde diesen bei Gefallen verlinken.

Die ersten vier Kommentare (mit den gleichen Daten bei Name, E-Mail und Blog) landen vor der Veröffentlichung in meiner Freigabe-Warteschlange und ich behalte mir das Recht vor, Kommentare entsprechend dieser Regeln anzupassen oder zu löschen!

t3n Magazin - Jetzt im Abo bestellen