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

# 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&ouml;chentlich&nbsp;
                               		  15.20 = TEXT
                               		  15.20.field = byday
                               		  15.30 = TEXT
                               		  15.30.value = &nbsp;
 		                          15.if {
						    value = week
						    equals.field = freq
					  }
                                	  18 = TEXT                               		  
                               		  18.field = StartDate
                               		  18.wrap = &nbsp; | &nbsp;
 		                          18.if {
						    value = week
						    equals.field = freq
						    negate = 1
					  }
                                	  20 = TEXT                               		  
                               		  20.field = StartTime
                               		  20.strftime = %H:%M
                               		  20.wrap = &nbsp; | &nbsp;
                               		  
                               		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&ouml;chentlich&nbsp;
                               		  15.20 = TEXT
                               		  15.20.field = byday
                               		  15.30 = TEXT
                               		  15.30.value = &nbsp;
 		                          15.if {
						    value = week
						    equals.field = freq
					  }
                                	  18 = TEXT                               		  
                               		  18.field = StartDate
                               		  18.wrap = &nbsp; | &nbsp;
 		                          18.if {
						    value = week
						    equals.field = freq
						    negate = 1
					  }
                                	  20 = TEXT                               		  
                               		  20.field = StartTime
                               		  20.strftime = %H:%M
                               		  20.wrap = &nbsp; | &nbsp;
                               		30 = TEXT
                               		30.field = title

	                               wrap = |</option>                          }
                                  }
                }
        }
}

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