AddOn


Terminkalender (kal_termine)

Beschreibung

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 (Veranstaltungs-)Termin kann ein Zeitabschnitt innerhalb eines einzelnen Tages sein. Er kann aber auch aus mehreren Zeitabschnitten bestehen, die sich auf mehrere Tage verteilen:
- auf mehrere aufeinander folgende Tage oder
- auf genau einen Wochentag über mehrere Wochen oder
- auf genau einen Wochentag über mehrere Monate (z.B. jeden 2. Freitag im Monat).
Wöchentlich oder monatlich wiederkehrende Termine können sich darüber hinaus auch auf mehrere aufeinander folgende Tage verteilen (Wochenenden [Sa+So] über einige Wochen oder ein festes Wochenende im Monat über einige Monate).
.

Die Terminverwaltung beinhaltet diese Funktionen:

  • Eintragung eines Termins in die Datenbanktabelle
  • Löschung eines Termins
  • Aktualisierung der Daten eines Termins
  • Kopieren (der Daten) eines Termins
  • Menü-gesteuerte Suche eines Termins

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.


busch-dettum.de/public/it/kal_termine.html

Umsetzung

Wolfgang Busch

An der Windmühle 3 38173 Dettum busch-dettum.de

Versionen

3.5

Für REDAXO
^5.3.0
Veröffentlicht am
23.03.2024

Es können jetzt auch monatlich wiederkehrende Termine definiert werden, die auf den jeweils gleichen Wochentag eines Monats fallen. Z.B. 1. Freitag im Monat oder 2. Sonntag im Monat. Diese Termine können auch mehrtägig sein, z.B. das jeweils 3. Wochenende (Sa/So) im Monat.

Bisher durften wöchentlich wiederkehrende Termine nicht mehrtägig sein. Diese Beschränkung ist entfallen. Jetzt sind also z.B. Wochenendtermine (Samstag/Sonntag) möglich, die sich wöchentlich wiederholen.

Die farbige Markierung von Terminen nach unterschiedlichen Kategorien in der Terminliste ist jetzt konfigurierbar, bleibt aber optional. Eine zugehörige Farbpalette steht als Default-Angebot zur Verfügung, kann aber durch eine eigene Farbpalette in Form einer Datei im AddOn-Ordner /vendor ersetzt werden.

Bei Entfernung einer Terminkategorie werden jetzt auch die Termine entfernt, die zu dieser Kategorie gehören. Auch die Benutzerrolle zur Nutzung dieser Kategorie wird jetzt entfernt.

Das Stylesheet wird (bei der Installation und bei Änderung der Konfiguration) jetzt nur noch in den Assets-Ordner des AddOns geschrieben. Entsprechend wird der Ordner /assets im AddOn-Ordner nicht mehr benötigt.

Die globalen Variablen sind durch Klassenkonstanten ersetzt.

3.4.4

Für REDAXO
^5.3.0
Veröffentlicht am
23.06.2022

Ein Fehler im Zusammenhang mit der zeitlichen Sortierung der Termine ist korrigiert. Bei Terminen mit gleichem Datum und gleicher Startzeit wurde nur einer von diesen angezeigt.

3.4.3

Für REDAXO
^5.3.0
Veröffentlicht am
01.06.2022

Die Ausgabe der Terminliste erfolgt jetzt nicht nur in der Reihenfolge des Datums, sondern ist bei gleichem Datum auch nach Uhrzeit des Beginns der Termine sortiert.

3.4.2

Für REDAXO
^5.3.0
Veröffentlicht am
09.10.2021

Im Modul 'Termine anzeigen' werden jetzt im Falle der Terminliste die Default-Werte Startdatum und Dauer korrekt berücksichtigt.

3.4.1

Für REDAXO
^5.3.0
Veröffentlicht am
24.09.2021

Bisher konnte jeder Redakteur die Kalendermenüs nur mit allen Terminen aus allen Terminkategorien aus seinem Verantwortungsbereich zugleich unterlegen. Ab jetzt kann er die Menüs auf jede einzelne seiner Kategorien beschränken. D.h. Jede Terminkategorie stellt einen eigenständigen Terminkalender dar.

Auch im Backend, d.h. bei der Terminverwaltung, ist jetzt das Suchmenü verwendbar. Die Datumsangabe in der Terminliste ist als Link auf das entsprechende Tagesblatt ausgebildet.

