Software-Entwicklungen

Terminkalender
kal_termine, Version 3.4.4
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)
 

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.

Die Terminverwaltung beinhaltet diese Funktionen:
  • Eintragung eines Termins samt zugehörigen Daten in die Datenbanktabelle
  • Löschung eines Termins
  • Aktualisierung der Daten eines Termins
  • Kopieren (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
  • tabellarische Liste der Termine eines Zeitabschnitts
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.
 

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:
      Jede Kategorie kann jederzeit nachträglich umbenannt werden, da nicht ihre Bezeichnung, sondern ihre Id (= Nummer in der Konfiguration) in der Termintabelle abgelegt wird. (Die jeweils letzten) Kategorien können in der Konfiguration zwar entfernt werden, aber etwaige zugehörige Termine bleiben erhalten und müssen ggf. einzeln gelöscht werden.

Zuweisung von Terminkategorien an Redakteure
Damit ein Redakteur den Terminkalender nutzen kann, muss ihm für jede Kategorie eine Benutzerrolle zugewiesen werden, in der das Recht auf Nutzung der Kategorie ausgewiesen ist. Außerdem braucht er den Zugriff auf die beiden Module des AddOns.
Die Rechte zur Verwaltung und Ausgabe von Terminen der konfigurierten Kategorien werden automatisch (im Abschnitt 'Extras' jeder Rolle) definiert. Zudem wird je Kategorie automatisch eine Rolle angelegt, in der das Recht zu ihrer Nutzung bereits markiert ist. Diese Aktionen erfolgen in der Datei boot.php des AddOns.
Ein Redakteur kann jede der ihm zugewiesenen Kategorien einzeln als unabhängigen Terminkalender anbieten. Alternativ kann er auch alle seine Kategorien zu einem gemeinsamen Terminkalender zusammenfassen.
Andererseits kann eine einzelne Terminkategorie auch von mehreren Redakteuren verwaltet werden.

Sonstige Hinweise
  • Um einen einzelnen aus einer Reihe von wöchentlich wiederkehrenden Terminen zu modifizieren, 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 nicht mehrtägig sein.
  • In der Terminliste (und nur dort!) können Termine entsprechend ihrer Kategorien farbig markiert werden, um eine optische Zuordnung zu Kategorien zu unterstützen. Die Markierung erfolgt über CSS-Klassen (termliste_border01, termliste_border02, ... für Kategorie 1, 2, ...) für den linken Rand der rechten Tabellenspalte. Der Default '{ none; }' (keine Markierung) kann durch Neu-Definition überschrieben werden: als <style>-Block vor einem 'Termine anzeigen'-Block oder in einer richtig platzierten eigenen Stylesheet-Datei.
  • Die Icons in den Kalendermenüs sind dem Awesome-Font entnommen. Der Zugriff darauf ist in der Stylesheet-Datei definiert, wobei der URL auf die entsprechenden Font-Dateien im AddOn be_style verweist.

Anzeige eines Bespiels

AddOn-Download