static function handleNode($node, $generator, $level = 0) { switch ($node->localName) { case "section": foreach ($node->childNodes as $childNode) { self::handleNode($childNode, $generator, $level + 1); } break; case "header": if ($level == 0) { $level = 1; } $paragraphParameters = array(); $prevLineBreak = false; foreach ($node->childNodes as $childNode) { $return = eZOOConverter::handleInlineNode($childNode, $generator, $prevLineBreak); $paragraphParameters = array_merge($paragraphParameters, $return['paragraph_parameters']); $prevLineBreak = $childNode->nodeType === XML_ELEMENT_NODE && $childNode->localName === 'line'; } $generator->addHeader(trim($node->nodeValue), $level, $paragraphParameters); break; case "ul": case "ol": self::handleInlineNode($node, $generator, $level); break; case "paragraph": $paragraphParameters = array(); $imageArray = array(); $prevLineBreak = false; foreach ($node->childNodes as $child) { $return = self::handleInlineNode($child, $generator, $prevLineBreak); $paragraphParameters = array_merge($paragraphParameters, $return['paragraph_parameters']); $imageArray = array_merge($imageArray, $return['image_array']); $prevLineBreak = $child->nodeType === XML_ELEMENT_NODE && $child->localName === 'line'; } foreach ($imageArray as $image) { $generator->addImage($image); } if (!empty($paragraphParameters) && isset($GLOBALS['CustomTagStyle']) and $GLOBALS['CustomTagStyle'] != false) { array_unshift($paragraphParameters, $GLOBALS['CustomTagStyle']); } call_user_func_array(array($generator, "addParagraph"), $paragraphParameters); break; default: eZDebug::writeError("Unsupported node for document conversion: " . $node->localName); } }