Custom Forms: Difference between revisions

From IHRIS Wiki
(Created page with 'Provide a means to design forms from the web interface. * Define a form class with: **the class that it extends (Defaults to I2CE_Form) **the fields it contains: ***what is the ...')
 
No edit summary
Line 1: Line 1:
Provide a means to design forms from the web interface.
Provide a means to design forms from the [[Swiwss Magic Data Editor|web interface]].
==Form Classes Swiss Magic Data Editor==
Define and edit the form Classes available in the system.
===I2CE_Swiss_FormClasses===
This is the root swiss node for the form classes interface and will be associated (via the I2CE_Page_SwissMagic) to the /modules/forms/formClasses magic data node.


* Define a form class with:
Functionality:
**the class that it extends (Defaults to I2CE_Form)
*lists all the available form classes
** These are keys of the sub magic data nodes of /modules/forms/formClasses and can be determeined as getStorage()->getKeys()
*allow the creation of a new form class by specifying:
**the class name
**the class that it extends (Defaults to I2CE_Form). should be a drop down list of the available classess
All of this children have type I2CE_Swiss_FormClass
===I2CE_Swiss_FormClass===
This is the the swiss node associated to each of the subclasses of I2CE_Form
If has the following functionality:
*links to the [[#I2Ce_Swiss_FormClass_Fields|fields]] menu
The child 'fields' has type [[#I2CE_Swiss_FormClass_Fields|FormClass_Fields]]
 
===I2CE_Swiss_FormClasss_Fields===
Container swiss node to  hold all of the fields. 
Functionality:
*lists all the fields in this class
*allow you to add a new field to this class by specifying
**a short name for the field
**the subclass of I2CE_FormField which implements this field
**A default header (this will be passed to the I2CE_Swiss_FormClass_Field_Headers)
 
Each child of this node has type FormClass_Field
 
===I2CE_Swiss_FormClass_Field==
This is the swiss node responsible for defining the field in a form class.
Corresponds to the magic data node /modules/forms/formClasses/$class/fields/$field.
Functionality:
*links to the field headers menu
*if the field
 
===I2CE_Swiss_FormClass_Field_Headers===
Specifies the headers for a form field.
Corresponds to the magic data node /modules/forms/formClasses/$class/fields/$field/headers.
Functionality:
*specify the 'default' header.
*specify any other named headers.
**the fields it contains:
**the fields it contains:
***what is the name of the field
 
***what is the I2CE_FormField class of the field.
===I2CE_Swiss_FormClass_Field==
***what is the (default) header
 
 
==DO NOT READ THIS SECTION==
***if a mapped field, what are the forms it can take values in
***if a mapped field, what are the forms it can take values in
***if a mapped field, what is the (default) displayed fields for tiered lists (e.g. county, district, region country) this should be done in a nice drop-down interface to choose the form/linked field.
***if a mapped field, what is the (default) displayed fields for tiered lists (e.g. county, district, region country) this should be done in a nice drop-down interface to choose the form/linked field.

Revision as of 14:12, 4 September 2009

Provide a means to design forms from the web interface.

Form Classes Swiss Magic Data Editor

Define and edit the form Classes available in the system.

I2CE_Swiss_FormClasses

This is the root swiss node for the form classes interface and will be associated (via the I2CE_Page_SwissMagic) to the /modules/forms/formClasses magic data node.

Functionality:

  • lists all the available form classes
    • These are keys of the sub magic data nodes of /modules/forms/formClasses and can be determeined as getStorage()->getKeys()
  • allow the creation of a new form class by specifying:
    • the class name
    • the class that it extends (Defaults to I2CE_Form). should be a drop down list of the available classess

All of this children have type I2CE_Swiss_FormClass

I2CE_Swiss_FormClass

This is the the swiss node associated to each of the subclasses of I2CE_Form If has the following functionality:

The child 'fields' has type FormClass_Fields

I2CE_Swiss_FormClasss_Fields

Container swiss node to hold all of the fields. Functionality:

  • lists all the fields in this class
  • allow you to add a new field to this class by specifying
    • a short name for the field
    • the subclass of I2CE_FormField which implements this field
    • A default header (this will be passed to the I2CE_Swiss_FormClass_Field_Headers)

Each child of this node has type FormClass_Field

=I2CE_Swiss_FormClass_Field

This is the swiss node responsible for defining the field in a form class. Corresponds to the magic data node /modules/forms/formClasses/$class/fields/$field. Functionality:

  • links to the field headers menu
  • if the field

I2CE_Swiss_FormClass_Field_Headers

Specifies the headers for a form field. Corresponds to the magic data node /modules/forms/formClasses/$class/fields/$field/headers. Functionality:

  • specify the 'default' header.
  • specify any other named headers.
    • the fields it contains:

=I2CE_Swiss_FormClass_Field

DO NOT READ THIS SECTION

      • if a mapped field, what are the forms it can take values in
      • if a mapped field, what is the (default) displayed fields for tiered lists (e.g. county, district, region country) this should be done in a nice drop-down interface to choose the form/linked field.
    • if if it is a list form, what are the primary and secondary display fields:
      • need to move the code for defining primary/secondary display fields out of the class constants and into magic data and adjust the hooked method into the class autoloader to allow for constants or move the display fields
  • Define a form