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.
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)?
$topicObject- the topic being edited Render the field for editing. Returns two chunks of HTML; the
$col0htmlis appended to the HTML for the first column in the form table, and the
$col1htmlis used as the content of the second column.
$metaas a set of hidden fields.
ObjectMethodpopulateMetaDataFromQuery( $query, $meta, $old ) → ($bValid, $bPresent)
$metaobject, and an array of
$oldfield 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)
ObjectMethodcreateMetaKeyValues( $query, $meta, $keyvalues ) → $keyvalues
Create meta key/value pairs hash, to be overridden by subclasses. Default implementation passes all inputs unchanged.
ObjectMethodrenderForDisplay($format, $value, $attrs) → $html
Render the field for display, under the control of $attrs.(protected) means the resulting string is run through Foswiki::Render::protectFormFieldValue.
format- the format to be expanded. The following tokens are available:
$title- title of the form field. if this is not available from the value, then the default title is taken from the form field definition.
$value- expanded to the (protected) value of the form field before mapping
$attributes- from the field definition
$type- from the field definition
$size- from the field definition
$definingTopic- topic in which the field is defined
$value- the scalar value of the field
$attrs- attributes. Fields used are:
showhidden- set to override H attribute
newline- replace newlines with this (default <br>)
bar- replace vbar with this (default |)
break- boolean, set to hyphenate
protectdollar- set to escape $
usetitle- if set, use this for the title rather than the title from the form definition
ObjectMethodgetDisplayValue($value) → $html
The default does nothing.