Class: I2CE MagicDataNode (4.0.6)
This article describes the class I2CE_MagicDataNode .
- Implements the interface RecursiveIterator
- Implements the interface SeekableIterator
- Implements the interface ArrayAccess
- Implements the interface Countable
- Child Classes:
- Location: Part of the module I2CE in the package I2CE 4.0.6-release
- Source: Defined in the file lib/I2CE_MagicDataNode.php on line 34
Configuration class to lookup and save configuration options.
Constants
I2CE_MagicDataNode::TYPE_NOT_POPULATED
Constant type value when this data set hasn't tried to
populate from storage yet.
Defined as: -2
I2CE_MagicDataNode::TYPE_INDETERMINATE
Constant type value when this data set hasn't been defined. Defined as: -1
I2CE_MagicDataNode::TYPE_PARENT
Constant type value when this data set is a parent node. Defined as: 0
I2CE_MagicDataNode::TYPE_STRING_VALUE
Constant type value when this data set is a string value. Defined as: 1
Variables
$type
The type of this configuration setting. Possible values are -1 = unset, 0 = parent object, 1 = scalar/value.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 60
- Type: protected integer $type
$name
The name of this configuration setting.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 64
- Type: protected string $name
$value
The value of this configuration setting. This is only valid when type = 1.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 69
- Type: protected string $value
$children
All children configuration objects for this configuration group. This is only valid when type = 0
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 73
- Type: protected array $children
$parent
The parent of this configuration.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 77
- Type: protected I2CE_MagicDataNode $parent
$parentPath
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 78
- Type: protected $parentPath
$parentPathTop
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 79
- Type: protected $parentPathTop
$top
The top level of this configuration.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 83
- Type: protected I2CE_MagicDataNode $top
$volatile
. True if the data is volatile. Defaults to false
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 88
- Type: protected boolean $volatile
$attributes
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1709
- Type: protected $attributes
Methods
__construct()
Construct a new configuration value or grouping.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 190
- Signature: protected function __construct($name,$parent,$check_key)
- Parameters:
- string $name
The name of this configuration setting.- Default Value: null
- I2CE_MagicDataNode $parent
The parent of this configuration setting.- Default Value: null
- boolean $check_key
Defaults to true in which case we check that the key is valid.- Default Value: true
- string $name
__get()
Get the value for a child configuration option.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 992
- Signature: public function __get($path)
- Parameters:
- $path
- Returns: mixed.
Null if the path was invalid. I2CE_MagicDataNode or string on success
__isset()
Check to see if a given key or path exists and the value is set
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1092
- Signature: public function __isset($path)
- Parameters:
- mixed $path
{@see traverse()} returns mixed. Booolean true or false if the magic data referenced by the given path is set. null on failure (invalid path)
- mixed $path
__set()
Set the value for a child configuration option.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 961
- Signature: public function __set($path,$value)
- Parameters:
__toString()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1372
- Signature: public function __toString()
__unset()
Unset a given key in the children array.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1184
- Signature: final public function __unset($key)
- Parameters:
- string $key
_getAsArray()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1349
- Signature: protected function _getAsArray($locale)
- Parameters:
- string $locale
The locale we wish to get the values for. Defaults to null meaning we are not getting tranlsated values.- Default Value: null
- string $locale
_getAttribute()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1749
- Signature: protected function _getAttribute($key,$prefix)
- Parameters:
- $key
- $prefix
_getAttributes()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1806
- Signature: protected function _getAttributes($keys_only,$prefix)
- Parameters:
- $keys_only
- $prefix
_hasAttribute()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1722
- Signature: protected function _hasAttribute($key,$prefix)
- Parameters:
- $key
- $prefix
_removeAttribute()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1780
- Signature: protected function _removeAttribute($prefix,$key)
- Parameters:
- $prefix
- $key
_setAttribute()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1855
- Signature: protected function _setAttribute($key,$val,$prefix)
- Parameters:
- $key
- $val
- $prefix
checkKey()
Check to make sure a given key is valid. It can be any combination of _-+.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 125
- Signature: static public function checkKey($key)
- Parameters:
- string $key
- Returns: boolean
count()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1579
- Signature: public function count()
current()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1595
- Signature: public function current()
erase()
Erases the current node and all of its subnodes from the storage mechanism.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1251
- Signature: public function erase($locale)
- Parameters:
- string $locale
The locale we wish to erase the values for. Defaults to null meaning we erase all values/locales- Default Value: null
- string $locale
- Returns: boolean
true on success
eraseChildren()
Erases all children of the current node and all of its subnodes from the storage mechanism.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1205
- Signature: public function eraseChildren($locale)
- Parameters:
- string $locale
The locale we wish to erase the values for. Defaults to null meaning we erase all values/locales- Default Value: null
- string $locale
- Returns: boolean
true on success
getAsArray()
Return an array of all the child values for this object.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1329
- Signature: public function getAsArray($path,$locale)
- Parameters:
- Returns: array
getAttribute()
Gets an attribute
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1744
- Signature: public function getAttribute($key)
- Parameters:
- string $key
- Returns: mixed
string if the attribute value. null if it does not exist.
getAttributes()
Get the attributes
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1802
- Signature: public function getAttributes($keys_only)
- Parameters:
- boolean $keys_only
Defaults to false. If true returns only the attribute names that are set. If true returns associative array of attribute=>value pairs- Default Value: false
- boolean $keys_only
- Returns: array
getChildren()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1697
- Signature: public function getChildren()
getKeys()
Return an array of all child keys for this object.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1294
- Signature: public function getKeys($path,$attrs)
- Parameters:
- mixed $path
{@see traverse()}- Default Value: null
- $attrs
- Default Value: false
- mixed $path
- Returns: array
getName()
Return the name of this configuration setting.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 180
- Signature: public function getName()
- Returns: string
getParent()
Get the parent magic data node
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1082
- Signature: public function getParent()
- Returns: I2CE_MagicDataNode
getPath()
Return the full path to this configuration setting.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 151
- Signature: public function getPath($show_top)
- Parameters:
- boolean $show_top
defaults to true if we are to show the parent- Default Value: true
- boolean $show_top
- Returns: string
getSaveValue()
Return the direct scalar value for this node.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 895
- Signature: public function getSaveValue()
- Returns: string
getTranslation()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 501
- Signature: public function getTranslation($locale,$resolve,$path)
- Parameters:
- $locale
- $resolve
- Default Value: true
- $path
- Default Value: null
getTranslations()
Get the translations for the current node
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 392
- Signature: public function getTranslations($locales_only,$include_default_locale)
- Parameters:
- boolean $locales_only
Defaults to false. If true returns only the loclaes for which a translation exists If true returns associative array of locale=>translation pairs- Default Value: false
- boolean $include_default_locale
Defaults to true in which case we include the nodes values under the default locale- Default Value: true
- boolean $locales_only
- Returns: array
getType()
Return the type of this node.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 706
- Signature: public function getType()
- Returns: int
or false on failure
getValue()
Return the value of this configuration object if the type == 1 and the current object if type is anything else.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 330
- Signature: public function getValue()
- Returns: mixed
hasAttribute()
Checks to see if an attribute is present
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1717
- Signature: public function hasAttribute($key)
- Parameters:
- string $key
- Returns: mixed
boolean. true if key exists, false if it does not, null if an invalid key
hasChildren()
whether the current key has children or not. this is _not_ whether this has a children or not
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1687
- Signature: public function hasChildren()
isScalar()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 91
- Signature: private function isScalar()
is_indeterminate()
Check to see if the value at the specified path is indeterminate @param strign $key. A key or path in the magic data. If null (default) then we are checking on the node itself
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 845
- Signature: public function is_indeterminate($path)
- Parameters:
- $path
- Default Value: null
- $path
- Returns: boolean.
True if it is a scalar value
is_parent()
Check to see if the value at the specified path is set and is a parent node. @param strign $key. A key or path in the magic data. If null (default) then we are checking on the node itself
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 870
- Signature: public function is_parent($path)
- Parameters:
- $path
- Default Value: null
- $path
- Returns: boolean.
True if it is a scalar value
is_populated()
Check to see if the value at the specified path is populated @param strign $key. A key or path in the magic data. If null (default) then we are checking on the node itself
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 800
- Signature: protected function is_populated($path)
- Parameters:
- $path
- Default Value: null
- $path
- Returns: boolean.
True if it is a scalar value
is_root()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 819
- Signature: public function is_root($path)
- Parameters:
- $path
- Default Value: null
- $path
is_scalar()
Check to see if the value at the specified path is set and is a scalar. @param strign $key. A key or path in the magic data. If null (default) then we are checking on the node itself
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 721
- Signature: public function is_scalar($path)
- Parameters:
- $path
- Default Value: null
- $path
- Returns: boolean.
True if it is a scalar value
is_translatable()
Checked to see if the node referenced is translatable
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 359
- Signature: public function is_translatable($path)
- Parameters:
- string $path
Defaults to null, meaning the current node.- Default Value: null
- string $path
- Returns: boolean.
is_translated()
Checked to see if the node referenced is translated ito the given locale
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 412
- Signature: public function is_translated($locale,$path)
- Parameters:
- Returns: boolean.
key()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1609
- Signature: public function key()
krsort()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1963
- Signature: public function krsort($sort_flags,$recurse)
- Parameters:
- $sort_flags
- Default Value: SORT_REGULAR
- $recurse
- Default Value: false
- $sort_flags
ksort()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1933
- Signature: public function ksort($sort_flags,$recurse)
- Parameters:
- $sort_flags
- Default Value: SORT_REGULAR
- $recurse
- Default Value: false
- $sort_flags
newAttribute()
Make a new attribute this object with the given key. The $nosave flag should only be set when populating a parent node from storage.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1901
- Signature: protected function newAttribute($key,$save,$prefix)
- Parameters:
- scalar $key
the key - boolean $save
Set to true to not save the parent and attribute - $prefix
- scalar $key
- Returns: mixed.
false on failure, the attribute created on succes
newChild()
Make a new child for this object with the given key. The $nosave flag should only be set when populating a parent node from storage.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 915
- Signature: protected function newChild($key,$save)
- Parameters:
- scalar $key
If a boolean and true, we add to the end of the array. Otherwise we use the given key as a key. - boolean $save
Set to true to not save the parent after creating this child.- Default Value: TRUE
- scalar $key
- Returns: I2CE_MagicDataNode
The child that was created or null on failure
next()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1618
- Signature: public function next()
offsetExists()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1484
- Signature: public function offsetExists($key)
- Parameters:
- $key
offsetGet()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1507
- Signature: public function offsetGet($key)
- Parameters:
- $key
offsetSet()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1533
- Signature: public function offsetSet($key,$val)
- Parameters:
- $key
- $val
offsetUnset()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1555
- Signature: public function offsetUnset($key)
- Parameters:
- $key
pathDivider()
Return the path divider for this MagicDataNode object
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 144
- Signature: protected function pathDivider()
- Returns: string
pathExists()
Check to see if a given key key or path exists
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1118
- Signature: public function pathExists($path)
- Parameters:
- mixed $path
{@see traverse()} returns mixed. Booolean true or false if the magic data referenced by the given path is set. null on failure (invalid path)
- mixed $path
pop()
Pop a value off the end of a parent/indeterminate node. @param mixed. Scalar value if the node is scalar, an array if it is a parent, otherwise null.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1445
- Signature: public function pop()
populate()
Populate any stored data based on the storage objects set in the top node.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 252
- Signature: protected function populate()
- Returns: true
on success.
push()
Push a value onto the end of a parent/indeterminate node.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1424
- Signature: public function push($val)
- Parameters:
- mixed $val
- Returns: int
the number of children the current node has. null on failure
raiseError()
Raise an error and redirect the user for any critical errors. The default redirect will go to the home page for the site. @param string/mixed $message The error message.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 2036
- Signature: static public function raiseError($message,$type,$redirect)
- Parameters:
- $message
- integer $type
The error type.- Default Value: E_USER_NOTICE
- string $redirect
The page to redirect to for critical errors. @global array- Default Value: ""
removeAttribute()
Removes an attribute
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1775
- Signature: public function removeAttribute($key)
- Parameters:
- string $key
- Returns: true
if the attribute was removed. false if the attribute did not exist
removeTranslation()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1236
- Signature: public function removeTranslation($locale)
- Parameters:
- $locale
rewind()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1631
- Signature: public function rewind()
save()
Call all the storage methods associated with this configuration.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1384
- Signature: protected function save($recurse)
- Parameters:
- boolean $recurse
Defaults to false. If true, and we were able to succesfully save this node, we recrusively save all the populated children of this node as well.- Default Value: false
- boolean $recurse
setAttribute()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1840
- Signature: public function setAttribute($key,$val)
- Parameters:
- $key
- $val
setIfIsSet()
If the data referenced by that path is set, we set the value of $data to that data
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1146
- Signature: public function setIfIsSet($data,$path,$as_array)
- Parameters:
- mixed &$data
where you wish to store the magic data if it is set - mixed $path
{@see traverse()}. Defaults to null which means we get at this node - boolean $as_array
defaults to false. If true, will set $data to be the result of calling getAsArray() on the magic data referenced by $path. If false then we only set $data if the magic data node refrenced by $path is a leaf node/value- Default Value: false
- mixed &$data
- Returns: boolean.
true if the value was set
setTranslatable()
Sets the translatable attribute for the referenced node @param boolean $transtable. Defaults to true
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 443
- Signature: public function setTranslatable($path,$translatable)
- Parameters:
- string $path
Defaults to null, meaning the current node- Default Value: null
- $translatable
- Default Value: true
- string $path
- Returns: true
on success, false on failure
setTranslation()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 469
- Signature: public function setTranslation($locale,$translation,$path)
- Parameters:
- $locale
- $translation
- $path
- Default Value: null
setType()
Set the type for this object. The nosave flag should be set to true if the calling function is going to save so that it doesn't get saved twice.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 693
- Signature: protected function setType($type)
- Parameters:
- integer $type
- Returns: boolean
true on success
setValue()
Set the scalar value for this object.
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 558
- Signature: public function setValue($value,$locale,$set_default_locale)
- Parameters:
- Returns: true
on sucess
set_parent()
Set the magic data node at the specified path to be a parent node if is indeterminate @param strign $key. A key or path in the magic data. If null (default) then we are checking on the node itself
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 773
- Signature: public function set_parent($path)
- Parameters:
- $path
- Default Value: null
- $path
- Returns: boolean.
True on success
set_scalar()
Set the magic data node at the specified path to be scalar if is indeterminate @param strign $key. A key or path in the magic data. If null (default) then we are checking on the node itself
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 745
- Signature: public function set_scalar($path)
- Parameters:
- $path
- Default Value: null
- $path
- Returns: boolean.
True on success
traverse()
Traverse magic data by a given path
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1010
- Signature: public function traverse($path,$create,$return_value)
- Parameters:
- array $path
A string which is a path e.g. '/some/magic/data/path' or an array of path components e.g. array('some','magic','data','path). There are three special path components, , '.' and '..' The first two mean don't go anywhere, while the third means go to the parent node. - boolean $create
Defaults to false. If true, it will create the magic data path as it goes. If false, it will return null if the path is not already set.- Default Value: false
- boolean $return_value
Defaults to true. If true returns the value of of a leaf node rather than the node itself- Default Value: true
- array $path
- Returns: mixed.
String, if the path is valid and refers to a leaf node. I2CE_MagicDataNode if the path is valid but not a leaf node, or null on ffailure (invalid path/path not set)
uksort()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1993
- Signature: public function uksort($cmp_function,$recurse)
- Parameters:
- $cmp_function
- $recurse
- Default Value: false
unpopulate()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 220
- Signature: public function unpopulate($deep)
- Parameters:
- $deep
- Default Value: true
- $deep
valid()
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1641
- Signature: public function valid()
volatile()
Check/set whether this magic data is volatile or not
- Defined in i2ce/lib/I2CE_MagicDataNode.php on line 105
- Signature: public function volatile($volatile)
- Parameters:
- boolean $volatile
If set, we set the volatility of this node (does not apply to subnodes). If not set we return the volatility state of this node. Defaults to not set (null). Recursively sets all sub-nodes to volatile.- Default Value: null
- boolean $volatile
- Returns: mixed