Contao 4 Wartungs-Template service_unavailable.html.twig anpassen

von Marco Simbürger

Aktiviert man in Contao 4 unter Systemwartung den Wartungsmodus, wird das Twig-Template service_unavailable.html.twig geladen.

Das Template service_unavailable.html.twig wird im Contao core-bundle mitgeliefert. Da sich das Bundle aber im /vendor-Ordner befindet, darf man das Template nicht da bearbeiten, da es bei einem Update wieder gelöscht werden würde. (Allgemein nie etwas im /vendor-Ordner ändern!!)

Falls Du nicht die Ausgabe der Meldung, sondern das Layout rundherum bearbeiten möchtest, dann lese diese Anleitung: Contao 4 Error-Templates anpassen

Das Twig-Template service_unavailable.html.twig erbt vom Layout-Template layout.html.twig und überschreibt dessen Blöcke "title" und "matter". Möchte man nun die Ausgabe anpassen, muss man das Template service_unavailable.html.twig überschreiben. Gehe dazu folgendermassen vor:

  1. Lege folgende Ordnerstruktur an: /app/Resources/ContaoCoreBundle/views/Error/
  2. Erstelle die Twig-Datei service_unavailable.html.twig
  3. Füge den Inhalt des Original-Templates ein. Bsp. von hier kopieren: Github service_unavailable.html.twig
  4. Template nach Wunsch anpassen
  5. Cache leeren

Contao lädt nun das Template /app/Resources/ContaoCoreBundle/views/Error/service_unavailable.html.twig!

Weitere Infos zu Blöcken in Twig: block documentation

Hinweis: beim Löschen des produktiven Caches (--env=prod) wird der Wartungsmodus automatisch deaktiviert!

Zurück

Kommentare

Kommentar von grmpf |

Zu Punkt 5: Die Konsole ist inzwischen in der Standard Edition über
bin/console
und in der Managed Edition über
vendor/bin/contao-console
aufzurufen.

Antwort von Marco Simbürger

Das stimmt. Ich habe dafür gleich ne Übersicht erstellt: Cache leeren
Vielen Dank und Gruss
Marco

Kommentar von Futzie |

Hallo.
Wenn ich neben dem /config Ordner die oben beschriebene Ordnerstruktur anlege, also /Resources... und das Template reinlege mit meinem HTML Inhalt, wird trotz leeren des Cache mein Template nicht angezeigt?

Wo genau muss ich die Ordnerstruktur anlegen? Im root?
Kann ich in die twig-Datei den Inhalt des Contao 3.5.x Wartungsmodus setzen?

Oder hab ich da gerade einen Denkfehler?

Antwort von Marco Simbürger

Hi

Ja, die Angabe der Ordnerstruktur geht vom Contao-Root aus. Wenn Du Contao 4 installiert hast, hast Du u.a. den Ordner app (gleiche Ebene wie files, templates usw.). Im diesem Ordner app dann die Ordnerstruktur Resources/ContaoCoreBundle/views/Error/ anlegen. Im Ordner Error die Twig-Datei service_unavailable.html.twig erstellen. Da kannst Du jetzt die Contao-Vorlage (siehe Github) übernehmen und anpassen oder komplett eigenen Code reinschreiben. In Twig kannst Du aber kein PHP schreiben. Deshalb kannst Du den Template-Inhalt von Contao 3.5 nicht komplett übernehmen. Wenn Du das Layout der Contao-Fehlermeldungen allgemein anpassen möchtest, kannst Du die layout.html.twig überschreiben (siehe Contao 4 Error-Templates anpassen)

Kommentar von Hardy |

Danke für die Anleitung. Da ich definitiv nicht der Experte für PHP und Twig bin, habe ich ein kleines Problem.

Angezeigt wird mir:

Hoppla!
XPT.matter
Diese Website liegt gerade in der Badewanne und pflegt sich.

Das "XPT.matter" bekomme ich nicht weg - was mache ich falsch? Hier das Twig:

{% trans_default_domain 'contao_exception' %}
{% extends "@ContaoCore/Error/layout.html.twig" %}
{% block title %}
Intensivpflege
{% endblock %}
{% block matter %}
<p>Diese Website liegt gerade in der Badewanne und pflegt sich. Sobald die Seiten trocken sind, ist sie wieder für Sie da!</p>
{% endblock %}

Antwort von Marco Simbürger

Hallo Hardy

Hast Du auch etwas am layout.html.twig geändert?

Weil, schau mal hier ist die Ausgabe dieses Strings: layout.html.twig#L112
Dieser Wert sollte eigentlich entsprechend übersetzt werden: de/exception.xlf#L8

Hast Du ev. die Ausgabe der Variable angepasst (fehlt z.B. das |trans) oder fehlt die Übersetzung an sich?

Gruss
Marco

Einen Kommentar schreiben

Bitte rechnen Sie 7 plus 4.