Base class of all field definition classes.
Type-specific classes are derived from this class to define specific per-type behaviours. This class also provides default behaviours for when a specific type cannot be loaded.
Construct a new FieldDefinition. Parameters are passed in a hash. See Form.pm for how it is called. Subclasses should pass @_ on to this class.
Is the field type editable? Labels aren't, for example. Subclasses may need to redefine this.
Is the field type multi-valued (i.e. does it store multiple values)? Subclasses may need to redefine this.
Is this field type mergeable using a conventional text merge?
Is this field mandatory (required)?
$web
- the web containing the topic being edited
$topic
- the topic being edited
Render the field for editing. Returns two chunks of HTML; the
$col0html
is appended to the HTML for the first column in the
form table, and the $col1html
is used as the content of the second column.
Some subclasses may not support the definition of defaults in
the form definition. In that case this method should return undef
.
$meta
as a set of hidden fields.
Given a CGI $query
, a $meta
object, and an array of $old
field entries,
then populate the $meta with a row for this field definition, taking the
content from the query if it's there, otherwise from $old or failing that,
from the default defined for the type. Refuses to update mandatory fields
that have an empty value.
Return $bValid true if the value in $meta was updated (either from the query or from a default in the form. Return $bPresent true if a value was present in the query (even it was undef)
Render the field for display, under the control of $attrs.
The following vars in $format are expanded: $title - title of the form field $value - expanded to the protected value of the form field
The value is protected by TWiki::Render::protectFormFieldValue.
Returns field attribute parameters as text, format: key1="value1" key2=value2"