Package TWiki::Form
Object representing a single form definition.
Form definitions are mainly used to control rendering of a form for
editing, though there is some application login there that handles
transferring values between edits and saves.
A form definition consists of a TWiki::Form object, which has a list
of field definitions. Each field definition is an object of a type
derived from TWiki::Form::FieldDefinition. These objects are responsible
for the actual syntax and semantics of the field type. Form definitions
are parsed from TWiki tables, and the types are mapped by name to a
class declared in TWiki::Form::* - for example, the text
type is mapped
to TWiki::Form::Text
and the checkbox
type to TWiki::Form::Checkbox
.
The TWiki::Form::FieldDefinition
class declares default behaviours for
types that accept a single value in their definitions. The
TWiki::Form::ListFieldDefinition
extends this for types that have lists
of possible values.
On this page:
- ClassMethod new ($session,$web,$form,$def)
- ObjectMethod finish ()
- StaticMethod getListOfForms ($session,$web) -> @topics
- StaticMethod fieldTitle2FieldName ($title) -> $name
- ObjectMethod renderForEdit ($web,$topic,$meta) -> $html
- ObjectMethod renderHidden ($meta) -> $html
- ObjectMethod getFieldValuesFromQuery ($query,$metaObject) -> ($seen,\@missing)
- ObjectMethod isTextMergeable ($name) -> $boolean
- ObjectMethod getField ($name) -> $fieldDefinition
- ObjectMethod getFields () -> \@fields
ClassMethod new ($session,$web,$form,$def)
Looks up a form in the session object or, if it hasn't been read yet, reads it frm the form definition topic on disc.- $web - default web to recover form from, if $form doesn't specify a web
-
$form
- topic name to read form definition from -
$def
- optional. a reference to a list of field definitions. if present, these definitions will be used, rather than those in$form
.
ObjectMethod finish ()
Break circular references. StaticMethod getListOfForms ($session,$web) -> @topics
Return a list of TWiki Form Templates found in a web. The name of Form Template
topics ends in Form, and topics must contain a table heading like this:
Name | Type | Size | Value | Tooltip message | Attributes |
---|
StaticMethod fieldTitle2FieldName ($title) -> $name
Chop out all except A-Za-z0-9_. from a field name to create a valid "name" for storing in meta-dataObjectMethod renderForEdit ($web,$topic,$meta) -> $html
-
$web
the web of the topic being rendered -
$topic
the topic being rendered -
$meta
the meta data for the form
ObjectMethod renderHidden ($meta) -> $html
Render form fields found in the meta as hidden inputs, so they pass through edits untouched.ObjectMethod getFieldValuesFromQuery ($query,$metaObject) -> ($seen,\@missing)
Extract new values for form fields from a query.-
$query
- the query -
$metaObject
- the meta object that is storing the form values
ObjectMethod isTextMergeable ($name) -> $boolean
-
$name
- name of a form field (value of thename
attribute)
ObjectMethod getField ($name) -> $fieldDefinition
-
$name
- name of a form field (value of thename
attribute)
TWiki::Form::FieldDefinition
, or undef if the form does not
define the field.