In der Terminliste können jetzt Termine entsprechend ihrer Kategorie markiert werden, z.B. durch Farben. Die Markierung erfolgt über CSS-Klassen für den linken Rand der rechten Tabellenspalte. Der Default ist 'none', d.h. keine Markierung. Die zugehörigen Klassen werden sinnvollerweise vor einem Block, der mit dem Modul 'Termine anzeigen' erzeugt wird, geeignet definiert.
Das Einbringen einer entsprechenden Farbpalette über ein $GLOBALS-Array (vergl. Version 3.3.1) ist nicht mehr möglich.

Die Icons in den Kalendermenüs sind durch Icons aus dem Awesome-Font ersetzt.

Das Eingabeformular für den Ersatztermin eines Wiederholungstermins enthält nun bereits das gewählte Datum.

Zwei kleine Fehler sind behoben (im Suchmenü bzw. im Terminblatt).

3.4

Für REDAXO
^5.3.0
Veröffentlicht am
04.09.2021

Redakteuren kann jetzt Verwaltung und Ausgabe von Terminen einer oder mehrerer Kategorien in Form von Benutzerrollen zugewiesen werden. Damit ist die Organisation mehrerer unabhängiger Terminkalender in einer Tabelle mit zwei Modulen möglich.

Der Modul zur Verwaltung der Termine ist vollständig umgebaut. Die Aktionen erfolgen jetzt im Output-Teil des Moduls. Startmenü ist dabei immer das Monatsmenü des aktuellen Monats. Zum Anlegen eines neuen Termins muss jetzt das Tagesblatt des entsprechenden Tages aufgesucht werden; dessen Datum wird ins Formular übernommen.

Die Daten eines Termins können jetzt HTML-Texte enthalten, u.a. also auch Links.

Neu ist die Möglichkeit, einen Termin zu kopieren. Das ist u.a. dann interessant, wenn im Falle wöchentlich wiederkehrender Termine an einem einzelnen Tag eine Ergänzung angebracht werden soll ('Ersatztermin').

Termine werden jetzt nicht nur nach Datum sortiert, sondern auch nach Uhrzeit.

Die Tagesangaben in der linken Spalte des Monats- und des Wochensblatts sind jetzt als Links auf das zugehörige Tagesblatt ausgebildet.

Im Termin-Eingabeformular ist die Wahl der Terminkategorie in die erste Zeile gerückt.

Design und Stylesheets von Suchmenü und Terminliste sind leicht verändert.

3.3.1

Für REDAXO
^5.3.0
Veröffentlicht am
15.06.2021

Die Version enthält eine kleine Verbesserung des responsiven Designs für iPhones.

Im Suchmenü sind die abgelaufenen Termine jetzt standardmäßig ausgeblendet.

Das Design der Terminliste wird jetzt über CSS-Klassen gesteuert. Die Defaults können über eigene Stylesheets individuell überschrieben und angepasst werden. Die Termine sind in der Liste zusätzlich entsprechend ihrer Kategorie farblich markierbar; die zugehörige Farbpalette kann über ein $GLOBALS-Array eingebracht werden.

3.3

Für REDAXO
^5.3.0
Veröffentlicht am
26.03.2021

Die Menüs sind jetzt systematischer strukturiert und verlinkt. Außerdem gibt es jetzt nur noch ein Suchmenü über jeweils ein Kalenderjahr.

Die Menüs sind jetzt mittels responsiver CSS-Codes am Smartphone genauso gut lesbar wie am Desktop.

Die Terminkategorien können jetzt vollständig getrennt benutzt und verwaltet werden.

3.2.1

Für REDAXO
^5.3.0
Veröffentlicht am
20.02.2021

In den Monats-/Wochen-/Tagesblättern im Frontend werden jetzt wieder alle Folgetermine von Terminen über mehrere Tage angezeigt.

Wenn der Modul 'Termine anzeigen' mit dem Zeitraumfiltermenü gestartet wird, ist jetzt wieder der Übergang in andere Menüs möglich.

Die Darstellung des Terminblatts ist erweitert.

3.2

Für REDAXO
^5.3.0
Veröffentlicht am
28.01.2021

