Custom Forms: Difference between revisions

From IHRIS Wiki
Line 60: Line 60:
Container node for the meta data associated to a field.
Container node for the meta data associated to a field.
Corresponds to the magic data node /modules/forms/formClasses/$formClass/fields/$fields/meta.
Corresponds to the magic data node /modules/forms/formClasses/$formClass/fields/$fields/meta.
Functionality:
Functionality:
*If the form field subclass I2CE_FormField_MAPPED then links to the [[#I2CE_Swiss_FormClass_Field_Meta_Displays|displays[[ menu
===I2CE_Swiss_FormClass_Field_Meta_Displays===
Container node for the various displays of mapped fields.
Corresponds to the magic data node. /modules/forms/formClasses/$formClass/fields/$fields/meta/displays.
Functionality:
*lists any existing displays
*allows the creation of any new display by specfiying a shortname.  By default it should fill in the shortname to be 'default'
All children have type FormClass_Field_Meta_Display
===I2CE_Swiss_FormClass_Field_Meta_Display===
Handles setting the displays for mapped fields.
'''NEED TO FILL IN WHAT IS VALID HERE (e.g. county:district:[region]:country)'''
Corresponds to the magic data node /modules/forms/formClasses/$formClass/fields/$fields/meta/displays/$display.


==DO NOT READ THIS SECTION==
==DO NOT READ THIS SECTION==

Revision as of 13:30, 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. 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. this will the name of the child node added to magic data.
    • the class that it extends (Defaults to I2CE_Form). should be a drop down list of the available classes. You need to validate this class before you create the child magic data node

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. Correponds to the magic data node /modules/forms/formClasses/$formClass 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. Corresponds to the magic data node /modules/forms/formClasses/$formClass/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.
      • This will be the name $name of the child magic data node to create
    • the subclass of I2CE_FormField which implements this field
      • once the name, form field and header are validated this will be set via I2CE_Swiss_FormClass_Field
    • A default header
      • once the name, form field and header are validated this this will be set via I2CE_Swiss_FormClass_Field which in turn will pass it to 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/$formClass/fields/$field. Functionality:

  • allows you to specify if this field is stored in the DB. (defaults to true)
    • use I2CE_Swiss->get/setField() $field='in_db'
  • allows you to specify if this field is required. (defaults to false
    • use I2CE_Swiss->get/setField() $field='required'
  • links to the headers menu


I2CE_Swiss_FormClass_Field_Headers

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

  • specify the 'default' header.
    • use get/setField() with $field = 'default'
  • specify any other named header named $name.
    • use I2CE_Swiss->get/setField() with $field = $nam

I2CE_Swiss_FormClass_Field_Meta

Container node for the meta data associated to a field. Corresponds to the magic data node /modules/forms/formClasses/$formClass/fields/$fields/meta.

Functionality:

  • If the form field subclass I2CE_FormField_MAPPED then links to the [[#I2CE_Swiss_FormClass_Field_Meta_Displays|displays[[ menu

I2CE_Swiss_FormClass_Field_Meta_Displays

Container node for the various displays of mapped fields. Corresponds to the magic data node. /modules/forms/formClasses/$formClass/fields/$fields/meta/displays.

Functionality:

  • lists any existing displays
  • allows the creation of any new display by specfiying a shortname. By default it should fill in the shortname to be 'default'

All children have type FormClass_Field_Meta_Display

I2CE_Swiss_FormClass_Field_Meta_Display

Handles setting the displays for mapped fields.

NEED TO FILL IN WHAT IS VALID HERE (e.g. county:district:[region]:country)

Corresponds to the magic data node /modules/forms/formClasses/$formClass/fields/$fields/meta/displays/$display.

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