News und Events optimieren

In diesem Artikel sammeln wir Tipps und Tricks der letzten Jahre, um News und Events in Contao zu optimieren.

Mehrtägige Events: Datum durch Leerzeichen ergänzen

Standardmäßig werden mehrtägige Events nach diesem Schema ausgegeben:

[Datum 1]–[Datum 2] --> 21. Januar 2019–23. Januar 2019

Das Problem: durch fehlende Leerzeichen, ist das Ende des ersten Datums und der Beginn des zweiten Datums schwer zu erkennen. Da die Datumsausgabe innerhalb des Event-Moduls geschieht (durch $this->date), ist es auch nicht so die Ausgabe über die Templates anzupassen.

Aber … mittlerweile gibt es die Möglichkeit, die Leerzeichen über die Sprachdatei einzufügen. Dafür legst du einfach die entsprechende Sprachdatei an. Also zum Beispiel für englisch  /app/Resources/contao/languages/en/default.xlf.

Dort fügst du folgende Anweisungen ein:

<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.1">
<file datatype="php" original="src/Resources/contao/languages/en/default.php" source-language="en">
<body>
<trans-unit id="MSC.cal_timeSeparator">
<source> – </source>
</trans-unit>
</body>
</file>
</xliff>

Wichtig sind die Leerzeichen in der Zeile <source>. Daraus ergibt sich folgende Datumsausgabe:

[Datum 1]–[Datum 2] --> 21. Januar 2019 – 23. Januar 2019

Ein Haken hat die Anpassung allerdings: Die Änderung gilt auch für die Uhrzeit und wird damit ebenfalls mit Leerzeichen formatiert. 

News & Events um das Wort „Uhr“ ergänzen – ohne das Template anzupassen

Im Seitenstartpunkt gibt es unter dem Punkt „Globale Einstellungen“ die Möglichkeit das Format für Datum und Uhrzeit anzugeben. Hier gibt es zum Beispiel die Möglichkeit den Aufbau und die Schreibweise über Verwendung bestimmter Buchstaben anzupassen (siehe auch PHP-Function date).

Es ist aber auch möglich zusätzliche Buchstaben und Wörter zu ergänzen, vorausgesetzt sie werden mit einem Backslash „escaped“, also zum Beispiel \U\h\r. Denn sonst würde die PHP-Funktion date den Buchstaben U verarbeiten und das Datum entsprechend der Formatierung ausgeben.

Auch Ausgaben wie Am 21.03.2007 um 21:00 Uhr sind so möglich.

Und das Beste ist: es muss kein Template angepasst werden.