Class: I2CE List: Difference between revisions

From IHRIS Wiki
No edit summary
(Redirected page to Class: I2CE List (4.1.7))
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
This article desrcibes the1 class '''I2CE_List''' which extends the class [[Class: I2CE_Form | I2CE_Form]]
#REDIRECT [[Class: I2CE_List (4.1.7)]]
It is contained in the module [[iHRIS Module List#Lists|Lists]] 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/annotate/head:/modules/Forms/modules/Lists/lib/I2CE_List.php modules/Forms/modules/Lists/lib/I2CE_List.php]
 
@author Luke Duncan <lduncan@intrahealth.org>
 
@since v1.0.0
 
@version v2.0.0
 
Base object for dealing with lists of data.
 
 
 
This is an abstract object with base code for many of the I2CE_Form interface methods.  It is used
 
for many of the list database objects such as {@link AcademicLevel} and {@link District}.
 
 
 
It assumes all lists have a code field and by default a description field but this can be overwritten
 
by certain objects like {@link Cadre}.
 
 
 
@package I2CE
 
@abstract
 
@access public
==Constants==
===I2CE_List::MAIN_FIELD===
The main field name used for display a description of a record.
Defined as: "name"
===I2CE_List::SEC_FIELD===
The secondary field name used for displaying a description of a record in combination with the MAIN_FIELD.
Defined as: null
===I2CE_List::SORT_FIELD===
The sort field name to be used for sorting the display list.  This can't be used with the SEC_FIELD option for display.
Defined as: null
==Variables==
===$cache===
An array to cache lookup entries
 
Any lookups done to the database will be cached in this static array so additional
lookups using the same id won't have to access the database.
@static
*Type: static protected y $cache
 
==Methods==
===_flattenDataTree()===
*Signature: static protected function _flattenDataTree($data,$list)
Parameters:
*$data
*&$list
===_monsterMash()===
Gets the id's for a form that live at
the displayed fields for $form_name that corresponds to that value.  If $use_display_fields is false, then we return an array of the display fields
@param string $use_display value.  Defaults to true in which case the displayed fields are returned based on the display value.  If false, then the displa
@param string $use_display value.  Defaults to true in which case the displayed fields are returned based on the display value.  If false, then the displa
*Signature: static protected function _monsterMash($options,$form_name,$opt_field,$opt_form,$opt_id,$sub_fields,$sub_val,$display_fields,$use_display_value)
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] &$options<br/>Where the id's are saved.  Array with keys the ids of $form_name. For values, if $use_dislpay_value is true, then
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
* stirng $opt_field<br/>The field we are limiting $form_name on.
* stirng $opt_form<br/>The form we wish to look that $opt_field takes values in
* [http://www.php.net/manual/en/language.types.string.php string] $opt_id<br/>The id wish to look that $opt_field takes values.  e.g. we are looking for all instances of $form_name where $opt_field  is $opt_form|$opt_id
* artary $sub_fields<br/>Example  array(county+district,district+region,[region])
* [http://www.php.net/manual/en/language.types.string.php string] $sub_val<br/>Defaults to ''.  If use_display_value is set, a string we prepend to the displayed fields for the id
**Default Value: ''
* [http://www.php.net/manual/en/language.types.array.php array] $display_fields<br/>The fields which we use to populate $options with.  Defaults to an empty array in which case the value of $options is the display fields registered for this form .
**Default Value: array()
*$use_display_value
**Default Value: true
===addCache()===
Adds the {@link id} number to the {@link cache}.
 
@param integer $code The code of the entry to add.
*Signature: static final protected function addCache($table_name,$id,$value)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $table_name<br/>The name of the table in the database.
*$id
* [http://www.php.net/manual/en/language.types.string.php string] $value<br/>The value to add to the cache
===componentizeQuery()===
returns the posible componentization of a form|id
@parm string $component The component we possibly wish to componentize at.
*Signature: static public function componentizeQuery($qry,$forms,$component)
*Returns: string. They query need to turn $qry into one componentized to $component.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $qry<br/>the query need to get the form|id
* [http://www.php.net/manual/en/language.types.array.php array] $forms<br/>an array of string which are componentized
*$component
===createDataTree()===
Create a data tree of the selectable forms.  Deisgned to be fed into tree select
it is an "bottom up" array of string where strings are of the form "$form" or "$form+$link_field".  In the case of
the former type, then $link_field is assumed to be the next form.  So for example, "county" has link field "district".
If a "$form(+$link_field)" is surrounded by brackets [ ] , it is not displayed.
ordering for that form based on its displayed firelds
*Signature: static public function createDataTree($fields,$forms,$limits,$orders,$display_first,$major_separator,$minor_separator)
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $fields<br/>an ordered array E.g array('village+county','county','district,'region+country','country').
* [http://www.php.net/manual/en/language.types.array.php array] $forms<br/>An unorderd array of form names whose values we allow to be selected
* [http://www.php.net/manual/en/language.types.array.php array] $limits<br/>An array with keys form names and value limit data
* [http://www.php.net/manual/en/language.types.array.php array] $orders<br/>An array with keys form names and values array of field orders for that form.  If the form name has no orders, we use default
**Default Value: array()
*$display_first
**Default Value: true
* [http://www.php.net/manual/en/language.types.string.php string] $major_separator<br/>The seperator between the start display value and the extended display values.  If null, then the title is an array of values
**Default Value: ' - '
* [http://www.php.net/manual/en/language.types.string.php string] $minor_separator<br/>The sepeartor between the extended display values
**Default Value: ' '
===flattenDataTree()===
*Signature: static public function flattenDataTree($data)
Parameters:
*$data
===getCache()===
Return the {@link cache cached} entry for the {@link id} number.
 
@param integer $code The code of the entry to lookup.
*Signature: static final protected function getCache($table_name,$id)
*Returns: [http://www.php.net/manual/en/language.types.string.php string] The value of the cached code.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $table_name<br/>The name of the table in the database.
*$id
===getDisplayFields()===
Returns a list of fields used for displaying this list.
*Signature: static public function getDisplayFields($form_name)
*Returns: [http://www.php.net/manual/en/language.types.array.php array]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
===getExtendedDisplay()===
get an exended display for a field value
it is an "bottom up" array of string where strings are of the form "$form" or "$form+$link_field".  In the case of
the former type, then $link_field is assumed to be the next form.  So for example, "county" has link field "district".
If a "$form(+$link_field)" is surrounded by brackets [ ] , it is not displayed.
*Signature: static public function getExtendedDisplay($fields,$start_value,$major_separator,$minor_separator)
*Returns: [http://www.php.net/manual/en/language.types.string.php string] or array
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $fields<br/>An ordered array E.g array('village+county','county','district,'region+country','country').
* [http://www.php.net/manual/en/language.types.string.php string] $start_value<br/>E.g. "village|10"
* [http://www.php.net/manual/en/language.types.string.php string] $major_separator<br/>The seperator between the start display value and the extended display values.  If null, we return an array.
**Default Value: ' - '
* [http://www.php.net/manual/en/language.types.string.php string] $minor_separator<br/>The sepeartor between the extended display values
**Default Value: ' '
===getHTMLTemplate()===
Return the HTML file name for the form template for this form.
*Signature: public function getHTMLTemplate()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getListType()===
Return the list edit type for this list.
 
The possible return values are "list," "dual," or "select." Select will display a drop
down of all choices and list and dual will list them all in a table.  Dual includes the
linked list object for the object.
*Signature: public function getListType()
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
===getSortFields()===
Returns a list of fields used for sorting this list.
*Signature: static public function getSortFields($form_name)
*Returns: [http://www.php.net/manual/en/language.types.array.php array]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name
===isCached()===
Checks to see if the {@link id} number is cached.
 
Checks the {@link cache} to see if {@link code} has been cached or not.
@param integer $code The code of the entry to lookup.
*Signature: static final protected function isCached($table_name,$id)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $table_name<br/>The name of the table in the database.
*$id
===listOptions()===
Return the list of options for this list as an array.
 
include results under the optional value.  e.g. if $opt_value was 'country|10' and $sub_fields was
array(county+district,district+region,[region],country) we would display all counties and district who
are under country|10.  In this case we display the extended version of the option
*Signature: static public function listOptions($form_name,$opt_field,$opt_value,$sub_fields,$selectable_forms)
*Returns: [http://www.php.net/manual/en/language.types.array.php array]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name<br/>The form being listed.  This needs to be a subclass of I2CE_List
* [http://www.php.net/manual/en/language.types.string.php string] $opt_field<br/>An optional field to further limit the list of choices
**Default Value: ""
* integer $opt_value<br/>If the $opt_field is used then this is the value to limit it by.
**Default Value: '|'
* [http://www.php.net/manual/en/language.types.array.php array] $sub_fields<br/>of string.  If $op_value is is set, it is an array of  linked ($form+)$field's to
**Default Value: array()
*$selectable_forms
**Default Value: array()
===lookup()===
Looks up the description 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.
*Signature: static public function lookup($id,$form_name)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
Parameters:
* integer $id<br/>The code of the entry to lookup.
* [http://www.php.net/manual/en/language.types.string.php string] $form_name<br/>The name of the form in the database.
===monsterMash()===
Gets the id's for a form that live at
In the example, if $opt_form|$opt_id = country|10 and $link_field = country, then we add in person where residence = country|10, then those person where
residence is an region where  region+country = country|10.
Then we add in those person id's where residence is any distrinct whose region is a region with region+country = country|10.
Then we add in those person id's where residence is an county whose district has rgion field a region whose country field is country|10.
display fields registered for this form .
@param string $use_display value.  Defaults to true in which case the displayed fields are returned based on the display value.  If false, then the displa
@ returns array.  .  Array with keys the ids of $form_name. For values, if $use_dislpay_value is true, then
*Signature: static public function monsterMash($form_name,$opt_field,$opt_formid,$sub_fields,$display_fields,$use_display_value)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form_name<br/>Example person
* stirng $opt_field<br/>The field we are limiting $form_name on.  Example 'residence'
* stirng $opt_formid<br/>The form|id and we wish to look that $opt_field takes values in
* artary $sub_fields<br/>Example  array(county+district,district+region,[region]) If a non-empty array it are the sub-fields path we wish to add to the results.
* [http://www.php.net/manual/en/language.types.array.php array] $display_fields<br/>The fields which we return the values of.  Defaults to an empty array in which case the value of $options is the
**Default Value: array()
*$use_display_value
**Default Value: true
===name()===
Return the display name for this list object.
 
This will return the same value as lookup() but from the current object instead of from the database.
*Signature: public function name($delim)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $delim<br/>the delimiter between fields.
**Default Value: ' - '
===setDisplayData()===
Sets the field values to be displayed in the HTML template.
*Signature: public function setDisplayData($template)
Parameters:
* [[Class: I2CE_Template | I2CE_Template]] &$template
===walkupFieldPath()===
Walk up a form/linked  field path until. Return the id of the top form.
$param mixed. Either an array of string or a colon-sepearted string.  (imploded) values is a string of the form:
form1(+field1):...:formM(+fieldM):..:fieldN
there needs to be at least one colon/array needs to be at least two in length
*Signature: static public function walkupFieldPath($field_path,$formid)
*Returns: mixed. False on failure, string of the form "$form|$id" on success
Parameters:
*$field_path
* [http://www.php.net/manual/en/language.types.string.php string] $formid<br/>string of the form "$form|$id".  the starting value.  $form should be one of formX above (e.g. the dbvalue of a map field)
==Inherited Variables==
===$children===
Theis public variable is inherited from [[Class: I2CE_Form#$children | I2CE_Form->$children]]
 
===$fields===
Theis protected variable is inherited from [[Class: I2CE_Form#$fields | I2CE_Form->$fields]]
 
===$parent===
Theis protected variable is inherited from [[Class: I2CE_Form#$parent | I2CE_Form->$parent]]
 
===$id===
Theis protected variable is inherited from [[Class: I2CE_Form#$id | I2CE_Form->$id]]
 
===$attributes===
Theis protected variable is inherited from [[Class: I2CE_Form#$attributes | I2CE_Form->$attributes]]
 
===$parent_forms===
Theis protected variable is inherited from [[Class: I2CE_Form#$parent_forms | I2CE_Form->$parent_forms]]
==Inherited Fuzzy Methods==
===isNumeric()===
This method is inherited from [[Class: I2CE_Form#isNumeric() | I2CE_Form->isNumeric()]]
 
===getLimitStyles()===
This method is inherited from [[Class: I2CE_Form#getLimitStyles() | I2CE_Form->getLimitStyles()]]
 
===checkLimit()===
This method is inherited from [[Class: I2CE_Form#checkLimit() | I2CE_Form->checkLimit()]]
 
===checkWhereClause()===
This method is inherited from [[Class: I2CE_Form#checkWhereClause() | I2CE_Form->checkWhereClause()]]
 
===createCheckFunction()===
This method is inherited from [[Class: I2CE_Form#createCheckFunction() | I2CE_Form->createCheckFunction()]]
 
===createCheckLimitString()===
This method is inherited from [[Class: I2CE_Form#createCheckLimitString() | I2CE_Form->createCheckLimitString()]]
 
===generateLimit()===
This method is inherited from [[Class: I2CE_Form#generateLimit() | I2CE_Form->generateLimit()]]
 
===generateWhereClause()===
This method is inherited from [[Class: I2CE_Form#generateWhereClause() | I2CE_Form->generateWhereClause()]]
 
===processLimit()===
This method is inherited from [[Class: I2CE_Form#processLimit() | I2CE_Form->processLimit()]]
 
===getDisplayedExistingLimit()===
This method is inherited from [[Class: I2CE_Form#getDisplayedExistingLimit() | I2CE_Form->getDisplayedExistingLimit()]]
 
===isComponentized()===
This method is inherited from [[Class: I2CE_Form#isComponentized() | I2CE_Form->isComponentized()]]
 
===addChild()===
This method is inherited from [[Class: I2CE_Form#addChild() | I2CE_Form->addChild()]]
 
===getChildIds()===
This method is inherited from [[Class: I2CE_Form#getChildIds() | I2CE_Form->getChildIds()]]
 
===getStorage()===
This method is inherited from [[Class: I2CE_Form#getStorage() | I2CE_Form->getStorage()]]
 
===isWritable()===
This method is inherited from [[Class: I2CE_Form#isWritable() | I2CE_Form->isWritable()]]
 
===populate()===
This method is inherited from [[Class: I2CE_Form#populate() | I2CE_Form->populate()]]
 
===populateChild()===
This method is inherited from [[Class: I2CE_Form#populateChild() | I2CE_Form->populateChild()]]
 
===populateChildren()===
This method is inherited from [[Class: I2CE_Form#populateChildren() | I2CE_Form->populateChildren()]]
 
===populateFirst()===
This method is inherited from [[Class: I2CE_Form#populateFirst() | I2CE_Form->populateFirst()]]
 
===populateHistory()===
This method is inherited from [[Class: I2CE_Form#populateHistory() | I2CE_Form->populateHistory()]]
 
===populateLast()===
This method is inherited from [[Class: I2CE_Form#populateLast() | I2CE_Form->populateLast()]]
 
===delete()===
This method is inherited from [[Class: I2CE_Form#delete() | I2CE_Form->delete()]]
 
===save()===
This method is inherited from [[Class: I2CE_Form#save() | I2CE_Form->save()]]
 
===setChangeType()===
This method is inherited from [[Class: I2CE_Form#setChangeType() | I2CE_Form->setChangeType()]]
 
===userMessage()===
This method is inherited from [[Class: I2CE_Fuzzy#userMessage() | I2CE_Fuzzy->userMessage()]]
 
 
[[Category:Class Documentation]]

Latest revision as of 08:40, 23 August 2013