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; }
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; } }