Custom Forms
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:
- links to the fields menu
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
- choose the form class
- choose a short name
- give a description
- set the data storage mechanism