/** * structHandlerParagraph (Structure handler, pass 2 after childre tags) * Structure handler for paragraph tag. * * @param DOMElement $element * @param DOMElement $newParent node that are going to become new parent. * @return array changes structure if it contains 'result' key */ function structHandlerParagraph($element, $newParent) { $ret = array(); if ($element->getAttribute('ezparser-new-element') === 'true' && !$element->hasChildren()) { $element = $element->parentNode->removeChild($element); return $ret; } // Removes single line tag $line = $element->lastChild; if ($element->childNodes->length == 1 && $line->nodeName === 'line') { $lineChildren = array(); $lineChildNodes = $line->childNodes; foreach ($lineChildNodes as $lineChildNode) { $lineChildren[] = $lineChildNode; } $line = $element->removeChild($line); foreach ($lineChildren as $lineChild) { $element->appendChild($lineChild); } } return $ret; }