Software-Entwicklungen
(AddOns für das Web-Content-Management-System Redaxo)

Terminkalender für Redaxo 5
Version 3.3
Autor: Wolfgang Busch

Dieses AddOn bietet ein System zur Verwaltung und Darstellung von Veranstaltungsterminen mit responsivem Design. Die Termine lassen sich in getrennt verwaltete Kategorien gliedern.

Das AddOn umfasst
- eine zusätzliche Redaxo-Datenbanktabelle für die Termine
- eine Stylesheet-Datei für Farben und Formen der Kalendermenüs
- Funktionen zu Kalenderberechnungen
- Funktionen zur Darstellung von Terminlisten und Kalendermenüs
- einen Modul zur Verwaltung der Termine (im Backend)
- einen Modul zur Ausgabe eines Kalendermenüs oder einer Terminliste (im Frontend)
 

Die Terminverwaltung beinhaltet diese Funktionen:
  • Eintragung eines Termins samt zugehörigen Daten in die Datenbanktabelle
  • Löschung eines Termins
  • Aktualisierung der Daten eines Termins
  • Suche eines Termins mittels Kalendermenüs
Als Kalendermenüs stehen die folgenden Darstellungen zur Wahl:
  • Monatsmenü, Tage mit eingetragenen Terminen sind schraffiert
  • Monats-, Wochen-, Tagesblatt mit halbgrafischer Darstellung aller Termine
  • Liste der Termine eines Kalenderjahres mit Filterfunktionen
  • tabellarische Darstellung der Daten eines Termins
Alle Kalendermenüs gestatten das Blättern zum vorherigen und nachfolgenden Zeitabschnitt, das Monatsmenü zusätzlich zum gleichen Monat im Vor- oder Folgejahr. Zudem sind sie untereinander verlinkt, sodass man von einem zum anderen wechseln kann. Die Kalenderfunktionen liefern in Form von tooltips gesetzliche und christliche Feiertage.
 

Ein Termin ist normalerweise ein Zeitabschnitt an einem einzelnen Tag. Er kann aber auch als Zeitbereich vereinbart werden, der sich über mehrere Tage erstreckt, oder als Zeitabschnitt eines Tages, der sich wöchentlich wiederholt.

Um einen von wöchentlich wiederkehrenden Terminen zu ergänzen oder zu verändern, muss ein zusätzlicher Termin als Ersatztermin eingetragen werden. Dieser muss mit dem zu ersetzenden Termin in den wesentlichen Parametern übereinstimmen (Bezeichnung, Datum, Kategorie) und darf selbst kein Wiederholungstermin und kein Folgetermin sein.

Erste Schritte zum Aufbau eines Terminkalenders
  1. In einer ersten Testphase sollte in einem neuen Artikel ein Block mit dem Modul Termine verwalten angelegt werden. Mit diesem werden Testtermine eingetragen. Der Artikel kann offline bleiben, da der Modul keine Ausgaben im Frontend macht.
  2. In einem weiteren Artikel sollte ein Block mit dem Modul Termine anzeigen angelegt werden. Mit diesem lassen sich die Testtermine in den unterschiedlichen Menüs im Frontend anzeigen. Wenn die Testtermine in der näheren Zukunft liegen, sollten sie von den Menüs "eingefangen" werden. Andernfalls ist das eine gute Gelegenheit sie zu korrigieren, d.h. ihr Datum geeignet zu ändern (siehe voriger Punkt).
  3. Daran könnte sich mithilfe der Konfiguration der konkrete Aufbau der Terminverwaltung anschließen:
    • Anpassung der Menüfarben an das Site-Design:
      Es wird eine Grundfarbe ausgewählt. Ausgehend von dieser werden hellere ähnliche Farbtöne sowie eine Komplementärfarbe verwendet. - Die RGB-Werte der Grundfarbe müssen ≤105 sein, damit die abgeleiteten Farben fehlerfrei berechnet werden können.
    • Anpassung der Stundenleiste im Monats- bzw. Wochen- oder Tagesblatt (relevant nur für Desktop-Displays):
      Die Gesamtbreite wird in Pixel angegeben.
      Der darzustellende Zeitbereich kann auf weniger als 24 Stunden eingeschränkt werden, z.B. auf 9:00 - 22:00 Uhr.
    • Definition von Terminkategorien, soweit das nötig ist:
      Alle Terminlisten und -menüs können auf je eine Kategorie eingeschränkt werden oder alternativ alle Kategorien umfassen.
      Jede Kategorie kann nachträglich umbenannt werden, da nicht ihre Bezeichnung, sondern ihre Id (= Nr. in der Konfiguration) in der Termintabelle abgelegt wird. - Ihre Reihenfolge in den Menüs zur Auswahl einer Kategorie entspricht der Reihenfolge in der Konfiguration.
  4. Ein Redakteur kann auf eine einzelne Terminkategorie eingeschränkt werden. Dazu werden ihm Kopien der beiden Module zur Verfügung gestellt, in deren Input-Teilen jeweils die entsprechende Kategorie-Id gesetzt ist (je 1 Zeile ist anzupassen).
    Beispiel - Einschränkung auf Kategorie 5:   $katid=5;   anstatt   $katid=0; (alle Kategorien).

Anzeige eines Bespiels

AddOn-Download