TYPO3 Calendarize - Moderne Extbase/Fluid Struktur und flexible Datenhaltung

EXT:calendarize ermöglicht endlich eine übersichtliche und zugleich flexible Verwaltung von Veranstaltungen und Events. Wie das aussieht und was die Extension ausmacht? Tim Lochmüller erklärt´s.

Wir freuen uns wirklich sehr, Tim Lochmüller (@typo3blogger / @360friends) als Gastautoren für die TYPO3.net News gewonnen zu haben. Der zertifizierte TYPO3 Developer/Integrator leitet die Backend-Entwicklung bei HDNET und beschäftigt sich seit mehr als 10 Jahren mit der Realisierung von TYPO3 Projekten. Darüber hinaus hat Tim der Community zahlreiche Extensions bereitgestellt. Als Urgestein bloggt er im größten deutschsprachigen TYPO3 Blog typo3blogger.de seit 2006. In den nächsten Wochen und Monaten wird er weitere Erweiterungen vorstellen und TYPO3.net mit Artikeln unterstützen.

Für TYPO3 gibt es eine Vielzahl an Extensions, mit denen sich Veranstaltungen verwalten lassen. Für jeden Unterschied in der Anwendung gibt es überladene Dateistrukturen in separaten Extensions, von denen die Redakteure nur wenige Felder benötigen. Zusätzlich fehlen bei vielen Extensions Datumsoptionen, welche Redakteure von Outlook kennen. Grund genug, eine saubere Extension auf Basis von Extrabase und Fluid zu entwickeln. 

Entstanden ist im Laufe des letzten Jahres die Extension „EXT:calendarize“. Sie basiert auf der Erweiterung „EXT:autoloader“, um die Entwicklung möglichst schlank zu halten. Dabei gibt es einen grundlegenden Unterschied zu allen anderen Event-Extensions: Die Struktur des Events (Title, Text, Bild, Dokumente etc.) ist unabhängig von der „calendarize“-Erweiterung und den Datums-Optionen. Der Kalender wird mit einer Standard-Datenstruktur ausgeliefert. Der Sinn hinter der Flexibilität ist jedoch, dass jedes Extbase-Model in den Kalender aufgenommen werden kann. In dem Zuge ist u.a. die Erweiterung „EXT:calendarize_news“ entstanden, welche die Stärken der Kalender Erweiterung mit denen der News-Erweiterung verbindet (nur 12KB!!).

In der Ausgabe basiert die Kalender Erweiterung auf neun flexiblen Kalender Ansichten (Tag, Woche, Monat, Jahr und Liste, Detail, Suche, Suchergebnis und Latest) und einem einfachen Buchungsprozess. Die Listenansicht wird zusätzliche um einen Atom und ICS Feed erweitert. Besonderheit bei der Extension ist, dass sich die verschiedenen Event Strukturen innerhalb einer Ausgabe darstellen lassen. Beispiel: Ihr entwickelt ein „Seminar“-, ein „Workshop“- und ein „Event“- Model. Jedes Model hat unterschiedliche Felder und eine eigene Datenbank-Tabelle, Ihr wollt jedoch alle auch in einem gemeinsamen Kalender darstellen? Calendarize macht es möglich.

Bei den Datumsoptionen werden dem Redakteur ebenfalls zahlreiche Tools an die Hand gegeben. Die Konfiguration liegt normalisiert in einer separaten Datenbank-Tabelle und wird NICHT in XML gespeichert. Durch die Verarbeitung mit der TYPO3 Core Funktion IRRE, können verschiedene Datumskonfigurationen an einem einzigen Event hinterlegt werden. In Events und auch Event Gruppen (sowohl zum Ausschließen, als auch zum Ergänzen) können zudem ICS Dateien hinterlegt werden: So müssen u.a. Ferien nicht mehr von Hand gepflegt werden (s.o.). Darüber hinaus erlaubt die Abarbeitung der IRRE Elemente - von oben nach unten – Konfigurationen, welche in anderen Kalender Erweiterung nicht möglich sind. Beispiel: Jeden Samstag ganztags, nicht in den NRW Ferien 2017, aber zusätzlich den Dienstag zu einer festen Zeit in den Ferien (s.u.).

Kurz zusammen gefasst: Calendarize ist ein moderner Kalender, welcher über zahlreiche Datumsoptionen verfügt und flexible in der Datenstruktur ist. Im Moment ist ein Migrations-Script von „Ext:cal“ zu Calendarize und eine CalDAV Integration geplant. Sponsoren sind herzlich willkommen und können über typo3blogger.de Kontakt aufnehmen. :) Wer die Extension einmal ausprobieren will, findet im TER alle wichtigen Informationen. Viel Spaß damit!