internal package
Foswiki::Form::FieldDefinition
On this page:
- internal package Foswiki::Form::FieldDefinition
- ClassMethod new(%...)
- ObjectMethod finish()
- isEditable() -> $boolean
- isMultiValued() -> $boolean
- isTextMergeable() -> $boolean
- isMandatory() -> $boolean
- renderForEdit( $topicObject, $value ) -> ($col0html, $col1html)
- cssClasses(@classes) -> $classes
- getDefaultValue() -> $value
- renderHidden($meta) -> $html
- populateMetaDataFromQuery( $query, $meta, $old ) -> ($bValid, $bPresent)
- ObjectMethod renderForDisplay($format, $attrs) → $html
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(%...)
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.
ObjectMethod
finish()
Break circular references.
isEditable() -> $boolean
Is the field type editable? Labels aren't, for example. Subclasses may need to redefine this.isMultiValued() -> $boolean
Is the field type multi-valued (i.e. does it store multiple values)? Subclasses may need to redefine this.isTextMergeable() -> $boolean
Is this field type mergeable using a conventional text merge?isMandatory() -> $boolean
Is this field mandatory (required)?renderForEdit( $topicObject, $value ) -> ($col0html, $col1html)
$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.
cssClasses(@classes) -> $classes
Construct a list of the CSS classes for the form field. Adds additional class specifiers related to the attributes of the field e.g mandatory. Pass it a list of the other classnames you want on the field.getDefaultValue() -> $value
Try and get a sensible default value for the field from the values stored in the form definition. The result should be a value string. Some subclasses may not support the definition of defaults in the form definition. In that case this method should returnundef
.
renderHidden($meta) -> $html
Render the form in$meta
as a set of hidden fields.
populateMetaDataFromQuery( $query, $meta, $old ) -> ($bValid, $bPresent)
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)