internal package
Foswiki::Form::FieldDefinition internal package
Foswiki::Form::FieldDefinition 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.
ClassMethod
new(%...) ObjectMethod
finish() 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
$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.
undef
.
$meta
as a set of hidden fields.
ObjectMethod
populateMetaDataFromQuery( $query, $meta, $old ) → ($bValid, $bPresent) $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)
ObjectMethod
createMetaKeyValues( $query, $meta, $keyvalues ) → $keyvalues Create meta key/value pairs hash, to be overridden by subclasses. Default implementation passes all inputs unchanged.
ObjectMethod
renderForDisplay($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
ObjectMethod
getDisplayValue($value) → $html The default does nothing.