123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Ui\TemplateEngine\Xhtml\Compiler\Element;
- use Magento\Framework\DataObject;
- use Magento\Framework\View\Element\UiComponentInterface;
- use Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface;
- use Magento\Framework\View\TemplateEngine\Xhtml\CompilerInterface;
- use Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface;
- /**
- * Class Render
- */
- class Render implements ElementInterface
- {
- /**
- * 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);
- } elseif (!empty($result) && is_scalar($result)) {
- $newFragment = $node->ownerDocument->createDocumentFragment();
- $newFragment->appendXML($result);
- $node->parentNode->replaceChild($newFragment, $node);
- } else {
- $node->parentNode->removeChild($node);
- }
- }
- }
|