[Modul] Terminliste v3 (Ein- und Ausgabemodul)
Verfasst: Do 25. Apr 2019, 00:03
Hallo Gemeinde,
hier nun die Terminlisten-Module für CON 4.10.x, basierend auf den Versionen von "schlaucher" für ältere Contenido-Versionen. Infos zum ersten großen Update unter 4.9.x sowie das Archiv zu Anpassungen seit 2013 finden sich hier:
posting.php?mode=edit&f=99&p=168175
Installation
Bitte die zip-Datei entpacken, die beiden Module per FTP hochladen und synchronisieren. In einem Unterordner von "Terminliste - Eingabe" liegen Dateien, die auf die jeweiligen Mandantenordner zu verteilen sind. Die CSS- und JS-Dateien bitte im Header des Layouts einbinden. Es wird jQuery benötigt, dies bitte vorher einbinden.
Danach ist folgendes zu tun:
- Gewünschte Terminkategorien in den Mandanteneinstellungen strichkommagetrennt anlegen (Bsp):
terminliste | categories | Seminar;Vortrag;Schulung;Workshop
- Gewünschte css-Klassen in den Mandanteneinstellungen anlegen (Bsp):
terminliste | css_classes | highlight;special;soldout
- Administration/Sprache, letzter Block: die korrekten Datums- und Zeiteinstellungen vornehmen, Varianten von d.m.Y H:i:s; entscheidend ist das Datumsfeld. Falls andere Einstellungen gewünscht sind, dann im Modul selbst oben das Auslesen dieser Einstellungen aushebeln und dort eigene Formate setzen.
- Neue Vorlagen anlegen: eine für die Termineingabe, eine für die Terminausgabe und diese Artikeln/Kategorien zuweisen
Modul Termin Eingabe
Die meisten der alten Einstellungen sind wieder da, einige wenige wurden geopfert, weil sich andere Lösungen anbieten. Soweit möglich, wurde auf existierende CMS-Typen gesetzt - das macht das Datumshandling erstmal etwas umständlicher, dafür kann man über CMS-Date gleichzeitig die Uhrzeit mit einstellen. Den früheren Punkt "Highlight" gibt es so nicht mehr, dafür kann man jetzt jedem Termin css-Klassen mitgeben.
Der Eingabebereich lässt sich durch Auswählen geänderter Smarty-Templates im Konfigurationsbereich recht einfach verschlanken, ein Beispiel ist mit enthalten.
Prinzipiell lässt sich der Termin durch Aufrufen des Artikels im Frontend auch darstellen. Allerdings durchläuft er nicht die intensivere Routine, die in der normalen Terminliste angewendet wird. Da ich diese Funktion nicht wirklich brauche, müsstet Ihr hier im Modul selbst Dinge für die Ausgabe nachpflegen, falls es Euch wichtig ist.
Modul Termin Ausgabe
Wie schon erwähnt, laufen jetzt alle Ausgaben hier zusammen, daher ist der Konfigurationsbereich des Moduls umfangreicher. Die Ausgabe kennt drei Varianten:
- Ausgabe dessen, was in der Konfiguration angegeben ist
- Die Ausgabe des Frontenduser-Suchmoduls und dann ggf. dessen Ergebnisse
- Die Ausgabe des Kalenders und dann ggf. dessen Ergebnisse
Die Terminkategorieeinstellungen greifen für alle drei Fälle, die meisten anderen Einstellungen nur für je einen der drei o.g. Fälle.
Wenn alles richtig konfiguriert ist, sollte im Frontenduser-Suchmodul der DatePicker zu sehen sein rechts neben den Input-Feldern.
Die Namen der Tage und Monate lassen sich im Moduloutput über Arrays an die jeweilige Sprachversion anpassen. Alle Datumsfelder sollten somit auch mit sehr vielen Sprachversionen laufen und automatisch umgeschossen werden.
WICHTIG: Im Modul selbst habe ich vergessen zu erwähnen, dass (wie bisher) die Anzahl der anzuzeigenden Artikel auf "-1" stehen muss, wenn alle gezeigt werden sollen.
Smarty-Templates
Die Darstellung der Termine lässt sich deutlich leichter variieren, indem man Template-Varianten erstellt und diese zuordnet. So erstelle ich pro Termin einen recht umfangreichen Datensatz, dessen einzelne Werte in den Smarty-Templates dann verwendet werden können, um z.B. zu entscheiden, ob und wie gruppierte Termine dargestellt werden sollen. Eine Variablen-Liste findet sich in einem separaten Template, das man am Namen gut erkennen kann.
Die Module sind noch nicht perfekt und an manchen Stellen noch ungalant, und es sind wie gesagt vielleicht nicht alle bisherigen Funktionen da, oder mancher wünscht sich noch andere Arten von Konfigurationen, aber ich denke, für die meisten Anwendungsfälle triffts das schonmal ganz gut.
Wer substanzielle Änderungen beisteuern möchte, möge das tun und mir die Änderungen bitte zuschicken - ich werde versuchen, das Modul weiter zu pflegen und feinzutunen.
Viktor
----------------
Update v3.0.6 vom 18.04.2023:
Modulinput und -output PHP8.0-fähig gemacht. Diese Version ist nicht isoliert getestet, sondern einer Kundenwebseite entnommen. Sollte es Probleme geben, bitte hier melden!
Update v3.0.5 vom 23.10.2019:
Alle Array-Aufrufe wurden php7.2-konform geändert. Im Termine-Darstellungsmodul wurde die Kalenderansicht wieder funktionstüchtig gemacht, die nicht funktionierte. Für Updater: geändert wurden in beiden Modulen lediglich die MODULAUSGABE-PHP-Dateien; alles andere ist unverändert.
Update v3.0.4 vom 24.04.2019:
Diverse Fehlerkorrekturen und Erweiterungen, bitte die revision.txt in der zip-Datei bemühen. Korrigiert ist vor allem, dass das Modul sowohl unter http wie https funktioniert und das Abspeichern der Termine nicht mehr verhindert.
hier nun die Terminlisten-Module für CON 4.10.x, basierend auf den Versionen von "schlaucher" für ältere Contenido-Versionen. Infos zum ersten großen Update unter 4.9.x sowie das Archiv zu Anpassungen seit 2013 finden sich hier:
posting.php?mode=edit&f=99&p=168175
Installation
Bitte die zip-Datei entpacken, die beiden Module per FTP hochladen und synchronisieren. In einem Unterordner von "Terminliste - Eingabe" liegen Dateien, die auf die jeweiligen Mandantenordner zu verteilen sind. Die CSS- und JS-Dateien bitte im Header des Layouts einbinden. Es wird jQuery benötigt, dies bitte vorher einbinden.
Danach ist folgendes zu tun:
- Gewünschte Terminkategorien in den Mandanteneinstellungen strichkommagetrennt anlegen (Bsp):
terminliste | categories | Seminar;Vortrag;Schulung;Workshop
- Gewünschte css-Klassen in den Mandanteneinstellungen anlegen (Bsp):
terminliste | css_classes | highlight;special;soldout
- Administration/Sprache, letzter Block: die korrekten Datums- und Zeiteinstellungen vornehmen, Varianten von d.m.Y H:i:s; entscheidend ist das Datumsfeld. Falls andere Einstellungen gewünscht sind, dann im Modul selbst oben das Auslesen dieser Einstellungen aushebeln und dort eigene Formate setzen.
- Neue Vorlagen anlegen: eine für die Termineingabe, eine für die Terminausgabe und diese Artikeln/Kategorien zuweisen
Modul Termin Eingabe
Die meisten der alten Einstellungen sind wieder da, einige wenige wurden geopfert, weil sich andere Lösungen anbieten. Soweit möglich, wurde auf existierende CMS-Typen gesetzt - das macht das Datumshandling erstmal etwas umständlicher, dafür kann man über CMS-Date gleichzeitig die Uhrzeit mit einstellen. Den früheren Punkt "Highlight" gibt es so nicht mehr, dafür kann man jetzt jedem Termin css-Klassen mitgeben.
Der Eingabebereich lässt sich durch Auswählen geänderter Smarty-Templates im Konfigurationsbereich recht einfach verschlanken, ein Beispiel ist mit enthalten.
Prinzipiell lässt sich der Termin durch Aufrufen des Artikels im Frontend auch darstellen. Allerdings durchläuft er nicht die intensivere Routine, die in der normalen Terminliste angewendet wird. Da ich diese Funktion nicht wirklich brauche, müsstet Ihr hier im Modul selbst Dinge für die Ausgabe nachpflegen, falls es Euch wichtig ist.
Modul Termin Ausgabe
Wie schon erwähnt, laufen jetzt alle Ausgaben hier zusammen, daher ist der Konfigurationsbereich des Moduls umfangreicher. Die Ausgabe kennt drei Varianten:
- Ausgabe dessen, was in der Konfiguration angegeben ist
- Die Ausgabe des Frontenduser-Suchmoduls und dann ggf. dessen Ergebnisse
- Die Ausgabe des Kalenders und dann ggf. dessen Ergebnisse
Die Terminkategorieeinstellungen greifen für alle drei Fälle, die meisten anderen Einstellungen nur für je einen der drei o.g. Fälle.
Wenn alles richtig konfiguriert ist, sollte im Frontenduser-Suchmodul der DatePicker zu sehen sein rechts neben den Input-Feldern.
Die Namen der Tage und Monate lassen sich im Moduloutput über Arrays an die jeweilige Sprachversion anpassen. Alle Datumsfelder sollten somit auch mit sehr vielen Sprachversionen laufen und automatisch umgeschossen werden.
WICHTIG: Im Modul selbst habe ich vergessen zu erwähnen, dass (wie bisher) die Anzahl der anzuzeigenden Artikel auf "-1" stehen muss, wenn alle gezeigt werden sollen.
Smarty-Templates
Die Darstellung der Termine lässt sich deutlich leichter variieren, indem man Template-Varianten erstellt und diese zuordnet. So erstelle ich pro Termin einen recht umfangreichen Datensatz, dessen einzelne Werte in den Smarty-Templates dann verwendet werden können, um z.B. zu entscheiden, ob und wie gruppierte Termine dargestellt werden sollen. Eine Variablen-Liste findet sich in einem separaten Template, das man am Namen gut erkennen kann.
Die Module sind noch nicht perfekt und an manchen Stellen noch ungalant, und es sind wie gesagt vielleicht nicht alle bisherigen Funktionen da, oder mancher wünscht sich noch andere Arten von Konfigurationen, aber ich denke, für die meisten Anwendungsfälle triffts das schonmal ganz gut.
Wer substanzielle Änderungen beisteuern möchte, möge das tun und mir die Änderungen bitte zuschicken - ich werde versuchen, das Modul weiter zu pflegen und feinzutunen.
Viktor
----------------
Update v3.0.6 vom 18.04.2023:
Modulinput und -output PHP8.0-fähig gemacht. Diese Version ist nicht isoliert getestet, sondern einer Kundenwebseite entnommen. Sollte es Probleme geben, bitte hier melden!
Update v3.0.5 vom 23.10.2019:
Alle Array-Aufrufe wurden php7.2-konform geändert. Im Termine-Darstellungsmodul wurde die Kalenderansicht wieder funktionstüchtig gemacht, die nicht funktionierte. Für Updater: geändert wurden in beiden Modulen lediglich die MODULAUSGABE-PHP-Dateien; alles andere ist unverändert.
Update v3.0.4 vom 24.04.2019:
Diverse Fehlerkorrekturen und Erweiterungen, bitte die revision.txt in der zip-Datei bemühen. Korrigiert ist vor allem, dass das Modul sowohl unter http wie https funktioniert und das Abspeichern der Termine nicht mehr verhindert.