Class: I2CE FormStorage: Difference between revisions

From IHRIS Wiki
No edit summary
(Redirected page to Class: I2CE FormStorage (4.1.7))
 
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
This article desrcibes the class '''I2CE_FormStorage'''which extends the class [[Class: I2CE_Module | I2CE_Module]]
#REDIRECT [[Class: I2CE_FormStorage (4.1.7)]]
It is contained in the module [[iHRIS Module List#forms-storage|forms-storage]] 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/modules/FormStorage/lib/I2CE_FormStorage.php modules/Forms/modules/FormStorage/lib/I2CE_FormStorage.php]
I2CE_Module_FormStorage
@package I2CE
@subpackage Core
@author Carl Leitner <litlfred@ibiblio.org>
 
@version 3.2
@since 3.2
@access public
==Variables==
===$componentized_forms===
A cached list of componentized forms.
of string,  the form names
*Type: static protected y $componentized_forms
 
===$storage===
An array with a cache of the storage type for a form.
*Type: static protected y $storage
 
===$storageMechs===
An array with a cache of the storage mechanisms
*Type: static protected y $storageMechs
 
==Methods==
===FF_IG_save()===
Save the FormField to the database.
@param I2CE_User I2CE_User The user saving this data.
*Signature: public function FF_IG_save($form_field,$do_check,$user)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
*$form_field
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $do_check<br/>A flag to determine if a check should be made for the same value being saved.
*$user
===FF_IG_setSequence()===
Set the value of this field to the next sequence for the form field.
*Signature: public function FF_IG_setSequence($form_field)
Parameters:
* [[Class: I2CE_FormField_INT_GENERATE | I2CE_FormField_INT_GENERATE]] $form_field
===FF_SP_save()===
Save the FormField_STRING_PASS to the database.
@param I2CE_User I2CE_User The user saving this data.
*Signature: public function FF_SP_save($form_field,$do_check,$user)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [[Class: I2CE_FormField_STRING_PASS | I2CE_FormField_STRING_PASS]] $form_field
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $do_check<br/>A flag to determine if a check should be made for the same value being saved.
*$user
===FF_populateHistory()===
Populate the history of entries for the form field if the storage module handles history.
*Signature: public function FF_populateHistory($form_field)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [[Class: I2CE_FormField | I2CE_FormField]] $form_field
===FF_save()===
Save the FormField to the database.
@param I2CE_User I2CE_User The user saving this data.
*Signature: public function FF_save($form_field,$do_check,$user)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [[Class: I2CE_FormField | I2CE_FormField]] $form_field
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $do_check<br/>A flag to determine if a check should be made for the same value being saved.
*$user
===addChild()===
add  the given child to the form for this object.
@param string  the id of this form
*Signature: public function addChild($form,$form_name,$id)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.types.string.php string] $form_name<br/>: The form name to add
*$id
===delete()===
Delete a form object.
table. default: false
*Signature: public function delete($form,$transact,$complete,$no_history)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $transact<br/>a flag to use transactions or not. default: true
**Default Value: true
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $complete<br/>a flag to determine if a complete delete should happen.  default: false
**Default Value: false
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $no_history<br/>a flag to determine if the record should not go to the deleted_records
**Default Value: false
===getChildIds()===
Gets the id's for the given child for this form.
If it is as an array of two integers, it is the offset and then number of results to limit to.
*Signature: public function getChildIds($form,$child_form_name,$order_by,$where,$limit)
*Returns: [http://www.php.net/manual/en/language.types.array.php array]
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.types.string.php string] $child_form_name<br/>the child form name
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $order_by<br/>A string or array of strings.  The fields to oreder by .  defaults to empty array.
**Default Value: array()
*$where
**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
===getComponentizedForms()===
static function which gets a list of all componentized forms
*Signature: static public function getComponentizedForms($use_cache)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] of string, the componentized forms
Parameters:
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $use_cache<br/>Use the cached value of the list for componentized forms if possible.  Defualts to true
**Default Value: true
===getHooks()===
*Signature: static public function getHooks()
===getMechanismByStorage()===
Returns the storage mechanism for the given storage type.
*Signature: static public function getMechanismByStorage($storage)
*Returns: [[Class: I2CE_FormStorage_Mechanism | I2CE_FormStorage_Mechanism]] or false on failure
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $storage
===getMethods()===
*Signature: static public function getMethods()
===getMigratedValue()===
Get the new value for a field that has been migrated.
*Signature: static public function getMigratedValue($migrate_node,$form,$old_id,$field,$map_form)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
Parameters:
* [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]] $migrate_node
* [http://www.php.net/manual/en/language.types.string.php string] $form
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $old_id
* [http://www.php.net/manual/en/language.types.string.php string] $field
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $map_form
===getNewMigratedValue()===
Get the new migrated value for from the old value.
@param mixed $old_id
*Signature: static public function getNewMigratedValue($migrate_node,$map_form,$old_value,$old_amt)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed]
Parameters:
* [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]] $migrate_node
* [http://www.php.net/manual/en/language.types.string.php string] $map_form
*$old_value
* integer $old_amt<br/>For currency data this is the amount
**Default Value: 0
===getOldMigratedValue()===
Get the old value for a field that has been migrated.
*Signature: static public function getOldMigratedValue($migrate_node,$form,$old_id,$field,$map_form)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] array( 'map_form', 'old_value' );
Parameters:
* [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]] $migrate_node
* [http://www.php.net/manual/en/language.types.string.php string] $form
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $old_id
* [http://www.php.net/manual/en/language.types.string.php string] $field
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $map_form
===getRecords()===
Return an array of all the record ids for a given form.
*Signature: public function getRecords($factory,$form_name)
*Returns: [http://www.php.net/manual/en/language.types.array.php array]
Parameters:
* [[Class: I2CE_FormFactory | I2CE_FormFactory]] $factory
*$form_name
===getStorage()===
Return the storage class for the given form.
*Signature: static public function getStorage($form_name,$no_cache)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $no_cache<br/>Check from the source, not the cached array
**Default Value: false
===getStorageMechanism()===
*Signature: static public function getStorageMechanism($form_name,$no_cache)
*Returns: [[Class: I2CE_FormStorage_Mechanism | I2CE_FormStorage_Mechanism]] or false on failure
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $no_cache<br/>Check from the source, not the cached array
**Default Value: false
===isComponentized()===
static function to determine if a form is componentized
*Signature: static public function isComponentized($form)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form
===isComponentizedForm()===
Fuzzy method to check if a form instance is componentized
*Signature: public function isComponentizedForm($formClass)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $formClass
===isWritable()===
Check to see if this form is considered to be writable.
*Signature: static public function isWritable($form)
Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $form<br/>string, I2CE_Form or I2CE_FormField
===listDisplayFields()===
Lists the display values for a field
and then we get all forms with parent the given id.
If it is as an array of two integers, it is the offset and then number of results to limit to.
time greater than or equal to  $mod_time.  If the form storage has no way of tracking modifucation time, all entries are listed.
*Signature: static public function listDisplayFields($form,$fields,$parent,$where_data,$ordering,$limit,$mod_time)
*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.types.boolean.php boolean] $parent<br/>Defaults to false.    If it is scalar and non-boolean, it is consider to be the ID of the parent,
**Default Value: false
* [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
* integer $mod_time<br/>Defaults to -1.  If non-negative, we only list the requested fields for an id if at least one of them has a modification
**Default Value: -1
===listFields()===
and then we get all forms with parent the given id.
If it is as an array of two integers, it is the offset and then number of results to limit to.
time greater than or equal to  $mod_time.  If the form storage has no way of tracking modifucation time, all entries are listed.
*Signature: static public function listFields($form,$fields,$parent,$where_data,$ordering,$limit,$mod_time)
*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.types.boolean.php boolean] $parent<br/>Defaults to false.    If it is scalar and non-boolean, it is consider to be the ID of the parent,
**Default Value: false
* [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
* integer $mod_time<br/>Defaults to -1.  If non-negative, we only list the requested fields for an id if at least one of them has a modification
**Default Value: -1
===lookupDisplayField()===
Looks up the display value of the item based on the code.
 
This is the default method that most implementations of {@link lookup()} use.  It finds the description of
the object based on the code and saves it in the {@link cache} and returns it.
than one.  If false , then we return as an array.  Defaults to '-'
*Signature: static public function lookupDisplayField($form,$id,$fields,$delim)
*Returns: [http://www.php.net/manual/en/language.types.string.php string] or false on failure
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>The name of the form in the database.
* integer $id<br/>The code of the entry to lookup.
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $fields<br/>A field or an array  of fields to look up and return.  Defaults to 'name'
**Default Value: array('name')
* [http://www.php.net/manual/en/language.types.string.php string] $delim<br/>The delimiter to put between returned fields if there are more
**Default Value: '-'
===lookupField()===
Looks up the dbvalue of the item based on the code.
 
This is the default method that most implementations of {@link lookup()} use.  It finds the description of
the object based on the code and saves it in the {@link cache} and returns it.
than one.  If false , then we return as an array.  Defaults to '-'
*Signature: static public function lookupField($form,$id,$fields,$delim)
*Returns: [http://www.php.net/manual/en/language.types.string.php string] or false on failure
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>The name of the form in the database.
* integer $id<br/>The code of the entry to lookup.
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $fields<br/>A field or an array  of fields to look up and return.  Defaults to 'name'
**Default Value: array('name')
* [http://www.php.net/manual/en/language.types.string.php string] $delim<br/>The delimiter to put between returned fields if there are more
**Default Value: '-'
===migrateField()===
Migrate field data from an old setMap reference to a new MAP form field type.
The old data should have been saved in a migrate_data magic data (see {@link storeMigrateData}).
Optionally the field list can be:
array( "field" => array( "prev_field" => "prev_map_form" ) )
The field will get the old value from the list of fields (with mapped forms)
for when the field name was changed.
*Signature: static public function migrateField($form_name,$field_list,$migrate_path,$user)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
* [http://www.php.net/manual/en/language.types.array.php array] $field_list<br/>The list of fields that need to be changed as an array of field => map_form.
* [http://www.php.net/manual/en/language.types.string.php string] $migrate_path<br/>Where the migrate data has been saved.
* I2CE_User $user<br/>The user to save the new form field.
===migrateForm()===
Migrate a given form from one storage method to the current storage method.
This should only be used when upgrading a module that moved a form storage
from one type to another.
the migrate path to convert the data.  Format is array( "field" => "map_form" )
These forms and fields should have already been passed to {@link storeMigrateData}
so the data can be retrieved from there.
*Signature: static public function migrateForm($form_name,$storage,$user,$migrate_path,$id_field,$skip_fields,$migrate_fields,$callback)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
* [http://www.php.net/manual/en/language.types.string.php string] $storage<br/>The old storage mechanism
* I2CE_User $user<br/>The user object to use to save the new forms.
* [http://www.php.net/manual/en/language.types.string.php string] $migrate_path<br/>The full path in MagicData to save the old to new mappings.
**Default Value: false
* [http://www.php.net/manual/en/language.types.string.php string] $id_field<br/>The old field name to use the value of for the new form id.
**Default Value: false
* [http://www.php.net/manual/en/language.types.array.php array] $skip_fields<br/>A list of fields to not migrate to the new form.
**Default Value: array()
* [http://www.php.net/manual/en/language.types.array.php array] $migrate_fields<br/>A list of fields that have already been migrated and need to use
**Default Value: array()
*$callback
**Default Value: null
===populate()===
Populate a form object.
*Signature: public function populate($form)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
===populateChild()===
Populate all instances of the given child form for this object.
- array( "-start_date", "name" ). Defaults to null in which case if get the default sort
order that is registered for the type (which defaults to none)
@param mixed @where an aarray of where information to limit getting the child id's by.  If null, we get
the default limits for the type (which defaults to none)
*Signature: public function populateChild($form,$form_name,$order_by,$where,$type)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.types.string.php string] $form_name<br/>: The form name to populate
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $order_by<br/>A field or array  of fields to sort by.  Preceded by "-" to sort in reverse order.
**Default Value: null
*$where
**Default Value: null
* [http://www.php.net/manual/en/language.types.string.php string] $type<br/>Defaults to 'default'
**Default Value: 'default'
===populateChildren()===
Populate the given child form for this object.
- array( "demographic", "contact" )
Defaults to empty array
- array( "contact" => "contact_type" )
*Signature: public function populateChildren($form,$forms,$orderBy)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $forms<br/>A string or an  array such, the form names (the child forms to populate)
* [http://www.php.net/manual/en/language.types.array.php array] $orderBy<br/>An associative array of form names with an array of either string, field to sort by or an array of the fields
**Default Value: array()
===populateFirst()===
Populate the first child of a form object based on the given field
*Signature: public function populateFirst($form,$forms)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.types.array.php array] $forms<br/>an associative array with keys form names and values field names or ordering array
**Default Value: array()
===populateHistory()===
Populate Last of a form object.
*Signature: public function populateHistory($form)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
===populateLast()===
Populate the last child of a form object based on the given field
*Signature: public function populateLast($form,$forms)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* [http://www.php.net/manual/en/language.types.array.php array] $forms<br/>an associative array with keys form names and values field names or ordering array
**Default Value: array()
===save()===
Save a form object.
*Signature: public function save($form,$user,$transact)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* I2CE_User $user
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $transact<br/>Defaults to true.
**Default Value: true
===search()===
and then we get all forms with parent the given id.
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,$parent,$where_data,$ordering,$limit)
*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.types.boolean.php boolean] $parent<br/>Defaults to false.    If it is scalar and non-boolean, it is consider to be the ID of the parent,
**Default Value: false
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $where_data<br/>array or class implementing ArrayAccess, Iterator, and Countable (e.g. MagicDataNode) . the where data.
**Default Value: array()
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $ordering<br/>An field or 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
===setChangeType()===
Set the change type for the given form.
If this method isn't called then the change type will be I2CE_FormStorage::CHANGE_UPDATE
*Signature: public function setChangeType($form,$change_type,$field)
Parameters:
* [[Class: I2CE_Form | I2CE_Form]] $form
* integer $change_type<br/>: the change type to set Defautls to I2CE_FormStorage::CHANGE_UPDATE
**Default Value: I2CE_FormStorage_Mechanism::CHANGE_UPDATE
* [http://www.php.net/manual/en/language.types.string.php string] $field<br/>Defaults to 'default'.  optional field name to set the change type to.
**Default Value: 'default'
===storeMigrateData()===
Save the given fields to the given magic data node so it can later
be referenced when migrating the form.
array( "form_name" => array( "field1", "field2" ) );
*Signature: static public function storeMigrateData($forms,$migrate_path)
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $forms<br/>An array of forms with an array of fields for each:
* [http://www.php.net/manual/en/language.types.string.php string] $migrate_path<br/>The path in magic data to save the data
===validate_formfield()===
Hooked Function to check if a field is unique or unique restricted to a certain field
*Signature: public function validate_formfield($field_obj)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [[Class: I2CE_FormField | I2CE_FormField]] $field_obj
==Inherited Fuzzy Methods==
===launchBackgroundProcess()===
This method is inherited from [[Class: I2CE_Module#launchBackgroundProcess() | I2CE_Module->launchBackgroundProcess()]]
 
===launchBackgroundPHPScript()===
This method is inherited from [[Class: I2CE_Module#launchBackgroundPHPScript() | I2CE_Module->launchBackgroundPHPScript()]]
 
===launchBackgroundPage()===
This method is inherited from [[Class: I2CE_Module#launchBackgroundPage() | I2CE_Module->launchBackgroundPage()]]
 
===userMessage()===
This method is inherited from [[Class: I2CE_Fuzzy#userMessage() | I2CE_Fuzzy->userMessage()]]
 
 
[[Category:Class Documentation]]

Latest revision as of 08:39, 23 August 2013