mini fchosting

slogan

Open Search - Einbindung von time4joomla in das Suchenfeld des Browsers - und so funktioniert es: Open Search
Eine Liste der verwendeten Erweiterungen findet sich im Impressum

Langjährige Erfahrung als Dozent zu verschiedenen Themen.
Ich komme zu Ihnen in die Firma oder organisiere Räume vor Ort. Dazu steht mir ein Netzwerk aus vielen Jahren als freier Dozent zur Verfügung.

  • MS-Excel
    2003 / 2007/ 2010
  • MS-Project
    2003 / 2007
  • MS-Office
    2003 / 2007 / 2010
  • Joomla!
    1.5 / 2.5
  • Körpersprache für Präsentation und zur verkaufsfördernen Motivation

  • Weitere Themen auf Anfrage

Interesse? Lust? Zeit? Dann freue ich mich über eine eMail oder Anruf.
Kontaktdaten im Impressum

Immer informiert, was es Neues bei time4joomla und time4mambo gibt. Der Newsletter muss noch bestätigt werden, um Mißbrauch auszuschließen und kann jederzeit wieder abbestellt werden.

Eigene Fehlerseite in J!2.5

Die Original-Fehlerseite liegt hier: /templates/system/error.php
Will man eine eigene Fehlerseite machen, legt man sich eine eigene error.php in seinem verwendeten Template-Verzeichnis an: /templates/MeinTemplate/error.php

Joomla greift zunächst stets auf die Dateien im eigenen Template-Verzeichnis zu. Die Systemdatei wird also quasi überschrieben mit der eigenen Datei.

Möglichkeit 1

Diese eigene error.php kann nach Belieben selbst gestaltet werden. Allerdings wird nur HTML-Code (und PHP-Code natürlich) erkannt. Modulpositionen hingegen werden nicht erkannt und ergo nicht dargestellt.

Möglichkeit 2

Man kann aber auch einen Beitrag anlegen mit dem Fehlertext und diesen direkt aufrufen bei einem Fehler und bleibt damit im Template des Webauftritts. Oder man kann natürlich auch ein neues Template wie gewohnt erstellen und das explizit diesem Beitrag zuweisen. Der Vorteil ist, dass man stets ein Template hat, dass alles bietet und kann, was für andere Beiträge auch gilt.

Der Beitrag, der erstellt wurde, muss nun noch einem Menü zugeordnet werden. Damit niemand die Fehlerseite per Menülink aufrufen kann, gibt es die Möglichkeit eines Schattenmenüs. Also eines Menüs, dass öffentlich arbeitet, aber niemand sieht.

Dazu legen wir zunächst ein neues Menü an:

Anlegen eines Schattenmenüs

Diesem Schattenmenü, dass ich in meinem Beispiel auch so genannt habe, weise ich jetzt meinen Beitrag zu. Also alles so, wie wir es immer machen. Allerdings positioniere ich kein Menümodul in meinem Template, das dass Schattenemnü beinhaltet. Ich ignoriere die Module komplett. Dadurch wird das Menü nirgends angezeigt, dennoch verweist es auf einen öffentlich zugänglichen Beitrag und ich kann dadurch diesen Beitrag ansprechen, in dem ich ihn explizit aufrufe in meiner error.php:

<?php
defined( '_JEXEC' ) or die;
?>
<html>
<body>
<?php if ($this->error->getCode()>=400 && $this->error->getCode() <= 500) { 
JApplication::redirect("404.html"); 
} else {
JApplication::redirect("fehler.html"); 
}
?>
</body>
</html>

Dieser Code fragt zunächst die Fehlernummer ab. Liegt die zwischen 400 und 500 wird der Beitrag "404.html" aufgerufen. Und mit dem Beitragsaufruf wird praktischerweise auch das zugeordnete Template geladen. Wobei "404" der Alias-Name des Menüverweises darstellt und bei eingeschalteten SEO dann das "html" angehängt wird. Wer nicht mit SEO arbeitet oder eine anderen URL-Aufbau hat, muss natürlich dann den Alias oder die entsprechende URL entsprechend in diese Datei eintragen.

Menüverweis im Schattenmenü zum Beitrag mit dem Fehlertext

Damit ich auch andere Fehler abfangen kann und nicht nur die "Seite nicht gefunden"-Fehler, habe ich im obigen Code noch eine zweite Fehler-Seite angegeben, die einen allgemeinen Text enthält und immer dann aufgerufen wird, wenn die Fehlernummer außerhalb 400 bis 500 liegt. Voraussetzung ist allerdings, dass der Fehler nicht so gravierend ist, dass überhaupt nicht mehr Joomla geladen wird. Wenn das passiert generiert der Webserver seine eigenen Fehlermeldungen.

Ich selber benutze die zweite Möglichkeit. Wer sich das mal anschauen möchte - hier wird eine Seite aufgerufen, die es nicht gibt:

Fehlermeldung auf time4joomla

Fehlernummern (Statuscode) und ihre Bedeutung

 

Eine Variante, die bei mir läuft:

