Kalender mit dynamischem Anmeldeformular

Kalendereintrag

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
   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&ouml;chentlich&nbsp;
  36:                                		  15.20 = TEXT
  37:                                		  15.20.field = byday
  38:                                		  15.30 = TEXT
  39:                                		  15.30.value = &nbsp;
  40:  		                          15.if {
  41: 						    value = week
  42: 						    equals.field = freq
  43: 					  }
  44:                                 	  18 = TEXT                               		  
  45:                                		  18.field = StartDate
  46:                                		  18.wrap = &nbsp; | &nbsp;
  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 = &nbsp; | &nbsp;
  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&ouml;chentlich&nbsp;
  75:                                		  15.20 = TEXT
  76:                                		  15.20.field = byday
  77:                                		  15.30 = TEXT
  78:                                		  15.30.value = &nbsp;
  79:  		                          15.if {
  80: 						    value = week
  81: 						    equals.field = freq
  82: 					  }
  83:                                 	  18 = TEXT                               		  
  84:                                		  18.field = StartDate
  85:                                		  18.wrap = &nbsp; | &nbsp;
  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 = &nbsp; | &nbsp;
  95:                                		30 = TEXT
  96:                                		30.field = title
  97: 
  98: 	                               wrap = |</option>                          }
  99:                                   }
 100:                 }
 101:         }
 102: }
 103: 

Powermail-Formular

Schritt1 - Backend
Schritt1

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

 

Schritt 2 - im Backend
Schritt 2

Auch im 2. Formular wird die Listbox mit einem TYPOscript-Feld eingebunden,

Inhalt: lib.caleventsbox