Class: I2CE Form: Difference between revisions

From IHRIS Wiki
No edit summary
(Redirected page to Class: I2CE Form (4.1.12))
 
(36 intermediate revisions by one other user not shown)
Line 1: Line 1:
This article desrcibes the class '''I2CE_Form'''which extends the class [[Class: I2CE_Fuzzy | I2CE_Fuzzy]]
#REDIRECT [[Class: I2CE_Form (4.1.12)]]
It implements the following interfaces:
*Iterator
It is contained in the module [[iHRIS Module List#forms|forms]] in the package [https://launchpad.net/i2ce I2CE]
The class is defined in the file: [http://bazaar.launchpad.net/~intrahealth+informatics/i2ce/4.0.0-release/files/head:modules/Forms/lib/I2CE_Form.php modules/Forms/lib/I2CE_Form.php]
@author Luke Duncan <lduncan@intrahealth.org>
@since v1.0.0
@version v2.0.0
Abstract class for objects using the {@link I2CE_Template} class that interact with a database and HTML form.
 
This class has a few default functions that are used when interacting with the template engine
in setting up form values and displaying the data for objects that tie directly to database tables.
 
@package I2CE
@access public
@see I2CE_Template
==Variables==
===$form_name===
The name of this form for the database.
*Type: private ng $form_name
 
===$display_name===
The text name of this form for display.
*Type: private ng $display_name
 
===$fields===
The list of fields with all the information about each field.
*Type: protected y $fields
 
===$parent===
String or boolean (false) The form and id  of the parent record for this form if there is one.  Of the form "$form|$id"
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php mixed] $parent
 
===$id===
The record id for this entry.
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php mixed] $id
 
===$children===
An array of children objects for this form.
 
It is an array of arrays.  The first being an associative array with the name of the form, the second
level is a simple array of the objects.
*Type: public y $children
 
===$attributes===
A list of attributes for this form.
*Type: protected y $attributes
 
===$parent_forms===
parent_forms. The array with keys form names and values which are arrays of
form names, the form names which the form's parent id can take values in
*Type: static protected y $parent_forms
 
==Methods==
===__construct()===
Create a new instance of a I2CE_Form object.
*Signature: public function __construct($form,$id)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>The name of this form
* integer $id
**Default Value: '0'
===__get()===
Return the {@link I2CE_FormField form field} value from the {@link $fields} array.
*Signature: protected function __get($key)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
===__isset()===
Check to see if a {@link I2CE_FormField form field} value has been set.
*Signature: protected function __isset($key)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
===__set()===
Set the {@link I2CE_FormField form field} value in the {@link $fields} array.
*Signature: protected function __set($key,$value)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $value
===__unset()===
Unset a {@link I2CE_FormField form field}.
*Signature: protected function __unset($key)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
===addChildForm()===
Add a child form object to this forms list of children.
*Signature: public function addChildForm($child_form,$replace)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $child_form<br/>The child form
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $replace<br/>Overwrite the child object if it already exists.
**Default Value: false
===addField()===
Adds a field to this form.
*Signature: public function addField($name,$args)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed] I2CE_FormField or false on failure
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $name
* [http://www.php.net/manual/en/language.types.array.php array] $args<br/>The arguments for this field
===addFormFields()===
*Signature: protected function addFormFields($data)
Parameters:
*$data
===cleanup()===
Clean up all the fields for this form.
 
This will unset all the fields associated with this form.  This will remove
all circular references to this form so it can be cleaned up by the garbage collector.
This should only be called when the form is no longer needed.  Trying to access it
after this may cause unexpected results or errors.
*Signature: public function cleanup()
===clearFields()===
Remove fields from the form.
 
This is to be used when only certain fields of the form are being dealt with so
the others can be removed to save processing.
*Signature: public function clearFields($fields,$keep)
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $fields<br/>The fields being worked with.
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $keep<br/>A flag to determine if the given fields should be removed or all except the given fields.
**Default Value: true
===current()===
Return the current value for the {@link $fields} array for iterating through the form fields.
*Signature: public function current()
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed]
===displayField()===
Display the field in the given node.
*Signature: public function displayField($node,$template,$args)
Parameters:
* [http://www.php.net/manual/en/class.domnode.php domnode] $node
* I2CE_Template $template
* [http://www.php.net/manual/en/language.types.array.php array] $args
===form()===
Return the form name for this form.
*Signature: public function form()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getAllowedParentForms()===
Gets the allowed parent forms for a given form
*Signature: static public function getAllowedParentForms($form,$use_cache)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] of string, the form names.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $use_cache<br/>Defaults to true in which case we cached result of finding parent forms
**Default Value: true
===getAttribute()===
Return the attribute value for a given attribute.
*Signature: public function getAttribute($key)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
===getChildForms()===
Get the registered child forms for this form.
*Signature: public function getChildForms()
*Returns: [http://www.php.net/manual/en/language.types.array.php array] The list of child form names registered for this form.
===getChildFormsByForm()===
Get the registered child forms for the given form.
*Signature: static public function getChildFormsByForm($form)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] The list of child form names registered for the form.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>The form to get the children of.
===getChildren()===
Get the added children for this form
otherwise we get the popoluated children with the specified form
*Signature: public function getChildren($form)
*Returns: [http://www.php.net/manual/en/language.types.array.php array]  If $form is null, it is an array with keys the form names and values array
of the children of that form type.  If $form is
set, then it is an array of the forms of type $form
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>Defaults to null, in which case we get all children.
**Default Value: null
===getDisplayName()===
Return the display name for this form object.
*Signature: public function getDisplayName()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getField()===
Return the I2CE_FormField for the given field name.
*Signature: public function getField($field)
*Returns: [[Class: I2CE_FormField | I2CE_FormField]]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $field<br/>the field name or a form name:field name
===getFieldNames()===
Get the names of all the fields added in this form
*Signature: public function getFieldNames()
*Returns: [http://www.php.net/manual/en/language.types.array.php array] of string, the field names.
===getFormFieldsData()===
*Signature: protected function getFormFieldsData($class,$data)
Parameters:
*$class
*&$data
===getFormId()===
Returns the form id for this record.
*Signature: public function getFormId()
*Returns: [http://www.php.net/manual/en/language.types.string.php string] of the form "$form|$id"
===getHTMLName()===
Return the value for the name attribute to be used for this field in a form.
*Signature: public function getHTMLName()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getId()===
Returns the id for this record.
*Signature: public function getId()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getParent()===
Return the parent id for this record.
 
If there isn't a parent record set then return the id for this record.
*Signature: public function getParent()
*Returns: mixed.  false if there is no parent id or string  a parent id of the form "$form|$id"
===getParentForm()===
Return the name of the parent form for this record.
 
If there isn't a parent record set then return the id for this record.
*Signature: public function getParentForm()
*Returns: mixed.  false if there is no parent  the parent form
===getParentID()===
Return the parent id for this record.
 
If there isn't a parent record set then return the id for this record.
*Signature: public function getParentID()
*Returns: mixed.  false if there is no parent id or string  a parent id
===getQueryDisplay()===
Return the values of all the fields that are set.
*Signature: public function getQueryDisplay()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getQueryFields()===
Return all the fields as an associative array
*Signature: public function getQueryFields()
*Returns: [http://www.php.net/manual/en/language.types.array.php array]
===getQueryString()===
Return all the fields as a query string to be sent to a URL
*Signature: public function getQueryString()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===hasAttribute()===
Return true if a given attribute exists for this form.
*Signature: public function hasAttribute($key)
*Returns: boolean;
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
===hasInvalid()===
Checks to see if any fields of form has in invalid message
*Signature: public function hasInvalid()
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
===key()===
Return the current key for the {@link $fields} array for iterating through the form fields.
*Signature: public function key()
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed]
===listFields()===
If it is as an array of two integers, it is the offset and then number of results to limit to.
*Signature: static public function listFields($form,$fields,$where_data,$ordering,$limit)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed] an array with key id's and value and array of values.  the array of values has as keys the fields with their corresponding value.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>The form name
* [http://www.php.net/manual/en/language.types.array.php array] $fields<br/>of string. The fields we want returned
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $where_data<br/>Either I2CE_MagicDataNode or array. contains the  where clause information about this form or a nested
**Default Value: array()
* [http://www.php.net/manual/en/language.types.array.php array] $ordering<br/>An array of fields to order by.  Defaults to the empty array.  Prepend a - to order by in descending order.
**Default Value: array()
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $limit<br/>Defaults to false.  It true, returns only one result.  If an integer it is the numeber of records to limit to.
**Default Value: false
===load()===
Load the member variables from an array
 
exactly one of  entry in the array $post['forms'][$this->form_name], we set the values
of the form's field, id and parent from that entry. If false, we set the
values from $post['forms'][$this->form_name][$this->getID()]  if it is present
*Signature: public function load($post,$loadID,$populate_on_set_id)
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $post<br/>The Post vairables.  Usually from an http request.
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $loadID<br/>Defaults to true.  If true, and there is
**Default Value: true
*$populate_on_set_id
**Default Value: true
===lookupArray()===
Lookup a given id in the given array.
*Signature: static protected function lookupArray($id,$arr)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
Parameters:
* integer $id<br/>The id to lookup.
* [http://www.php.net/manual/en/language.types.array.php array] $arr<br/>The array to search through.
===next()===
Advance the internal pointer for the {@link $fields} array for iterating through the form fields.
*Signature: public function next()
===processDOM()===
Process the DOM for this form.
*Signature: public function processDOM($node,$template,$method,$args)
Parameters:
* [http://www.php.net/manual/en/class.domnode.php domnode] $node
* I2CE_Template $template
* [http://www.php.net/manual/en/language.types.string.php string] $method
* [http://www.php.net/manual/en/language.types.array.php array] $args
===removeField()===
Removes a field from this form.
@param array $args The arguments for this field
*Signature: public function removeField($name)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $name
===reset()===
Reset this object to its original state.
*Signature: public function reset()
===rewind()===
Rewind the internal pointer for the {@link $fields} array for iterating through the form fields.
*Signature: public function rewind()
===search()===
@param mixed $limit. Defaults to false.  It true, returns only one result.  If an integer it is the numeber of records to limit to.
If it is as an array of two integers, it is the offset and then number of results to limit to.
*Signature: static public function search($form,$where_data,$ordering,$limit_one)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed] an array of matching form ids.  However, ff $limit_one is true or 1 or
array ($offset,1) then then we return either the id or false,  if none found or there was an error.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>The form name.
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $where_data<br/>Either I2CE_MagicDataNode or array. contains the  where clause information about this form or a nested
**Default Value: array()
* [http://www.php.net/manual/en/language.types.array.php array] $ordering<br/>An array of fields to order by.  Defaults to the empty array.  Prepend a - to order by in descending order.
**Default Value: array()
*$limit_one
**Default Value: false
===setAttribute()===
Set an attribute for this form.
*Signature: public function setAttribute($key,$value)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $key
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $value
===setDisplayName()===
Set the display name for this form object.
*Signature: final public function setDisplayName($display)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $display
===setForm()===
Set the form name for this form object.
*Signature: final public function setForm($name)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $name
===setFromPost()===
Load the member variables from an array
The array can contain the keys 'id', 'parent', 'fields'.  The later of which
is an array indexed by field names and which contains the values of the field
*Signature: public function setFromPost($post,$populate_on_set_id)
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $post<br/>The post object is passed as a reference
*$populate_on_set_id
**Default Value: false
===setId()===
Set the id for this record.
*Signature: public function setId($id)
Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $id
===setParent()===
Set the parent id for this record
*Signature: public function setParent($parent,$set_id)
Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $parent<br/>string or I2CE_Form
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $set_id<br/>If the parent will only have one child object then you can set the id by setting this to true.
**Default Value: false
===valid()===
Check to see if the current internal pointer for the {@link $fields} array is valid.
*Signature: public function valid()
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
===validate()===
Validate all fields that are marked as required or unique.
 
This will check all the fields in this form and if they're required or unique it
will perform the required checks
*Signature: public function validate()
==Inherited Fuzzy Methods==
===userMessage()===
This method is inherited from [[Class: I2CE_Fuzzy#userMessage() | I2CE_Fuzzy->userMessage()]]
==Fuzzy Methods==
===isNumeric()===
This method is implemented by [[Class: I2CE_Module_CustomReports#isNumeric() | I2CE_Module_CustomReports->isNumeric() ]]
===getLimitStyles()===
This method is implemented by [[Class: I2CE_Module_FormLimits#getLimitStyles() | I2CE_Module_FormLimits->getLimitStyles() ]]
===checkLimit()===
This method is implemented by [[Class: I2CE_Module_FormLimits#checkLimit() | I2CE_Module_FormLimits->checkLimit() ]]
===checkWhereClause()===
This method is implemented by [[Class: I2CE_Module_FormLimits#checkWhereClause() | I2CE_Module_FormLimits->checkWhereClause() ]]
===createCheckFunction()===
This method is implemented by [[Class: I2CE_Module_FormLimits#createCheckFunction() | I2CE_Module_FormLimits->createCheckFunction() ]]
===createCheckLimitString()===
This method is implemented by [[Class: I2CE_Module_FormLimits#createCheckLimitString() | I2CE_Module_FormLimits->createCheckLimitString() ]]
===generateLimit()===
This method is implemented by [[Class: I2CE_Module_FormLimits#generateLimit() | I2CE_Module_FormLimits->generateLimit() ]]
===generateWhereClause()===
This method is implemented by [[Class: I2CE_Module_FormLimits#generateWhereClause() | I2CE_Module_FormLimits->generateWhereClause() ]]
===processLimit()===
This method is implemented by [[Class: I2CE_Module_FormLimits#processLimit() | I2CE_Module_FormLimits->processLimit() ]]
===getDisplayedExistingLimit()===
This method is implemented by [[Class: I2CE_Module_FormLimits#getDisplayedExistingLimit() | I2CE_Module_FormLimits->getDisplayedExistingLimit() ]]
===isComponentized()===
This method is implemented by [[Class: I2CE_FormStorage#isComponentizedForm() | I2CE_FormStorage->isComponentizedForm() ]]
===addChild()===
This method is implemented by [[Class: I2CE_FormStorage#addChild() | I2CE_FormStorage->addChild() ]]
===getChildIds()===
This method is implemented by [[Class: I2CE_FormStorage#getChildIds() | I2CE_FormStorage->getChildIds() ]]
===getStorage()===
This method is implemented by [[Class: I2CE_FormStorage#getStorage() | I2CE_FormStorage->getStorage() ]]
===isWritable()===
This method is implemented by [[Class: I2CE_FormStorage#isWritable() | I2CE_FormStorage->isWritable() ]]
===populate()===
This method is implemented by [[Class: I2CE_FormStorage#populate() | I2CE_FormStorage->populate() ]]
===populateChild()===
This method is implemented by [[Class: I2CE_FormStorage#populateChild() | I2CE_FormStorage->populateChild() ]]
===populateChildren()===
This method is implemented by [[Class: I2CE_FormStorage#populateChildren() | I2CE_FormStorage->populateChildren() ]]
===populateFirst()===
This method is implemented by [[Class: I2CE_FormStorage#populateFirst() | I2CE_FormStorage->populateFirst() ]]
===populateHistory()===
This method is implemented by [[Class: I2CE_FormStorage#populateHistory() | I2CE_FormStorage->populateHistory() ]]
===populateLast()===
This method is implemented by [[Class: I2CE_FormStorage#populateLast() | I2CE_FormStorage->populateLast() ]]
===delete()===
This method is implemented by [[Class: I2CE_FormStorage#delete() | I2CE_FormStorage->delete() ]]
===save()===
This method is implemented by [[Class: I2CE_FormStorage#save() | I2CE_FormStorage->save() ]]
===setChangeType()===
This method is implemented by [[Class: I2CE_FormStorage#setChangeType() | I2CE_FormStorage->setChangeType() ]]
 
 
[[Category:Class Documentation]]

Latest revision as of 09:43, 18 August 2015