[calendar_editor] Kalender-Events im Frontend bearbeiten
Das Modul ermöglicht das Bearbeiten von Events im Frontend, wenn auch deutlich abgespeckt. Gedacht ist es für Fälle, wo das Backend dafür überladen und Overkill wäre.
Bearbeitet werden können Start- und Enddatum, Start- und Endzeit (aber ohne das vorherige Anhaken von "Zeit hinzufügen"), Titel, Teaser, Details (früher ein feld direkt bei Events, jetzt ein Inhaltselement vom typ "text") und die CSS-Klasse. Für letztere kann im Backend eine vordefinierte Liste mit "sprechenden Werten" erstellt werden, aus denen der User dann auswählen kann.
Version 3 ist für Contao 3 entwickelt, sollte laufen von 3.2 bis 3.5, sowohl mit PHP 5.6 als auch 7.x.
Version 4 ist für Contao 4 als Bundle entwickelt, und ist für die LTS Contao 4.4 gedacht. Ob es mit neueren Versionen auch funktioniert, kann ich noch nicht sagen.
Link zur Erweiterung:
Version 3 für Contao 3 im Extension Repository: calendar_editor.
Version 4 auf Packagist, installierbar über den Contao-manager contao-calendareditor-bundle
Unterschiede zwischen Version 3 und 4
- In Version 4 gibt es aktuell keine Möglichkeit, eigene TinyMCE-Vorlagen updatesicher einzutragen. Temporär kann man eigene Files in vendor\danielgausi\contao-calendareditor-bundle\src\Resources\contao\tinyMCE kopieren, die sind dann aber nach einem Update ggf. wieder weg.
- In Version 4 wird der DatePicker direkt mitgeliefert, der in Version 3 selbst dazu gebastelt werden muss. Dabei muss aber jQuery im Seitentemplate eingebunden werden, nicht mehr MooTools. Kann in den Moduleinstellungen deaktiviert und angepasst werden. Besondere Beachtung verdient das Stylesheet, das von extern (!) dazu geladen wird (das ist so in der CalendarField-Erweiterung gelöst, die ich dafür nutze). Im Zweifel das externe CSS einmal laden lassen, kopieren, manuell in das Seitenlayout einfügen und das laden des CSS in dieser Erweiterung abschalten.
Hinweise zur Nutzung des Moduls
Zuerst muss ein Modul vom Typ "Event-Editor" erstellt werden. Dort können die erlaubten Kalender angegeben werden, ggf. Pflichtfelder, und einige weitere Einstellungen.
Für das Detail-Feld kann eine TinyMCE-Konfigurationsdatei gewählt werden (eine minimale-Konfig mit "normalen Links" anstelle der "typolinks" ist mit dabei), und für das CSS-Feld kann man eine Liste mit vordefinierten Werten erstellen, aus denen der FE-Nutzer dann auswählen kann.
In den Kalender-Einstellungen muss man dann die Frontend-Bearbeitung aktivieren. Wichtig ist dabei die zweite Weiterleitungsseite, die auf eine Seite mit dem Event-Editor-Modul führt, und natürlich die erlaubten Mitgliedergruppen.
Damit im Eventlisten- und Kalender-Modul Links zur "Bearbeiten"-Seite auftauchen, muss dafür ein anderes Template gewählt werden (z.B. "event_list_edit"). Wie man eigene Templates passend ändert, sollte anhand der Beispiel-Templates klar werden.
Wenn man im Kalender-Modul für jeden Tag einen "Event heute hinzufügen"-Link haben möchte, muss man das Kalender-Modul zusätzlich in ein "Kalender mit FE Bearbeitung"-Modul umwandeln. Das bewirkt dann, dass im Editor das Startdatum bereits passend ausgefüllt ist.
Für einen passenden Bearbeiten-Link auf der Eventleser Seite gibt es das Modul "Eventleser: Edit-Link". Das ersetzt nicht den Eventleser, sondern muss zusätzlich auf die Seite.
Und zuletzt: Damit der Frontend-User auch unveröffentlichte Events später veröffentlichen kann (falls das erwünscht ist), gibt es ein Modul "Unveröffentlichte Eventliste", das einfach alle unveröffentlichten Events auflistet.
Ein paar interne Dinge:
- Das Feld "Details" füllt ein Inhaltselement vom Typ "text", und dort nur das Feld "text". Andere Dinge wie Überschrift (!), Bilder, oder ähnliches werden dort nicht gesetzt.
- Bearbeitet der Frontend-User ein Textfeld, das über das Backend erstellt und mit diesen Dingen befüllt wurde, dann wird die Überschrift gelöscht (die kann ja ggf. auch über den TinyMCE erstellt werden). Dem Frontend-User wird dann aber ein Warnhinweis ausgegeben.Vorhandene Bilder bleiben erhalten.
- Wenn ein Event mehrere Inhaltselemente enthält, dann wird das erste vom Typ "text" zum Bearbeiten präsentiert. Gibt der Frontenduser dann einen leeren Text bei "Details" ein, wird dieses Inhaltselement gelöscht, und die nächste Bearbeitung des Events führt zur Bearbeitung des nächsten Inhaltselementes vom Typ "text".
- Eine im Backend bei einem Event eingestellte Weiterleitung, die die vom Kalender überschreibt, wird bei einer Bearbeitung über das Frontend immer mit "default" überschrieben.
Danke für diese Erweiterung
Habe gestern schon mal ein bisschen getestet und muss sagen, das ist ne tolle Sache!:D
Man findet sich leicht zurecht und kann sofort los legen!
Danke Gausi!
Hinzufügen-Link nur ab "Heute"
Hallo Gausi,
vielen Dank für die geniale Erweiterung.
Ist es möglich den Hinzufügen-Link so einzubauen, dass er ausschließlich nur neue Einträge ab "Heute" und in "Zukunft" zulässt?
Auf einer Vereinshomepage soll verhindert werden, dass sich Mitglieder im Nachhinein noch für Arbeiten (die nicht immer kontrolliert werden) eintragen können, die sie gar nicht geleistet haben (in jedem Verein gibt es wohl ein paar "schwarze Schafe").
VG
Liste der Anhänge anzeigen (Anzahl: 1)
Also das mit dem "veröffentlicht" bzw. "Termin veröffentlichen" - da war ich der festen Überzeugung, dass das im Backend auch so ist, wie ich das da gemacht habe. Daher hatte ich das nicht geändert. Musste aber dann doch feststellen, dass ich mich da geirrt habe :o . Hab das im aktuellen Build nun doch geändert (englisch und deutsch - wie das im japanischen aussieht weiß ich nicht).
Und zu dem Hook: Bei meinem Beispiel gehe ich davon aus, dass die Erweiterung "calenderfield" installiert ist. Bei anderen Erweiterungen heißt das Kalenderfeld ggf. anders. Und wenn man dann noch den Ordner aus dem Anhang in dem Modules-Ordner packt, dann sollte das eigentlich klappen. Sieht dann so aus wie in dem Demo-Kalender auf meiner Seite. :)
Liste der Anhänge anzeigen (Anzahl: 1)
Date/Time input fileld
Hi,
I'm sorry for writing in English.
I recently tried to use calendar_editor which is nice extension, but I noticed I couldn't post any event.
After reading the code, it was parsing of date/time of form fields. ModuleEventEditor class uses strtotime() to parse string into date/time. strtotime() understand limited format of date/time.
So I tried to use Date class with $GLOBALS['TL_CONFIG']['dateFormat'] and $GLOBALS['TL_CONFIG']['datimFormat'], these global variables are localized with the language set in web site's root page.
Anyway, here is my patch which solve this problem.
Best regards.
P.S.
How can I resize textare fields, teaser and event detail?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
gerritlo
Hallo zusammen,
ich bin nun auch auf diese Erweiterung gestoßen und muss sagen, dass ich genau diese gesucht habe. Mir fehlt nur die Möglichkeit einzelne Felder abzuschalten, bspw. CssClass. Geht das?
FG
Hallo gerritlo,
ich bin auch begeistert von der Erweiterung:)
Die CSS Klasse benötie ich auch nicht. Da ich mir das alternateTemplate von der Entwicklerseite heruntergeladen hab (download) hab ich dieses ein wenig modifiziert (siehe Anhang). Hier hab ich Beispielsweise für dich als einzigsten Unterschied zum Original bei dem Block:
Code:
<?php if ($this->fields['cssClass']): ?>
<?php $objWidget = $this->fields['cssClass']; ?>
<tr class="<?php echo $class; ?> css_class_editor">
<td class="label"><?php echo $objWidget->generateLabel(); ?></td>
<td class="value"><?php echo $objWidget->generateWithError(); ?></td>
</tr>
<?php endif; ?>
die CSS Klasse: css_class_editor vergeben... jetzt nurnoch mit CSS ansprechen und auf display none setzen. Z.B.:
Code:
.css_class_editor
{
display:none;
}
Bei einem anderen Template gehts natürlich genauso ;)
du kannsd die Passage natürlich auch rauslöschen;)... aber wenn du sie später mal brauchst... Man weiß ja nie
Viel Spaß damit,
Liebe Grüße t3g aka. Heini :D
Calendar_editor speichert Date und Time in der DB falsch
Hallo,
ich nutze Contao 2.9.5 und habe calendar_editor 1.3.0 installiert, da ich genau diese Funktion benötige. Soweit funktioniert auch alles prima, nur werden nach der Eingabe eines neuen Termins im FE die Werte in der Datenbank falsch gesetzt. Wenn z.B. nur ein Startdatum gesetzt wird, werden folgende Werte gesetzt:
start_Time=0
end_Time=0
start_Date=0
end_Date=NULL
timestamp=hier wird nicht der Timestamp der Eingabe gesetzt, sondern der des eingebenen Start-Datums.
Damit werden die Termine natürlich auf 01.01.1970 gesetzt. Direkt nach der Eingabe scheinen die Werte noch zu stimmen, in der Notification-Mail stehen die korrekten Werte drin und sie tauchen im Kalender des FEs auch kurz am richtigen Datum auf, sind jedoch beim nächsten Seitenaufbau verschwunden.
Ha jemand eine Idee?
Grüße,
Steff
individuelle Felder hinzufügen
Hallo Zusammen,
erstmal vorne weg: Vielen Dank für diese tolle Erweiterung!
Ich versuche gerade im Frontend Editor einige Felder hinzuzufügen:
Eine Adresse (straße, PLZ, Ort) und eine Uploadmöglichkeit für ein Bild.
Da ich programiertechnisch leider nicht der hellste bin :-) habe ich meine Schwierigkeiten der Anleitung zu folgen.
Generelle Frage: Geht das, was ich will überhaupt, bzw. brauche ich da noch mehr Erweiterungen?
Prinzipiell denke ich, dass man folgendes machen müsste:
1. die Felder der Datenbank hinzufügen, in der die Kalenderevents gespeichert werden?
2. das Template zur Frontendbearbeitung um diese Felder erweitern ?
3. die zusätlichen Informationen in der Eventliste darstellen ?
Besteht denn die Möglichkeit für einen Laien sowas zu erstellen?
Ich danke euch für eure Hilfe