Zum Inhalt springen

Formhandler: Nur ein Finisher wird ausgeführt

Erstellt am 6. September 2011 · 1 Antwort · letzte Antwort am 6. September 2011

Tags: Frage

Five ·

Ich versuche gerade, mehrere Finisher für ein Formular auszuführen.
Blöderweise wird aber immer nur der erste Finisher ausgeführt...alle anderen werden ignoriert. Ich bekomme für die anderen Finisher auch keine Fehlermeldungen, wenn debugging aktiviert ist; es ist mehr oder weniger so, als wenn die gar nicht definiert wären.

Hier meine Finisher Konfiguration:

finishers {
		# E-Mail sichern
		1.class = Tx_Formhandler_Finisher_DB
		1.config {
				table = tt_content
				key = uid
				
				fields {
					header {
						mapping = email
					}
					
					bodytext {
						mapping = hiddenValue1
					}
					
					pid = 66
					
					subheader.special = sub_datetime
					crdate.special = sub_tstamp
					tstamp.special = sub_tstamp
					imagecaption.special = ip
				}
			}
		}
		
		# E-Mail versenden
		2.class = Tx_Formhandler_Finisher_Mail
		2.config {
			limitMailsToUser = 5
			admin {
				to_email = user@domain.com
				to_name = Name
				subject = Website
				sender_email = user@domain.com
				sender_name = foo.at
				replyto_email = user@domain.com
				replyto_name = bar.at
				htmlEmailAsAttachment = 0
			}
		}

		# fe_users updaten
		3.class = Tx_Formhandler_Finisher_DB
		3.config {
				table = fe_users
				key = uid
				updateInsteadOfInsert = 1
				
				fields {
					tx_psextendfeusers_hasbought {
						mapping = hiddenValue2
					}

					pid = 23
				}
			}
		}
		
		# Eigenen Finisher ausfuehren
		4.class = Tx_Formhandler_Finisher_updatePsProducts
		4.config {
				table = tx_owntable
				foo = bar
				pid = 32
			}
		}
		
		# Bestaetigung
		5.class = Tx_Formhandler_Finisher_SubmittedOK
		5.config {
			returns = 1
		}
	}

Füge ich z.B. die Konfiguration aus "fe_users updaten" in "E-Mail sichern" (also die erste Finisher Konfiguration) ein, so wird der Update-Befehl einwandfrei ausgeführt. Befindet sich "fe_users updaten" aber an einer anderen Stelle bei den Finishern, so wird kein Updaten ausgeführt.

Was mache ich hier falsch?