Copyright 2011-2016 Horde LLC (http://www.horde.org/) See the enclosed file COPYING for license information (LGPL). If you did not receive this file, see http://www.horde.org/licenses/lgpl21.
Author: Gunnar Wrobel (wrobel@pardus.de)
Inheritance: extends Horde_Kolab_Format_Xml_Type_Base
Example #1
0
 public function save($name, $attributes, $parent_node, Horde_Kolab_Format_Xml_Helper $helper, $params = array())
 {
     if (isset($params['array'])) {
         $this->elements = $params['array'];
         unset($params['array']);
     }
     if (isset($params['value'])) {
         $this->value = $params['value'];
         unset($params['value']);
     }
     if (isset($params['default'])) {
         $this->default = $params['default'];
         unset($params['default']);
     }
     return parent::save($name, $attributes, $parent_node, $helper, $params);
 }
Example #2
0
 /**
  * Update the specified attribute.
  *
  * @param string                        $name        The name of the the
  *                                                   attribute to be updated.
  * @param array                         $attributes  The data array that holds
  *                                                   all attribute values.
  * @param DOMNode                       $parent_node The parent node of the
  *                                                   node that should be
  *                                                   updated.
  * @param Horde_Kolab_Format_Xml_Helper $helper      A XML helper instance.
  * @param array                         $params      Additional parameters
  *                                                   for this write operation.
  *
  * @return DOMNode|boolean The new/updated child node or false if this
  *                         failed.
  *
  * @throws Horde_Kolab_Format_Exception If converting the data to XML failed.
  */
 public function save($name, $attributes, $parent_node, Horde_Kolab_Format_Xml_Helper $helper, $params = array())
 {
     if (!($root = $helper->findNode('/' . $name, $parent_node))) {
         $root = $helper->createNewNode($parent_node, $name);
         $root->setAttribute('version', $params['expected-version']);
     } else {
         if (!$this->isRelaxed($params)) {
             if (version_compare($params['expected-version'], $root->getAttribute('version')) < 0) {
                 throw new Horde_Kolab_Format_Exception_InvalidRoot(sprintf('Not attempting to overwrite higher root version of %s with our version %s!', $root->getAttribute('version'), $params['expected-version']));
             }
         }
         if ($params['expected-version'] != $root->getAttribute('version')) {
             $root->setAttribute('version', $params['expected-version']);
         }
     }
     $this->_prepareCompositeParameters($params, $params['expected-version']);
     parent::save($name, $attributes, $parent_node, $helper, $params);
     return $root;
 }
Example #3
0
 /**
  * Update the specified attribute.
  *
  * @param string                        $name        The name of the attribute
  *                                                   to be updated.
  * @param mixed                         $value       The value to store.
  * @param DOMNode                       $parent_node The parent node of the
  *                                                   node that should be
  *                                                   updated.
  * @param Horde_Kolab_Format_Xml_Helper $helper      A XML helper instance.
  * @param array                         $params      The parameters for this
  *                                                   write operation.
  * @param DOMNode|NULL                  $old_node    The previous value (or
  *                                                   null if there is none).
  *
  * @return DOMNode|boolean The new/updated child node or false if this
  *                         failed.
  *
  * @throws Horde_Kolab_Format_Exception If converting the data to XML failed.
  */
 public function saveNodeValue($name, $value, $parent_node, Horde_Kolab_Format_Xml_Helper $helper, $params = array(), $old_node = false)
 {
     $node = parent::saveNodeValue($name, $value, $parent_node, $helper, $params, $old_node);
     // Add attributes
     $node->setAttribute('cycle', $value['cycle']);
     if (isset($value['type'])) {
         $node->setAttribute('type', $value['type']);
     }
     return $node;
 }