Example #1
0
 /**
  * Compiles the Element node
  *
  * @param CompilerInterface $compiler
  * @param \DOMElement $node
  * @param DataObject $processedObject
  * @param DataObject $context
  * @return void
  */
 public function compile(CompilerInterface $compiler, \DOMElement $node, DataObject $processedObject, DataObject $context)
 {
     $name = $node->getAttribute('name');
     /** @var UiComponentInterface $processedObject */
     $content = (string) $processedObject->renderChildComponent($name);
     $name .= '_' . sprintf('%x', crc32(spl_object_hash($context)));
     if (!empty($content)) {
         $compiler->setPostprocessingData($name, $content);
         $newNode = $node->ownerDocument->createTextNode(CompilerInterface::PATTERN_TAG . $name . CompilerInterface::PATTERN_TAG);
         $node->parentNode->replaceChild($newNode, $node);
     } else {
         $node->parentNode->removeChild($node);
     }
 }
Example #2
0
 /**
  * Compiles the Element node
  *
  * @param CompilerInterface $compiler
  * @param \DOMElement $node
  * @param DataObject $processedObject
  * @param DataObject $context
  * @return void
  *
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function compile(CompilerInterface $compiler, \DOMElement $node, DataObject $processedObject, DataObject $context)
 {
     /** @var UiComponentInterface $processedObject */
     $result = $processedObject->renderChildComponent($node->getAttribute('name'));
     if ($result instanceof ResultInterface) {
         $node->parentNode->replaceChild($result->getDocumentElement(), $node);
     } else {
         if (!empty($result) && is_scalar($result)) {
             $newFragment = $node->ownerDocument->createDocumentFragment();
             $newFragment->appendXML($result);
             $node->parentNode->replaceChild($newFragment, $node);
         } else {
             $node->parentNode->removeChild($node);
         }
     }
 }