Package =TWiki::FormObject 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, thetext 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)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.
ObjectMethod finish ()Break circular references. | ||||||||
Added: | ||||||||
> > | 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:
| |||||||
StaticMethod *fieldTitle2FieldName ($title) -> $nameChop 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
ObjectMethod renderHidden ($meta) -> $htmlRender 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.
ObjectMethod *isTextMergeable ($name) -> $boolean
ObjectMethod getField ($name) -> $fieldDefinition
TWiki::Form::FieldDefinition , or undef if the form does not
define the field.
ObjectMethod getFields () -> \@fieldsReturn a list containing references to field name/value pairs. Each entry in the list has a {name} field and a {value} field. It may have other fields as well, which caller should ignore. The returned list should be treated as read only (must not be written to). |