How to set up error checks
Add markers like ###error_[fieldname]### to your template and set up validation in TypoScript:
plugin.Tx_Formhandler.settings.validators.1 { class = Validator\DefaultValidator config { fieldConf { field1 { errorCheck.1 = required errorCheck.2 = maxLength errorCheck.2.value = 50 } field2 { errorCheck.1 = required errorCheck.2 = email } } } }
Add entries for error messages to your translation file
<label index="error_field1_required">Field1 is required!</label> <label index="error_field1_maxLength">Field1 has to be shorter than ###value### characters!</label> <label index="error_field2_required">Field2 is required!</label> <label index="error_field2_email">Field2 is no valid e-mail!</label>
NOTE: The marker ###value### in the error message is filled with the value of the parameter “value” for error check “maxLength”. If an error check requires parameters, you can use markers like ###[parametername]### in the translatable message.
When you have to validate values in nested arrays you can nest the validators as well. Given the following fields:
<input type="text" name="birthdate[day]"/> <input type="text" name="birthdate[month]"/> <input type="text" name="birthdate[year]"/> <input type="text" name="name"/>
You can setup your validators like that:
validators.1.config.fieldConf { birthdate { day.errorCheck { 1 = betweenValue 1.minValue = 1 1.maxValue = 31 } month.errorCheck { 1 = betweenValue 1.minValue = 1 1.maxValue = 12 } year.errorCheck { 1 = minValue 1.minValue = 45 } } birthdate.errorCheck.1 = maxItems birthdate.errorCheck.1.value = 3 name.errorCheck.1 = required }
The errors for the birthdate array will then be merged into the marker ###error_birthdate###.