Kalender mit dynamischem Anmeldeformular
In Powermail soll im Formular eine Listbox mit den verfügbaren Anmeldeterminen gefüllt werden.
Beim Klick auf "Anmelden zum Termin" im Kalender wird die Event-Uid an das Formular übergeben (im Template angepasst), daraus wird in der Listbox der Wert ausgewählt.
Dazu wird im Template templates/cal/phpicalendar_event.tmpl an die Url ff. Parameter angehängt:
..schule/anmeldung.html?event=###EVENT_ID###&eventuid=###UID###
Einbindung der Kalender-Events in Powermail
# versteckte Parameter fuer die Übergabe der Event-UID im Formular lib.caleventparams = COA_INT lib.caleventparams { 5 = TEXT 5.wrap = <input id="uid97" name="tx_powermail_pi1[uid97]" type="hidden" value="|"/> 5.data = GPvar:eventuid 10 = TEXT 10.wrap = <input id="uid98" name="tx_powermail_pi1[uid98]" type="hidden" value="|"/> 10.data = GPvar:event } # Aufbau der selectbox aus den Kalender-Terminen lib.caleventsbox = COA_INT lib.caleventsbox { 10 = TEXT 10.value = <label for="uid16">Kurstermin:</label> 20 = CONTENT 20.wrap = <select id="uid16" name="tx_powermail_pi1[uid16]" size="1">|</select> 20 { table = tx_cal_event select { pidInList = 98 orderBy = start_date selectFields = STR_TO_DATE(start_date,"%Y%m%d") AS StartDate, start_time - 3600 AS StartTime, title, uid, freq, byday #andWhere.data = GPvar:tx_powermail_pi1|uid97 #andWhere.wrap = uid = | #andWhere.if.isTrue.data = GPvar:tx_powermail_pi1|uid97 } renderObj = COA renderObj { 10 = COA 10 { 15 = COA 15.10 = TEXT 15.10.value = wöchentlich 15.20 = TEXT 15.20.field = byday 15.30 = TEXT 15.30.value = 15.if { value = week equals.field = freq } 18 = TEXT 18.field = StartDate 18.wrap = | 18.if { value = week equals.field = freq negate = 1 } 20 = TEXT 20.field = StartTime 20.strftime = %H:%M 20.wrap = | 30 = TEXT 30.field = title wrap = <option value="|" } 12 = TEXT 12.value = selected 12.if { value.data = GPvar:tx_powermail_pi1|uid97 equals.field = uid } 15 = TEXT 15.value = > 20 = COA 20 { 15 = COA 15.10 = TEXT 15.10.value = wöchentlich 15.20 = TEXT 15.20.field = byday 15.30 = TEXT 15.30.value = 15.if { value = week equals.field = freq } 18 = TEXT 18.field = StartDate 18.wrap = | 18.if { value = week equals.field = freq negate = 1 } 20 = TEXT 20.field = StartTime 20.strftime = %H:%M 20.wrap = | 30 = TEXT 30.field = title wrap = |</option> } } } } }
Powermail-Formular
Bei Powermail mag ich die Ausführung mit 2++ Schritten: schlecht für Spammer ...
Daher muss aber vom 1. zum 2. Schritt die Event-ID übergeben werden, um die Listbox anzuzeigen. Dazu wird im Powermail-Formulareditor ein Feld mit Typ "TYPOscript" angelegt, Inhalt: lib.caleventparams (s.o.).
Auch im 2. Formular wird die Listbox mit einem TYPOscript-Feld eingebunden,
Inhalt: lib.caleventsbox