Bei wöchentlich wiederkehrenden Terminen kann jetzt für jeden zugehörigen Wiederholungstermin ein Alternativtermin eingegeben werden. Dieser ersetzt an seinem Datum den Wiederholungstermin in allen Menüs und Terminlisten. Voraussetzung ist, dass der Alternativtermin in Datum, Bezeichnung und Kategorie mit dem zu ersetzenden Termin übereinstimmt und selbst kein Wiederholungstermin und kein Folgetermin ist.

Die Auswahlmenüs für die Terminkategorien enthalten die Kategorien jetzt in der Reihenfolge, wie sie im Konfigurationsformular definiert sind.

Die Dokumentation ist etwas erweitert, u.a. um 'erste Schritte'.

Die Frontendausgabe beim Modul 'Termine anzeigen' liefert jetzt das Zeitraumfiltermenü mit korrektem Zeitraum.

Die vor Version 3.1 angebotenen Module 'Start-Kalendermenü' und 'Standard-Terminliste' werden jetzt nicht mehr mit installiert. Sie sind seit Version 3.1 obsolet (ersetzbar durch Modul 'Termine anzeigen').

3.1.2

Für REDAXO
^5.3.0
Veröffentlicht am
20.01.2021

Ein kleines Detail bei der Ausgabe einer Terminliste in einem gegebenen Datumsbereich ist geändert. Ein Termin über mehrere Tage ('Folgetermin'), der vorher beginnt, aber noch teilweise in den Datumsbereich hineinragt, wird jetzt vollständig mit aufgelistet. Bisher wurde der Termin in Einzeltermine aufgelöst und nur die wirklich im Datumsbereich liegenden Tage aufgeführt.

Beim Anlegen eines Blocks mit dem Modul 'Termine verwalten' konnte es auf einigen Systemen zu einem Syntaxfehler kommen, weil die Variable REX_SLICE_ID noch nicht definiert ist. Der Fehler ist behoben.

3.1.1

Für REDAXO
^5.3.0
Veröffentlicht am
08.01.2021

Eine function im Eingabeteil des Moduls zur Ausgabe eines Kalendermenüs oder einer Terminliste wurde korrigiert. Jetzt kann der Startzeitpunkt wirklich der jeweils aktuelle Termin sein.

3.1

Für REDAXO
^5.3.0
Veröffentlicht am
02.10.2020

Es wird ein zusätzliches Such- und Filtermenü für Termine in einem beliebigen Zeitraum angeboten. Es ist mit allen bisherigen Menüs verlinkt.

Die Ausgabe einer Standard-Terminliste lässt sich organisatorisch wie die Ausgabe eines Kalendermenüs behandeln. Die entsprechenden Funktionen sind jetzt zusammen in einem neuen Modul integriert, sodass die bisherigen Module für das Frontend obsolet sind. Sobald Letztere durch den neuen Modul ersetzt sind, können sie gelöscht werden.

Die per Modul ausgebbaren Kalendermenüs sind jetzt eingeschränkt auf Monatsmenü, Monats-, Wochen-, Tagesblatt sowie auf das neue Zeitraumfiltermenü und zusätzlich auf die einfache Terminliste.

Der Modul zur Terminverwaltung gestattet in der installierten Form den Zugriff auf die Termine aller Kategorien ($katid=0 im Input-Teil). Er lässt sich aber leicht kopieren und die Kopie mit der Einschränkung auf eine spezifische Terminkategorie versehen ($katid=1 oder $katid=2 oder ...). Auf diese Weise können Termine einzelner Kategorien von unterschiedlichen Redakteuren verwaltet werden.

3.0

Für REDAXO
^5.3.0
Veröffentlicht am
22.08.2020

Ein Termin wird nicht mehr ausschließlich als eintägig aufgefasst. Er kann sich jetzt auch über mehrere aufeinander folgende Tage erstrecken oder eine Folge von sich wöchentlich wiederholenden eintägigen Veranstaltungen darstellen.
Dementsprechend hat die Termintabelle 'rex_kal_termine' nun die zusätzlichen Spalten 'tage' und 'wochen'. Erstere enthält die Anzahl der aufeinander folgenden Tage der Veranstaltung, Letztere die Anzahl der wöchentlichen Wiederholungen.

