On 5/31/06, Patrick Refondini <[EMAIL PROTECTED]> wrote:
Daniel Curran wrote: > I have a date field in my form definition setup as: > > <fd:field id="dscdate"> > <fd:datatype base="date"> > <fd:convertor type="formatting"> > <fd:patterns> > <fd:pattern>MM-dd-yyyy</fd:pattern> > <fd:pattern>MM/dd/yyyy</fd:pattern> > </fd:patterns> > </fd:datatype> > </fd:field> > > When a user enters a date such as 10-20-2005 a failure is the result, > with the form generating a validation message. When entering the date as > 10/20/2005 the submission is successful. Is it possible to accept both > these formats? If so how should this be setup? > > Thanks, > DanHi Daniel, The only way I know to have "multiple" patterns is with locale: <fd:convertor type="formatting"> <fd:patterns> <fd:pattern>MM/dd/yyyy</fd:pattern> <fd:pattern locale="nl-BE">dd/MM/yyyy</fd:pattern> <fd:pattern locale="fr">dd-MM-yyyy</fd:pattern> </fd:patterns> </fd:convertor> Example taken from: http://cocoon.apache.org/2.1/userdocs/widgetconcepts/datatypes.html But this won't allow two "active" patterns at the same time which seems to be what you're after.
Right, it looks like a custom FormattingDateConvertorBuilder/FormattingDateConvertor would be needed. The standard builder just calls: convertor.setNonLocalizedPattern(pattern) If there's no locale provided for a pattern. So, you'd need a builder/convertor that would do something like this instead: convertor.addNonLocalizedPattern(pattern) // new convertor method The convertor would then have to cycle through the non-localized patterns and use the first one that formats/parses without an error.
You might also consider using aggregated fields, see (click "switch" button): http://cocoon.zones.apache.org/demos/release/samples/blocks/forms/aggregate/example Just hints, Patrick
-- Kris Schneider <mailto:[EMAIL PROTECTED]> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
