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.).





