TWiki> TWiki Web>TWikiFormDotPm (revision 1)EditAttach

Package TWiki::Form

Object representing a single form definition.

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

  • $web - default web to recover form from, if $form doesn't specify a web
  • $form - topic name to read form definition from

May throw TWiki::OopsException

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

  • $web the web of the topic being rendered
  • $topic the topic being rendered
  • $meta the meta data for the form
  • $useDefaults if true, will use default values from the form definition if no other value is given

Render the form fields for entry during an edit session, using data values from $meta

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

  • $fieldDef the field being rendered
  • $web the web of the topic being rendered
  • $topic the topic being rendered
  • $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

SMELL: this should be a method on a field class SMELL: JSCalendarContrib ought to provide a 'date' handler.

ObjectMethod renderHidden ($meta,$useDefaults) -> $html

  • $useDefaults if true, will use default values from the form definition if no other value is given

Render form fields found in the meta as hidden inputs, so they pass through edits untouched.

ObjectMethod cgiName ($field) -> $string

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

ObjectMethod getFieldValuesFromQuery ($query,$metaObject,$handleMandatory) -> $metaObject

Extract new values for form fields from a query.
  • $query - the query
  • $metaObject - the meta object that is storing the form values
  • $handleMandatory - if set, will throw an OopsException? if any mandatory fields are absent from the query.

For each field, if there is a value in the query, use it. Otherwise if there is already entry for the field in the meta, keep it. Otherwise, if $handleMandatory, initialise the field to '' and set it in the meta.

ObjectMethod isTextMergeable ($name) -> $boolean

  • $name - name of a form field (value of the name attribute)
Returns true if the type of the named field allows it to be text-merged.

If the form does not define the field, it is assumed to be mergeable.

ObjectMethod getField ($name) -> \%row

  • $name - name of a form field (value of the name attribute)
Returns the field, or undef if the form does not define the field.

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?

Edit | Attach | Print version | History: r5 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 01 Feb 2006 - 09:01:25 - TWikiContributor

 
This site is powered by the TWiki collaboration platformCopyright � 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