Mit dem Upgrade auf Version 3 erhalten alle vorhandenen Termine die Spaltenwerte tage=1 (eintägiger Termin) und wochen=0 (keine wöchentliche Wiederholung).

Die Termintabelle enthält jetzt anstelle der Spalte 'kategorie' mit der Bezeichnung der Terminkategorie eine Spalte 'kat_id' mit der Id der Terminkategorie. Die zugehörige Kategoriebezeichnung wird nur noch als Konfigurationsparameter abgelegt.

Mit dem Upgrade auf Version 3 wird die Tabelle entsprechend angepasst. Die Reihenfolge, in der die vorhandenen Kategorien in der Termintabelle auftreten, liefert die Werte der Kategorie-Ids (1, 2, ...).

Die meisten Konfigurationsparameter müssen mit Version 3 neu definiert werden.

Die Farbtöne zur Darstellung der Termin- und Kalendermenüs werden jetzt auf Basis einer einzigen Grundfarbe generiert. Nur noch diese Grundfarbe ist zu konfigurieren; sie entspricht der bisherigen ersten Farbe ('dunkle Schrift-/Rahmenfarbe').
Die Parameter zur halbgrafischen Darstellung des Uhrzeit-Bereichs bei Tagesterminen enthalten zunächst Default-Werte und müssen angepasst werden.
Standardmäßig wird mit einer Neuinstallation jetzt nur genau eine Kategorie mit der Bezeichnung 'Allgemein' angelegt. Die vorhandenen Kategoriebezeichnungen werden in der neuen Konfiguration ergänzt.

Als erster Schritt eines Upgrades von einer älteren Version (<=2.2.1) sollte diese de-installiert werden. Ein re-install reicht nicht, um eine korrekte neue Konfiguration zu bekommen.

2.2.1

Für REDAXO
^5.3.0
Veröffentlicht am
14.03.2020

Kleinere Korrekturen am Programmcode zur Vermeidung von PHP-Warnungen.

2.2.0

Für REDAXO
^5.3.0
Veröffentlicht am
19.12.2019

Leider war die Version 2.1.0 fehlerhaft und i.w. unbrauchbar.
Die Konfiguration war nur in der Default-Version nutzbar. Eine Änderung führte in einigen Fällen auf eine fehlerhafte Verschiebung der Parameter. Der Fehler ist behoben.
Die Suchfunktion im Modul der Terminverwaltung führte nicht zum Ziel. Der Fehler ist behoben.
Die halbgrafische Darstellung der Stundenleiste war evtl. fehlerhaft. Der Fehler ist behoben.

2.1.0

Für REDAXO
^5.3.0
Veröffentlicht am
20.04.2019

Der Code ist mit 'error_reporting(E_ALL);' überprüft.
Die Verwaltung der Termine ist vollständig überarbeitet. Ein Termin, der zu löschen, zu korrigieren oder zu kopieren ist, wird nun mittels Durchklicken durch die (ja schon vorhandenen) Kalendermenüs gesucht.

2.0.0

Für REDAXO
^5.3.0
Veröffentlicht am
15.02.2019

Diese Version ist komplett überarbeitet und auf Redaxo 5 angepasst.

1.3 (November 2016)

Für REDAXO
4.7.x, 4.6.x, 4.4.x
Veröffentlicht am
24.08.2016

Überarbeitung der Installations-Prozedur:

Die PHP-Codes der beiden Module werden jetzt aus dem neuen Ordner "module" übernommen.

Die beiden folgenden Dateien werden bei der Erstinstallation neu erzeugt, aber nun im neuen Ordner "generated":

  • generated/settings.php ersetzt functions/function.settings.inc.php.
  • generated/kal_termine.css ersetzt files/kal_termine.css.
  • Der Ordner "files" entfällt.

Um ggf. vorgenommene Konfigurationen zu erhalten, sollte bei einer neuen Installation folgendermaßen vorgegangen werden:

  • Re-Installation des AddOn
  • Umbenennen der alten Datei functions/function.settings.inc.php in settings.php.
  • Verschieben in den Ordner generated. Dabei wird die dort gerade erzeugte Datei überschrieben.
  • Verschieben der alten Datei files/kal_termine.css in den Ordner generated. Dabei wird die dort gerade erzeugte Datei überschrieben.

Bei einer De-Installation des AddOns werden die beiden Dateien im Ordner "generated" gelöscht.