Difference: TWikiFormDotPm (4 vs. 5)

Revision 52008-01-22 - TWikiContributor

Line: 2 to 2
  Object representing a single form definition.
Added:
>
>
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.

 

ClassMethod new ($session,$web,$form,$def)

Added:
>
>
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,
Line: 16 to 35
 
Changed:
<
<

ObjectMethod renderForEdit ($web,$topic,$meta) -> $html

>
>

ObjectMethod finish ()

Break circular references.
 
Deleted:
<
<
  • $web the web of the topic being rendered
  • $topic the topic being rendered
  • $meta the meta data for the form
 
Changed:
<
<
Render the form fields for entry during an edit session, using data values from $meta
>
>

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
 
Changed:
<
<

ObjectMethod renderFieldForEdit ($fieldDef,$web,$topic,$value) -> $html

>
>

ObjectMethod renderForEdit ($web,$topic,$meta) -> $html

 
Deleted:
<
<
  • $fieldDef the field being rendered
 
  • $web the web of the topic being rendered
  • $topic the topic being rendered
Changed:
<
<
  • $value the current value of the field

Render a single form field for entry during an edit session, using data values from $meta. Plugins can provide a handler that extends the set of supported types

>
>
  • $meta the meta data for the form
 
Changed:
<
<
SMELL: this should be a method on a field class
>
>
Render the form fields for entry during an edit session, using data values from $meta
 
Line: 49 to 64
 
Deleted:
<
<

ObjectMethod cgiName ($field) -> $string

Generate the 'name' of the CGI parameter used to represent a field.

 

ObjectMethod getFieldValuesFromQuery ($query,$metaObject) -> ($seen,\@missing)

Extract new values for form fields from a query.

Line: 81 to 90
 
Changed:
<
<

ObjectMethod getField ($name) -> \%row

>
>

ObjectMethod getField ($name) -> $fieldDefinition

 
  • $name - name of a form field (value of the name attribute)
Changed:
<
<
Returns the field, or undef if the form does not define the field.
>
>
Returns a TWiki::Form::FieldDefinition, or undef if the form does not define the field.
 
Line: 97 to 107
 returned list should be treated as read only (must not be written to).
Deleted:
<
<

StaticMethod renderForDisplay ($templates,$meta)

  • $templates ref to templates singleton
  • $meta - meta object containing the form to be rendered

Static because we want to be able to do this without a form definition.

SMELL: Why? Is reading the form topic such a big burden?

 
This site is powered by the TWiki collaboration platformCopyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.TWikiFormDotPm.