function iniDOMTree($filename, $siteAccess, &$blockArray, $remoteIDArray)
 {
     if (!$filename || !$siteAccess || !$blockArray) {
         return false;
     }
     $iniNode = eZDOMDocument::createElementNode('ini-addon', array('site-access' => $siteAccess, 'filename' => $filename));
     $blocksNode = eZDOMDocument::createElementNode('blocks');
     $iniNode->appendChild($blocksNode);
     foreach (array_keys($blockArray) as $blockName) {
         $block =& $blockArray[$blockName];
         unset($blockNode);
         $blockNode = eZDOMDocument::createElementNode('block', array('name' => $blockName));
         $blocksNode->appendChild($blockNode);
         foreach (array_keys($block) as $blockVariable) {
             $variableValue =& $block[$blockVariable];
             unset($variableNode);
             $variableNode = eZDomDocument::createElementNode('block-variable', array('name' => $blockVariable));
             $blockNode->appendChild($variableNode);
             if (is_array($variableValue)) {
                 foreach (array_keys($variableValue) as $valueName) {
                     $value = $variableValue[$valueName];
                     unset($valueNode);
                     $valueNode = eZDomDocument::createElementNode('value', array('name' => $valueName));
                     $variableNode->appendChild($valueNode);
                     $remoteID = false;
                     if (is_int($value)) {
                         if (strpos($valueName, 'class') !== false) {
                             $value = $remoteIDArray['class'][(string) $value];
                             $remoteID = 'class';
                         } else {
                             if (strpos($valueName, 'node') !== false) {
                                 $value = $remoteIDArray['node'][(string) $value];
                                 $remoteID = 'node';
                             } else {
                                 if (strpos($valueName, 'object') !== false) {
                                     $value = $remoteIDArray['class'][(string) $value];
                                     $remoteID = 'object';
                                 } else {
                                     eZDebug::writeNotice('Could not interpret ' . $valueName . ': ' . $value, __METHOD__);
                                 }
                             }
                         }
                     }
                     if ($remoteID) {
                         $valueNode->appendAttribute(eZDomDocument::createAttributeNode('remote-id', $remoteID));
                     }
                     $valueNode->appendChild(eZDomDocument::createTextNode($value));
                 }
             } else {
                 $remoteID = false;
                 if (is_int($variableValue)) {
                     if (strpos($blockVariable, 'class') !== false) {
                         $variableValue = $remoteIDArray['class'][(string) $value];
                         $remoteID = 'class';
                     } else {
                         if (strpos($blockVariable, 'node') !== false) {
                             $variableValue = $remoteIDArray['node'][(string) $value];
                             $remoteID = 'node';
                         } else {
                             if (strpos($blockVariable, 'object') !== false) {
                                 $variableValue = $remoteIDArray['class'][(string) $value];
                                 $remoteID = 'object';
                             } else {
                                 eZDebug::writeNotice('Could not interpret ' . $blockVariable . ': ' . $variableValue, __METHOD__);
                             }
                         }
                     }
                 }
                 unset($valueNode);
                 $valueNode = eZDomDocument::createElementNode('value');
                 $variableNode->appendChild($valueNode);
                 if ($remoteID) {
                     $valueNode->appendAttribute(eZDomDocument::createAttributeNode('remote-id', $remoteID));
                 }
                 $valueNode->appendChild(eZDomDocument::createTextNode($variableValue));
             }
         }
     }
     return $iniNode;
 }
Esempio n. 2
0
 function serializeContentClassAttribute(&$classAttribute, &$attributeNode, &$attributeParametersNode)
 {
     $defaultValue = $classAttribute->attribute(EZ_DATATYPESTRING_BIRTHDAY_DEFAULT);
     switch ($defaultValue) {
         case EZ_DATATYPESTRING_BIRTHDAY_DEFAULT_EMTPY:
             $attributeParametersNode->appendChild(eZDOMDocument::createElementNode('default-value', array('type' => 'empty')));
             break;
         case EZ_DATATYPESTRING_BIRTHDAY_DEFAULT_CURRENT_DATE:
             $attributeParametersNode->appendChild(eZDOMDocument::createElementNode('default-value', array('type' => 'current-date')));
             break;
     }
 }