[Modul] Terminliste v3 (Ein- und Ausgabemodul)

Alles rund um Module und Plugins in CONTENIDO 4.10.
Antworten
homtata
Beiträge: 1050
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

[Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von homtata » 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.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.
Dateianhänge
terminlistenmodule.zip
v3.0.4, 24.04.2019
(85.33 KiB) 22-mal heruntergeladen

shi
Beiträge: 226
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von shi » Do 5. Sep 2019, 15:41

Unterstützt das Modul PHP 7.2? Inhalte der Detailsangaben und Zyklus lassen sich nicht abspeichern (The requested document was not found on this server.), Grundkonfiguration geht. Erhalte folgenden Fehler

Code: Alles auswählen

[05-Sep-2019 14:44:25 UTC] PHP Warning:  Use of undefined constant date0_weekdaynum - assumed 'date0_weekdaynum' (this will throw an Error in a future version of PHP) in /var/www/vhosts/domain.de/demo.domain.de/con/contenido/includes/include.con_editcontent.php(523) : eval()'d code on line 156
[05-Sep-2019 14:44:25 UTC] PHP Warning:  Use of undefined constant date0_dayshort - assumed 'date0_dayshort' (this will throw an Error in a future version of PHP) in /var/www/vhosts/domain.de/demo.domain.de/con/contenido/includes/include.con_editcontent.php(523) : eval()'d code on line 156
[05-Sep-2019 14:44:25 UTC] PHP Warning:  Use of undefined constant date0_weekdaynum - assumed 'date0_weekdaynum' (this will throw an Error in a future version of PHP) in /var/www/vhosts/domain.de/demo.domain.de/con/contenido/includes/include.con_editcontent.php(523) : eval()'d code on line 156

usw.

homtata
Beiträge: 1050
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von homtata » Do 5. Sep 2019, 16:17

Grundsätzlich unterstützt das Modul die 7.2, ich habe es darunter rudimentär getestet. Das Hauptproblem ist wahrscheinlich, dass nicht in allen Arrays Hochkommas verwendet werden und das noch unsauber ist.
Der "constant"-Fehler riecht nach Vorkommen, die wie folgt aussehen:

$datum[irgendwas]

statt

$datum["irgendwas"]

Ich kann das Modul derzeit aber nicht zeitnah durchsehen.

shi
Beiträge: 226
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von shi » Do 5. Sep 2019, 16:57

ok, aber warum wird, wenn man auf Speichern klickt kein Dokument gefunden. (The requested document was not found on this server.) Wurde da was geändert? Das Modul unter Con 4.9. funktioniert musste zwar auf https umstellen.

homtata
Beiträge: 1050
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von homtata » Do 5. Sep 2019, 21:05

Ja, der actionlink wurde umgestellt, damit er das Protokoll eigenständig erkennt. Aber vielleicht funktioniert der nicht für alle (lokalen oder auf Subdomains basierenden) Serverumgebungen...

Ca. Zeile 379 im Ausgabeteil des Moduls für die Termineingabe:

Code: Alles auswählen

$tpl->assign('actionlink', $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
Du kannst dir ja mal ausgeben lassen, was für ein String bei dir herauskommt und ob das wirklich das Problem wäre.

shi
Beiträge: 226
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von shi » Fr 6. Sep 2019, 07:54

Das wird als Actionlink ausgegeben:

Code: Alles auswählen

https://demo.domain.de/con/contenido/external/backendedit/front_content.php?changeview=edit&client=1&lang=1&action=con_editart&idartlang=2&idart=2&idcat=2&tmpchangelang=&contenido=tn29gn8krt7qsieagso3n64ptr

homtata
Beiträge: 1050
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von homtata » Fr 6. Sep 2019, 09:18

Schön, aber entspricht das jetzt dem internen Link des Frames, in dem du bearbeitest, oder nicht?

shi
Beiträge: 226
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: [Modul] Terminliste v3 (Ein- und Ausgabemodul)

Beitrag von shi » Fr 6. Sep 2019, 10:18

Ich habe mir die Änderungen angeschaut

Code: Alles auswählen

$tpl->assign('actionlink', $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
funktioniert nicht

Code: Alles auswählen

$tpl->assign('actionlink', "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
so geht es

Woran es nun liegt kann ich nicht sagen.

Antworten