internal package
Foswiki::Form
On this page:
- internal package Foswiki::Form is a Foswiki::Meta
- ClassMethod new ( $session, $web, $topic, \@def )
- ObjectMethod finish()
- StaticMethod getAvailableForms( $metaObject ) → @forms
- StaticMethod fieldTitle2FieldName($title) → $name
- ObjectMethod renderForEdit( $topicObject ) → $html
- ObjectMethod renderHidden( $topicObject ) → $html
- ObjectMethod getFieldValuesFromQuery($query, $topicObject) → ( $seen, \@missing )
- ObjectMethod isTextMergeable( $name ) → $boolean
- ObjectMethod getField( $name ) → $fieldDefinition
- ObjectMethod getFields() → \@fields
internal package
Foswiki::Form is a
Foswiki::Meta
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 Foswiki::Form object, which has a list
of field definitions. Each field definition is an object of a type
derived from Foswiki::Form::FieldDefinition. These objects are responsible
for the actual syntax and semantics of the field type. Form definitions
are parsed from Foswiki tables, and the types are mapped by name to a
class declared in Foswiki::Form::* - for example, the text
type is mapped
to Foswiki::Form::Text
and the checkbox
type to Foswiki::Form::Checkbox
.
The Foswiki::Form::FieldDefinition
class declares default behaviours for
types that accept a single value in their definitions. The
Foswiki::Form::ListFieldDefinition
extends this for types that have lists
of possible values.
ClassMethod
new ( $session, $web, $topic, \@def )
Looks up a form in the session object or, if it hasn't been read yet,
reads it from the form definition topic on disc. -
$web
- default web to recover form from, if$form
doesn't specify a web -
$topic
- name of the topic that contains the form definition -
\@def
- optional. A reference to a list of field definitions. If present, these definitions will be used, rather than any read from the form definition topic.
ObjectMethod
finish()
Break circular references.
StaticMethod
getAvailableForms( $metaObject ) → @forms
Get a list of the names of forms that are available for use in the
given topic. $metaObject can be a topic or a web.
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-data
ObjectMethod
renderForEdit( $topicObject ) → $html
-
$topicObject
the topic being rendered
ObjectMethod
renderHidden( $topicObject ) → $html
Render form fields found in the meta as hidden inputs, so they pass
through edits untouched.
ObjectMethod
getFieldValuesFromQuery($query, $topicObject) → ( $seen, \@missing )
Extract new values for form fields from a query.
-
$query
- the query -
$topicObject
- 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)
Foswiki::Form::FieldDefinition
, or undef if the form does not
define the field.