Mit der Version 2.5.3 beende ich nun die Terminliste für die Contenido-Version <= 4.6.24.
Ab der Version 2.6 wird es einen neuen Thread unter Module 4.8.x geben! http://forum.contenido.org/viewtopic.php?t=22629
hier ist mein Beitrag zum Thema Termine und deren Anzeige im CMS.
Basierend auf diverse Terminmodule hier im Forum (Herzlichen Dank an alle, die hier bereits wichtige vorarbeit geleistet haben) habe ich den Code zerpflückt, angepasst und erweitert. Herausgekommen ist dabei folgende Module:
- Termineingabe/anzeige universal
- Terminliste universal
- Terminteaser universal
- Terminliste Select universal
- sKalender
In der neuen Version 2.5 habe ich noch ein paar zusätzliche Terminfunktionen eingebaut (z.B. 14tägig, Ausschlussliste ...). Daneben habe ich in allen Modulen den Code ein wenig aufgeräumt und bereinigt.
Wichtige Neuerung: Wichtige Funktionen, die in allen Modulen benötigt werden (z.B. Ermittlung von Datum oder zyklischen Terminen) habe ich in eine eigene Funktionsbibliothek functions.terminliste.php ausgelagert. Diese ist natürlich auch im Paket enthalten.
Bitte ausgiebig testen und Fehler hier melden!
Folgende Funktionen sind berücksichtigt:
Modul: Termineingabe/anzeige universal V2.5
Folgende Felder können definiert werden:
- Titel
- Startdatum / Zeit
- Enddatum / Zeit
- Mehrfachtermine: täglich, wöchentlich, 14tägig, monatlich, jährlich
- jeden x-ten Tag
- Angabe der Wochentage im Monat
- Angabe 1., 2., .. Wochentag im Monat
- zusätzliche Termin (z.B. ohne erkennbaren Zyklus)
- Ausschlussliste für Terminzyklen
- Ort und Details
- Ort kann als Dropdown vordefiniert werden
- Auswahl, ob Termin im Teaser erscheinen soll
- HTML Eingabe für ausführiche Informationen
- Link zu internen oder externen Seiten
- 2* 10 frei definierbare Kategorien, nach denen in der Terminliste selektiert werden kann.
- Multilanguage fähig
- Grafik
- bei vielen Terminzyklen kann die Anzahl der Termine in der Detailansicht definiert werden.
Die Anzeige der Daten erfolgt nun auch über HTML Template:
- terminanzeige_v2.html
Styles und Aussehen werden über CSS festgelegt.
Input Maske:
Edit Maske:
Modul: Terminliste universal V2.5
mit diversen Einstellungsmöglichkeiten im INPUT Bereich:
Weitere Funktionen:
- Primäre Kategori wählen (Terminliste muss nun nicht mehr Startartikel in der gleichen Kategorie sein wie die Termine.)
- zusätzliche Kategorien wählen (benötigt function.input.helper.php von HerrB)
- abgelaufene Termine anzeigen / ausblenden
+ alle abgelaufenen Termine:
+ abgelaufenen Termine der aktuellen Woche
+ abgelaufenen Termine des aktuellen Monats
+ frei definierbares Datum ab
- aktuelle Termine anzeigen / ausblenden
+ alle Termine
+ aktuelle Woche + x Tage
+ aktueller Monat + x Tage
+ Anzahl von Tagen
+ Anzahl von Terminen
+ frei definierbares Datum von/bis
- Sortierung auf/absteigend
- Bezeichnung der Wochentage einblenden (Abk. oder komplett)
- Monat in der Datumsbezeichnung einblenden (j/n)
- Termine bei gleichen Datum zusammenfassen (j/n)
- Verlinkte Termine direkt anzeigen (j/n)
- Bei Terminen ohne HTML Inhalt keine Details anzeigen (j/n)
(Kategorien im Template sollten mit den Kategorien der Termine übereinstimmen)
- ModRewrite fähig
- mehrsprachig
Die Ausgabe der Daten erfolgt über HTML Templates:
- terminliste_v2.html
- terminliste_footer_v2.html
Styles und Aussehen werden über CSS festgelegt.
Input Maske:
NEU Modul: Terminliste Select universal V2.5
Diese neue Modul bietet die Möglichkeit für den Frontenduser die Selektierung der Termine in der Liste nach seinen Wünschen zu beeinflussen:
Input Maske:
Das Modul muss sich zusammen mit der Terminliste in einem Template befinden. Wichtig! Das Select Modul muss vor der Terminliste abgearbeitet werden, da Variablen übergeben werden.
Ansicht:
Modul: Terminteaser universal V2.5
mit diversen Einstellungsmöglichkeiten im INPUT Bereich
- Primäre Kategori wählen
- zusätzliche Kategorien wählen (benötigt function.input.helper.php von HerrB)
- Überschrift
- Anzahl der Artikel im Teaser
- Abgelaufene Termine anzeigen
- Sortierung auf-/absteigend
- Direkte Verlinkung zu Artikeln und externen Seiten
- Ändern der Anzeigeform
- Wochentage einblenden
- Link zur Terminliste einblenden
- Multilanguage fähig
Die Anzeige der Daten erfolgt nun auch über HTML Template:
- terminteaserliste.html
- terminteaserlaufschriftv.html
- terminteaserlaufschrifth.html
Styles und Aussehen werden über CSS festgelegt.
Input Maske:
Modul: Termin sKalender universal 2.5
Als Grundlage des Moduls wurde die freie PHP Class CCalender von Martin Kubitza (Skript von scripts.findnewlove.de) verwendet.
Der sKalender kann z.B. als Teaser in der Navigationsleiste auftauchen.
Als Anzeige der verlinkten Daten benötigt der sKalender das Modul Terminliste universal 2.5
Funktionen:
- Primäre Kategori wählen
- zusätzliche Kategorien wählen (benötigt function.input.helper.php von HerrB)
- Kategorie und Artikel der benötigten Terminliste wählen
- farbliche Kennzeichnung von belegt und frei
- farbliche Kennzeichnung von Wochentagen und Wochenende
- Link zu den Terminen kann aktiviert oder deaktiviert werden
- Umschalten zwischen Datum und Frei/Belegt
- ModRewrite fähig
- mehrsprachig
Styles und Aussehen werden über CSS festgelegt.
Die Anzeige der verlinkten Daten erfolgt über
das Modul Terminliste universal V 2.5
weiß: kein Termin am Wochentag
grau: kein Termin am Wochenende
blau: Termin an diesem Tag
gelb: Terminrange über diese Datum
z.B. Termin geht von Mo-Fr, dann ist Mo blau und Di-Fr. gelb.
Installation:
- Zip Archiv downloaden und entpacken
- /includes/function.input.helper.php nach /cms/includes (via FTP)
- /includes/function.terminliste.php nach /cms/includes (via FTP)
- /HTML-Templates/[alle Templates].html nach /cms/templates (via FTP) oder im Backend unter style/HTML Editor einzeln anlegen und Inhalte kopieren.
- /css/terminliste.css Inhalt der Datei in die eigene CSS Datei übernehmen.
- /Module/[Module].xml Im Backend unter style/Module neue Module anlegen und die XML Dateien importieren
Nun die Module in die Templates einfügen und vorkonfigurieren. Folgendes ist bei den Modulen zu beachten.
Einzig das Termineigabe/ausgabe Modul ist etwas kritisch. Hier sollte man auf zusätzliche "Header HTML" oder "Text HTML" Module im gleichen Template wenn möglich verzichten.
Bei vertümmelter oder leeren Anzeig von Terminen, kann hier die Ursache liegen.
Terminliste, Teaser und sKalender können meiner Erfahrung nach beliebig mit anderen Modulen in einem Template existieren.
Teaser und sKalender verlinken auf einen Artikel mit einer Terminliste (In der Konfiguration einstellbar) Wird dieser Artikel nicht gefunden, landet man auf der Standardfehlerseite.
Konfiguration
Wenn alle Module installiert, die Templates erstellt, die HTML Templates übertragen und die Stylesheeddatei angepass ist, kann man mit der Eingabe der Termine loslegen. Hier mal ein Beispiel:
1.) neue Kategorie für die Terminartikel anlegen z.B. Termine
2.) Das Default-Template für diese Kategorie sollte ein Template sein, in dem sich das Modul Terminein/ausgabe befindet.
3.) Terminartikel anlegen (Jeder Termin ist ein Artikel), online nicht Startartikel.
4.) Terminlistenartikel anlegen (Kategorie ist egal)
5.) Terminlistenartikel konfigurieren: In der Konfiguration der Terminliste als primäre Kategorie die Kategorie der Terminartikel angben. Alle anderen Parameter mal aktivieren (Einschränken kann man später)
6.) Vorschau der Terminliste aufrufen. Nun sollte man die Termine in der Liste sehen.
7.) Nun mit den vielen Enstellungen spielen und die Anzeige auf seine Bedürfnisse anpassen. Ebenso die Stylesheeds, die sind nur ein Beispiel.
Download:
Version 2.5.3: Terminliste_V2.5.3.zip aktuell 07.10.2008
ältere Versionen
Version 2.5.2: Terminliste_V2.5.2.zip 31.01.2008
Version 2.5.1:Terminliste_V2.5.1.zip 28.01.2008
Version 2.5: Terminliste_V2.5.zip 18.01.2008
Version 2.4.1:Terminliste_V2.4.1.zip 22.10.2006
Version 2.4: Terminliste_V2.4.zip 12.10.2006
Version 2.3: Terminliste_V2.3.zip 28.08.2006
Version 2.2: Terminliste_V2.2.zip 22.08.2006
Version 2.1.1: Terminliste_V2.1.1.zip 11.08.2006
Version 2.1: Terminliste_V2.1.zip
Version 2.0: Terminliste_V2.zip
Version 1.1: Terminliste_1.1.zip
Eine Demo der Terminliste
Eine Demo des Teasers
Wichtig!!!
- Spezialänderungen, die ich für einige durchgeführt habe, sind in den neuen Modulen nicht alle vorhanden, bitte prüfen!
Die Mehrfachauswahl der Kategorien im Input Bereich nutzt die Funktionsbibliothek function.input.helper.php von HerrB (herzlichen Dank dafür). Diese kann von HerrB in Zukunft modifiziert und abgeändert werden. Bitte auch hier mögliche Threads beachten!
Fragen und Problem zu den Modulen immer nur hier posten!
schlaucher