Re: Form Validation with multi-lingual fields ?
Sébastien Landeau <[email protected]>
| Newsgroups | gmane.comp.cms.jahia.devel |
|---|---|
| Message-ID | <[email protected]> |
Does this mechanism work when in edition, the contributor switch the input language by clicking of the language flags in the editing pop-up ? 2005/10/3, [email protected] <[email protected]>: > > > The *Jahia Field Input Validation Guide*<http://www.jahia.org/jahia/webdav/site/jahia_org/shared/documentation/template/fieldInputValidationGuide.pdf>, > which is currently linked on the Documentation page is unfortunately an > older version. You should read the corrected text in Chapter 17 of the *Jahia > 4.x Template Developer Guide*<http://www.jahia.org/jahia/webdav/site/jahia_org/shared/documentation/template/Draft_Jahia_Template_Developer_Guide_v0.31.pdf>, > which is also linked on the Documentation page. > > On page 108 you can read the following: > > >> The validator only accesses the getter-methods of those fields, for > which you will define validation rules. The field values should be taken > from the ContainerFacadeInterface object and for that you should use the > inherited methods getJahiaField(String) or > getJahiaMultiLanguageField(String). Which method to use *depends on the > validation rule*, which should be applied. Most of the *standard > validators expect the field value as a String*, but there are *Jahia > specific multilingual validations*, which need to get access to all > language entries of a field and for those fields you should return a > JahiaMltHelper object. > > If you want to apply both (standard validators and Jahia multilingual > validators) to the same field you should provide two different > getter-methods. In this special case, the getter method returning the String > must match the field name property, while for the getter method returning > the JahiaMltHelper you can choose any property name.<< > > So if you use the standard "validwhen" validation rule, your bean method > should return a String, even if the field-type is SMALLTEXT and the value is > multilingual. > > Just use: > public String getImageAlt() > { > return getJahiaField("ImageAlt"); > } > > This way your "validwhen" rule will check the value of ImageAlt for the > current language somebody is working on. > > Greetings, > Benjamin > > Sébastien Landeau <[email protected]> wrote on 30.09.200517:05:38: > > > Hello, > > > > > > We have a container with 2 fields : > > > An Image Field (type FieldTypes.FILE) > > An ImageAlt Field (type FieldTypes.SMALLTEXT) > > > > We want to check the following validation rule : "The ImageAlt > > field is mandatory only if the Image field is not null" > > > > Code of the JavaBean associated to the ImageAlt field : > > > > public JahiaMltHelper getImageAlt() > > { > > return getJahiaMultiLanguageField("ImageAlt"); > > } > > > > > > Here is an extract of the Jakarta validation Xml file : > > < field property = "imageAlt" depends = "validwhen" > > > < msg name = "validwhen" key = "errors.required" /> > > < arg0 key = "ImageAlt" resource = "false" /> > > < var > > > < var-name > test </ var-name > > > < var-value > ((image == null) or (*this* != null)) </ var-value > > > </ var > > > </ field > > > This code doesn't work. > > > > > > > > > > If the ImageAlt definition is changed to a FieldTypes. > > SMALLTEXT_SHARED_LANG type, the rule works fine with the > > following modification in the validation JavaBean : > > public String getImageAlt() > > { > > return getJahiaField("ImageAlt"); > > } > > > > In this special case all works fine. But we need multi lingual fields > !!! > > > > > > Thank's for your help. > > > > > > Best regards... >