Zum Inhalt springen

TYPO3 – Formhandler mit static info tables – selected_country

Erstellt am 23. Dezember 2011 · 1 Antwort · letzte Antwort am 22. März 2017

Tags: Tipp

Sebastian Schmal ·

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.

Ursprünglich erschienen am 23.12.2011 auf typo3-probleme.de.

Unbekannter Benutzer ·

Ein Leser schrieb:

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 🙂