Class: I2CE MagicDataNode (4.0.19)

From IHRIS Wiki


This article describes the class I2CE_MagicDataNode .

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.

$name

The name of this configuration setting.

$value

The value of this configuration setting. This is only valid when type = 1.

$children

All children configuration objects for this configuration group. This is only valid when type = 0

$parent

The parent of this configuration.

$parentPath

$parentPathTop

$top

The top level of this configuration.

$volatile

. True if the data is volatile. Defaults to false

$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

__get()

Get the value for a child configuration option.

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1023
  • 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 1123
  • 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)

__set()

Set the value for a child configuration option.

__toString()

__unset()

Unset a given key in the children array.

_getAsArray()

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1406
  • 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

_getAttribute()

_getAttributes()

_hasAttribute()

_removeAttribute()

_setAttribute()

checkKey()

Check to make sure a given key is valid. It can be any combination of _-+.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

count()

current()

erase()

Erases the current node and all of its subnodes from the storage mechanism.

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1308
  • 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
  • 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 1236
  • 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
  • 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 1386
  • Signature: public function getAsArray($path,$locale)
  • Parameters:
    • mixed $path
      {@see traverse()}. Defaults to null which means we get at this node
      • Default Value: null
    • string $locale
      The locale we wish to get the values for. Defaults to null meaning we are not getting tranlsated values.
      • Default Value: null
  • Returns: array

getAttribute()

Gets an attribute

getAttributes()

Get the attributes

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1859
  • 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
  • Returns: array

getChildren()

getKeys()

Return an array of all child keys for this object.

getName()

Return the name of this configuration setting.

getParent()

Get the parent magic data node

getPath()

Return the full path to this configuration setting.

getSaveValue()

Return the direct scalar value for this node.

getTranslation()

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 530
  • 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 421
  • 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
  • Returns: array

getType()

Return the type of this node.

getValue()

Return the value of this configuration object if the type == 1 and the current object if type is anything else.

hasAttribute()

Checks to see if an attribute is present

hasChildren()

whether the current key has children or not. this is _not_ whether this has a children or not

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 876
  • Signature: public function is_indeterminate($path)
  • Parameters:
    • $path
      • Default Value: null
  • 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 901
  • Signature: public function is_parent($path)
  • Parameters:
    • $path
      • Default Value: null
  • 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 831
  • Signature: protected function is_populated($path)
  • Parameters:
    • $path
      • Default Value: null
  • Returns: boolean.
    True if it is a scalar value

is_root()

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 750
  • Signature: public function is_scalar($path)
  • Parameters:
    • $path
      • Default Value: null
  • 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 388
  • Signature: public function is_translatable($path)
  • Parameters:
    • string $path
      Defaults to null, meaning the current node.
      • Default Value: null
  • 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 441
  • Signature: public function is_translated($locale,$path)
  • Parameters:
    • string $locale
    • string $path
      Defaults to null, meaning the current node.
      • Default Value: null
  • Returns: boolean.

key()

krsort()

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 2020
  • Signature: public function krsort($sort_flags,$recurse)
  • Parameters:
    • $sort_flags
      • Default Value: SORT_REGULAR
    • $recurse
      • Default Value: false

ksort()

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1990
  • Signature: public function ksort($sort_flags,$recurse)
  • Parameters:
    • $sort_flags
      • Default Value: SORT_REGULAR
    • $recurse
      • Default Value: false

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 1958
  • 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
  • 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 946
  • 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
  • Returns: I2CE_MagicDataNode
    The child that was created or null on failure

next()

offsetExists()

offsetGet()

offsetSet()

offsetUnset()

pathDivider()

Return the path divider for this MagicDataNode object

pathExists()

Check to see if a given key key or path exists

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1149
  • 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)

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.

populate()

Populate any stored data based on the storage objects set in the top node.

push()

Push a value onto the end of a parent/indeterminate node.

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 2093
  • 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 1832
  • Signature: public function removeAttribute($key)
  • Parameters:
  • Returns: true
    if the attribute was removed. false if the attribute did not exist

removeTranslation()

renameChild()

Renames a child node

rewind()

save()

Call all the storage methods associated with this configuration.

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1441
  • 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

setAttribute()

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 1177
  • 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
  • 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 472
  • Signature: public function setTranslatable($path,$translatable)
  • Parameters:
    • string $path
      Defaults to null, meaning the current node
      • Default Value: null
    • $translatable
      • Default Value: true
  • Returns: true
    on success, false on failure

setTranslation()

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 498
  • 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.

setValue()

Set the scalar value for this object.

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 587
  • Signature: public function setValue($value,$locale,$set_default_locale)
  • Parameters:
    • mixed $value
    • string $locale
      The locale we wish to set the value for. Defaults to null meaning we are not setting tranlsated values.
      • Default Value: null
    • boolean $set_default_locale
      Defautls to true. When setting values, make sure the default locale is set.
      • Default Value: false
  • 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 804
  • Signature: public function set_parent($path,$create)
  • Parameters:
    • $path
      • Default Value: null
    • boolean $create
      Create the path if it does not exist. Defaults to false
      • Default Value: false
  • 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 775
  • Signature: public function set_scalar($path,$create)
  • Parameters:
    • $path
      • Default Value: null
    • boolean $create
      Create the path if it does not exist. Defaults to false
      • Default Value: false
  • Returns: boolean.
    True on success

traverse()

Traverse magic data by a given path

  • Defined in i2ce/lib/I2CE_MagicDataNode.php on line 1041
  • 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
  • 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 2050
  • 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,$cleanup)
  • Parameters:
    • $deep
      • Default Value: true
    • $cleanup
      • Default Value: false

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
  • Returns: mixed