|
|
(34 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
| |
| * [[Class: I2CE_Template | 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
| |
| * [[Class: I2CE_Template | 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]]
| |