<?php
defined( '_JEXEC' ) or die;
?>
<html>
<body>
<?php
if ($this->error->getCode()==403) { 
JApplication::redirect("403.html"); 
} elseif ($this->error->getCode()==404) { 
JApplication::redirect("404.html"); 
} else {
JApplication::redirect("fehler.html"); 
}
?>
</body>
</html>

Der Unterschied ist, dass ich die beiden Fehler 403 und 404 auswerte. 403 ist "unerlaubter Zugriff" und 404 "Seite nicht gefunden". Eine solche Liste kann man natürlich entsprechend fortführen. Dazu mal den Statuscode anschauen, den ich oben verlinkt habe.

Plugin aktivieren

Meistens reicht das schon. Sollte jedoch die Fehlerseite nicht angezeigt werden oder eine weiße Seite kommen, dann mal in die Plugin-Übersicht wechseln und das System-Plugin Umleitung aktivieren.





  • Mirko Markowski

    Geschrieben am 2011-09-30 15:19:20

    Danke Axel,
    funktioniert bestens. Deine Anleitungen kann ich nur empfehlen.

    Mirko

    Auf Kommentar antworten

  • Frank

    Geschrieben am 2011-10-12 17:20:42

    Hallo,

    ich kann mich Mirko nur anschließen, es funktioniert Tadellos und das Template erstellen war wirklich sehr einfach. Vielen Dank für die Anleitung

    Frank

    Auf Kommentar antworten

  • Micka

    Geschrieben am 2011-12-22 13:37:15

    Vielen lieben Dank. Habe Möglichkeit 2 ausprobiert und es hat 1a funktioniert!!!

    Ich bin begeistert, dass die Fehlerseite nun integriert in der Webseite auftaucht!

    Auf Kommentar antworten

  • Susann

    Geschrieben am 2012-02-13 08:29:19

    Vielen Dank. Möglichkeit 2 funktioniert auch im neuen Joomla 2.5. Hab's gerade ausprobiert.

    LG Susann

    Auf Kommentar antworten

  • Gerda

    Geschrieben am 2012-02-21 14:25:47

    es ist so einfach und man kommt nicht drauf, es sei denn man sucht hier. Vielen Dank. Werde jetzt alle Seiten mal eine ordentliche fehlerseite verpassen, wie sich das gehört ;-))
    Da bin ich wirklich ein Schlumper gewesen.

    Auf Kommentar antworten

  • Roadrunner

    Geschrieben am 2012-02-29 16:01:02

    Bei mir funktioniert der beschrieben Weg leider nicht. Ich erhalte nur eine weiße Seite. Benutze J2.5. Bin der Anleitung genau gefolgt.

    Woran kann das liegen?

    Auf Kommentar antworten

    • Axel [time4joomla]

      Geschrieben am 2012-03-01 14:01:56

      Bei mir funktioniert der beschrieben Weg leider nicht. Ich erhalte nur eine weiße Seite. Benutze J2.5. Bin der Anleitung genau gefolgt.

      Woran kann das liegen?


      Wie soll ich oder jemand anders das beantworten können - ich sitze ja nicht neben dir...
      Irgendwo wirst einen Fehler gemacht haben - eine andere Erklärung kann ich dir nicht geben. Vielleicht kann dir aber ein Supportforum weiter helfen...


      Axel

      Auf Kommentar antworten

  • Andy

    Geschrieben am 2012-03-15 13:29:22

    Vielen Dank hat funktioniert:

    bei mir musste ich den Code leicht anpassen:




    error->getCode()==403) {
    JApplication::redirect("403.html");
    } elseif ($this->error->getCode()==404) {
    JApplication::redirect("index.php/Fehlerseite");
    } else {
    JApplication::redirect("index.php/Fehlerseite");
    }
    ?>

    Auf Kommentar antworten

  • Matthias

    Geschrieben am 2012-04-02 12:18:00

    Herzlichen Dank für die tolle Anleitung!

    Eine Frage hätte ich jedoch dazu: die neue Custom Page auf Joomla 2.5 schickt den falschen Status Code zurück.
    Die Joomla Dokumentation sagt dazu:
    HTTP Status Code
    When a request is made for a page on your site, the server returns an HTTP status code in response to the request. Joomla! returns a '200 - the server successfully returned the page' for error pages. This is problematic for those working with Google Webmaster Services and trying to get a sitemap resolved.
    If you want Joomla! to return a status code for the error, you can do so by adding logic before the DOCTYPE line, as follows:

    error->code == '404') {
    header("HTTP/1.0 404 Not Found");
    } ?>

    Nun habe ich den Code so abgeändert:

    } elseif ($this->error->getCode()==404) {
    header("HTTP/1.0 404 Not Found");
    JApplication::redirect("404.html");

    Dies scheint es aber nicht zu sein - der Status Code wird noch immer nicht korrekt ausgegeben. Any idea?

    Danke,
    Matthias

    Auf Kommentar antworten

Veroeffentlichen Sie ihre Kommentare ...

Suchen Sie einen Webhoster? time4joomla empfiehlt: www.Joomlahosting.de
Joomla ist ein freies CMS - Webdesign, Programming and Content by time4mambo
PR nur für diese Seite: SEO Tools

nach oben scrollen

www.time4joomla.de is not affiliated with or endorsed by the Joomla! Project or Open Source Matters. The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.