Zum Inhalt springen

formhandler - tt_address - Marker für Anrede erzeugen

Erstellt am 25. August 2011 · Noch keine Antworten

Tags: Formhandler, tt_address, Frage

tom1971 ·

Einen wunderschönen guten Tag zusammen!

Folgende Problemstellung hat sich mir aufgedrängt, die ich auch nach längerem Probieren und ausdauernder Suche nicht niederringen konnte:

1.) Mit der EXT formhandler wird ein EMailformular erzeugt, mit dessen Hilfe ein Protestbrief verschickt werden soll.
2.) Die Namen und EMail-Adressen kommen dabei aus der tt_address.
3.) Im Formular wird eine Selectbox erzeugt, und man kann hier den gewünschten Empfänger auswählen.

...

<div class="csc-mailform-field">
	###error_recipient###
	<label for="recipient">###LLL:recipient### ###required_recipient###</label>
	<select name="formhandler[recipient]" id="recipient" size="1">
		<option value="">- kein Empfänger gewählt -</option>
		###options_recipient###
	</select>
</div>

...

Soweit so gut! Aber jetzt:

4.) Ich hätte furchtbar gerne abhänig vom Geschlecht (tt_address.gender) ein "Sehr geehrte/r" in den EMails drinne stehen. Dafür kann man ja einen Marker erzeugen. Leider schaffe ich es nicht, diesen richtig zu befüllen. Hum ...
5.) Ich hab' das mal mit diesem TS probiert. (Der Marker wird gegen Ende erzeugt!)

plugin.Tx_Formhandler.settings.predef.default {

	# Der Name der später auch unter „Vordefinierte Formulare“ zu finden ist
	name = Protestbrief
	# Der Pfad für die Sprach & Tempalte Datei
	langFile = fileadmin/templates/formhandler/formhandler.xml
	templateFile = fileadmin/templates/formhandler/formhandler.html

	
	# GENERAL CONFIGURATION
	addErrorAnchors = 1
	formValuesPrefix = formhandler

	# ERRORS LAYOUT
	singleErrorTemplate {
		totalWrap = <div>|</div>
		singleWrap = <span class="error">|</span><br />
	}

	errorListTemplate {
		totalWrap = <ul>|</ul>
		singleWrap = <li class="error">|</li>
	}

	validators {
		1.class = Tx_Formhandler_Validator_Default
		1.config {
			fieldConf {				
				recipient.errorCheck.1 = required
				recipient.errorCheck.2 = email
			}
		}
	}

	finishers {
		1.class = Tx_Formhandler_Finisher_Mail
		1.config {
			limitMailsToUser = 5
			admin {
				to_email = TEXT
				to_email.data = GPvar:formhandler|recipient
				subject = TEXT
				subject.data = LLL:fileadmin/templates/formhandler/formhandler.xml:mail_subject_admin
			}
			user {
				to_email = TEXT
				to_email.data = GPvar:formhandler|email
				subject = TEXT
				subject.data = LLL:fileadmin/templates/formhandler/formhandler.xml:mail_subject_user
			}
		}
		2.class = Tx_Formhandler_Finisher_SubmittedOK
		2.config {
			returns = 1
		}
	}
	
	markers {
		options_recipient = CONTENT
		options_recipient {
			table = tt_address
			select {
				#pid where feusers are stored
				pidInList = 52
				orderBy = name
				selectFields = email, name
				#contact form user group
				where = 1 IN (tt_address.addressgroup)
				#max = 10
			}
			renderObj = COA
			renderObj {
				#value
				10.wrap = <option value="|"
				10 = TEXT
				10.field = email

				#selected
				12.noTrimWrap = | ###selected_recipient_|###>|
				12 = TEXT
				12.field = email

				#label
				13 = TEXT
				13.value = {field:name} ({field:email})</option>
				13.insertData = 1
			}
		}
	
		backlink = TEXT
		backlink {
			value = Startseite
			typolink.parameter = 22
		}
		
		gender = CONTENT
		gender {
			table = tt_address
			select {    
				pidInList = 52
				selectField = email
				andWhere.data = GPvar:formhandler|recipient
			}
			renderObj = COA
			renderObj {
				10 = TEXT
				10 {
					value = Sehr geehrte Frau
					if.value = f
					if.equals.field = gender
				}
				20 = TEXT
				20 {
					value = Sehr geehrter Herr
					if.value = m
					if.equals.field = gender
				}
			}    
		}
	}
}

6.) Irgend etwas funktioniert auch, denn ich bekomme jetzt so viele "sehr geehrte/r" wie es tt_address Datensätze (pidInList = 52) gibt. Ein mal "sehr geehrte/r" würde mir völlig reichen! o.O

Ich hoffe ich habe das Problem deutlich machen können und würde mich über Hilfe sehr freune!