Tags:
create new tag
view all tags

Module name TWiki::Form.pm FormDotPm
Location TWIKIROOT/lib/TWiki/Form.pm
Summary Handle the encoding and decoding of the
TWikiForms presented at the bottom of each page
Primary Author JohnTalintyre
CVS history CVS:lib/TWiki/Form.pm
CVS alpha CVSget:lib/TWiki/Form.pm
Contributing authors (see CVS History)
Is Class NO
First Release to be filled out
File Hierarchy
  TWIKIROOT
  lib
  TWiki
  Form.pm

Purpose

To handle the encoding and decoding of the TWikiForms

Used by

This module is primarily used by the ViewCgiScript and EditCgiScript.

Please see CodevDocumentationProject and CodevDocumentationProjectDev for comments on the format of these pages.

Note: Below documentation is extracted from the currently installed TWiki::Form Perl module, which is done by the PerlDocPlugin

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.

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.
  • $options - hash reference having various options. Curently the boolean option suppressValsEval is the only one supported

May throw TWiki::OopsException

=begin twiki

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
followed by form field definitions.

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( $web, $topic, $meta ) -> $html

  • $web the web of the topic being rendered
  • $topic the topic being rendered
  • $meta the meta data for the form

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

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

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.

Returns the number of fields which had values provided by the query, and a references to an array of the names of mandatory fields that were missing from the query.

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 ) -> $fieldDefinition

  • $name - name of a form field (value of the name attribute)

Returns a TWiki::Form::FieldDefinition, or undef if the form does not define the field.

ObjectMethod getFields() -> \@fields

Return 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).

Contributors:
-- MartinCleaver - 23 Jun 2002
-- PeterThoeny - 02 Feb 2004

Discussions

No documentation!

How do I get a list of fields on a given form?

-- MartinCleaver - 03 Oct 2004

Edit | Attach | Watch | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r8 - 2006-05-04 - SamHasler
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.