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###
1: # versteckte Parameter fuer die Übergabe der Event-UID im Formular 2: lib.caleventparams = COA_INT 3: lib.caleventparams { 4: 5 = TEXT 5: 5.wrap = <input id="uid97" name="tx_powermail_pi1[uid97]" type="hidden" value="|"/> 6: 5.data = GPvar:eventuid 7: 10 = TEXT 8: 10.wrap = <input id="uid98" name="tx_powermail_pi1[uid98]" type="hidden" value="|"/> 9: 10.data = GPvar:event 10: } 11: 12: # Aufbau der selectbox aus den Kalender-Terminen 13: lib.caleventsbox = COA_INT 14: lib.caleventsbox { 15: 10 = TEXT 16: 10.value = <label for="uid16">Kurstermin:</label> 17: 20 = CONTENT 18: 20.wrap = <select id="uid16" name="tx_powermail_pi1[uid16]" size="1">|</select> 19: 20 { 20: table = tx_cal_event 21: select { 22: pidInList = 98 23: orderBy = start_date 24: selectFields = STR_TO_DATE(start_date,"%Y%m%d") AS StartDate, start_time - 3600 AS StartTime, title, uid, freq, byday 25: #andWhere.data = GPvar:tx_powermail_pi1|uid97 26: #andWhere.wrap = uid = | 27: #andWhere.if.isTrue.data = GPvar:tx_powermail_pi1|uid97 28: } 29: renderObj = COA 30: renderObj { 31: 10 = COA 32: 10 { 33: 15 = COA 34: 15.10 = TEXT 35: 15.10.value = wöchentlich 36: 15.20 = TEXT 37: 15.20.field = byday 38: 15.30 = TEXT 39: 15.30.value = 40: 15.if { 41: value = week 42: equals.field = freq 43: } 44: 18 = TEXT 45: 18.field = StartDate 46: 18.wrap = | 47: 18.if { 48: value = week 49: equals.field = freq 50: negate = 1 51: } 52: 20 = TEXT 53: 20.field = StartTime 54: 20.strftime = %H:%M 55: 20.wrap = | 56: 57: 30 = TEXT 58: 30.field = title 59: 60: wrap = <option value="|" 61: } 62: 12 = TEXT 63: 12.value = selected 64: 12.if { 65: value.data = GPvar:tx_powermail_pi1|uid97 66: equals.field = uid 67: } 68: 15 = TEXT 69: 15.value = > 70: 20 = COA 71: 20 { 72: 15 = COA 73: 15.10 = TEXT 74: 15.10.value = wöchentlich 75: 15.20 = TEXT 76: 15.20.field = byday 77: 15.30 = TEXT 78: 15.30.value = 79: 15.if { 80: value = week 81: equals.field = freq 82: } 83: 18 = TEXT 84: 18.field = StartDate 85: 18.wrap = | 86: 18.if { 87: value = week 88: equals.field = freq 89: negate = 1 90: } 91: 20 = TEXT 92: 20.field = StartTime 93: 20.strftime = %H:%M 94: 20.wrap = | 95: 30 = TEXT 96: 30.field = title 97: 98: wrap = |</option> } 99: } 100: } 101: } 102: } 103:
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.).