TYPO3 – Formhandler mit static info tables – selected_country
Mit dem Formhandler kann man auch komplette Länderlisten ins seinen Kontaktformular ausgeben, wie das geht erkläre ich Euch hier:
Hier der TypoScript-Code für den Formhandler:
plugin.Tx_Formhandler.settings.predef.test_kontakt {
# GENERAL CONFIGURATION
name = Test Kontakt
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>
}
#input select country
markers {
countries = CONTENT
countries {
table = static_countries
select {
pidInList = 0
orderBy = cn_short_en
selectFields = cn_short_en,cn_iso_3
where = cn_eu_member = 1
}
renderObj = COA
renderObj {
#value
10 = TEXT
10.wrap = <option value=“|“
10.field = cn_iso_3
#selected
12 = TEXT
12.wrap = ###selected_country_|###>
12.field = cn_iso_3
#label
13 = TEXT
13.wrap = |</option>
13.field = cn_short_en
}
}
}
# Validators configuration
validators {
1.class = Tx_Formhandler_Validator_Default
1.config {
fieldConf {
# captcha system
captchafield.errorCheck.1 = captcha
}
}
}
finishers {
1.class = Tx_Formhandler_Finisher_Mail
1.config {
limitMailsToUser = 5
admin {
}
user {
}
}
2.class = Tx_Formhandler_Finisher_Redirect
2.config {
}
}
}
somit liest der Formhandler die „static info tables“ in der Spalte „selceted country“ aus.
Um nun die Länderausgabe im Frontend zu zeigen, benötigt Ihr für das HTML Template folgenden Code:
<div>
###error_country###
<label for=“country“>###LLL:country### ###required_country###</label>
<select id=“formhandler[country]“ name=“formhandler[country]“>
<option value=““>###LLL:country_select###</option>
###countries###
</select>
</div>
Dies funktioniert natürlich auch mit dem Bundesland.
Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!
Willi
Vielen Dank für die Inspiration! Erlaube mir einen kleinen Optimierungsvorschlag:
renderObj = TEXT
renderObj {
field = cn_official_name_local
dataWrap = |
}
oder auch
renderObj = TEXT
renderObj {
value = {field:cn_official_name_local}
insertData = 1
}
Ist etwas lesbarer 🙂