Reiter mit Kalender erstellen

Reiter erstellen

Sie können einen Reiter erstellen, welcher Ihnen in einem Kalender alle Unterseiten (oder auch andere Datensätze) auflistet. Um so einen Reiter zu erstellen, müssen Sie in der navigation.ini Ihres Seitentyps folgende Einstellung mit der URL calendar.php setzen:

[calendar] url="calendar.php" title="Kalender"
Kalender-Ansicht

Standardmäßig zeigt die Kalender-Ansicht alle Unterseiten an. Dabei wird jede Seite mit dem jeweiligen Titel und dem Erstellungsdatum angezeigt.

Einstellungen

Standardmäßig zeigt der Kalender den Zeitraum von 00:00 Uhr bis 23:59 Uhr an. Dieser Zeitraum kann über die Parameter calendar_start und calendar_end wie folgt eingestellt werden:

[calendar] url="calendar.php?calendar_start=7&calendar_end=17" title="Kalender"

Die angezeigten Unterseiten können mithilfe einer PageExtension angepasst werden. Dafür muss die Methode getCalendarItems überschrieben werden. Die überschriebene Methode muss ein array mit Einträgen in der folgenden Struktur liefern:

[ 'id' => "ID der Unterseite", 'summary' => "Text, der für diese Unterseite angezeigt werden soll", 'startTime' => "Uhrzeit, von der ab diese Unterseite angezeigt werden soll als UNIX Timestamp", 'endTime' => "Uhrzeit, bis zu der diese Unterseite angezeigt werden soll als UNIX Timestamp", 'class' => "egotec-entry-inactive" // wenn diese Klassen gesetzt ist, dann wird die Unterseite als inaktiv angezeigt ]

Die Standard-Funktion als Beispiel:

public function getCalendarItems(): array { $items = []; foreach ($this->getChildren() as $entry) { $items[] = [ 'id' => $entry->field['id'], 'summary' => $entry->field['title'], 'startTime' => strtotime($entry->field['a_date']), 'endTime' => strtotime('+1 hour', strtotime($entry->field['a_date'])), 'class' => !$entry->isActive() ? 'egotec-entry-inactive' : '' ]; } return $items; }