/** * Schedule attributes to the page config structure * * @param Layout\Reader\Context $readerContext * @param Layout\Element $element * @return $this */ protected function setBodyAttributeToStructure(Layout\Reader\Context $readerContext, Layout\Element $element) { if ($element->getAttribute('name') == PageConfig::BODY_ATTRIBUTE_CLASS) { $readerContext->getPageConfigStructure()->setBodyClass($element->getAttribute('value')); } else { $readerContext->getPageConfigStructure()->setElementAttribute(PageConfig::ELEMENT_TYPE_BODY, $element->getAttribute('name'), $element->getAttribute('value')); } return $this; }
/** * {@inheritdoc} * * @param Layout\Reader\Context $readerContext * @param Layout\Element $headElement * @return $this */ public function interpret(Layout\Reader\Context $readerContext, Layout\Element $headElement) { $pageConfigStructure = $readerContext->getPageConfigStructure(); /** @var \Magento\Framework\View\Layout\Element $node */ foreach ($headElement as $node) { switch ($node->getName()) { case self::HEAD_CSS: case self::HEAD_SCRIPT: case self::HEAD_LINK: $this->addContentTypeByNodeName($node); $pageConfigStructure->addAssets($node->getAttribute('src'), $this->getAttributes($node)); break; case self::HEAD_REMOVE: $pageConfigStructure->removeAssets($node->getAttribute('src')); break; case self::HEAD_TITLE: $pageConfigStructure->setTitle($node); break; case self::HEAD_META: $this->setMetadata($pageConfigStructure, $node); break; case self::HEAD_ATTRIBUTE: $pageConfigStructure->setElementAttribute(PageConfig::ELEMENT_TYPE_HEAD, $node->getAttribute('name'), $node->getAttribute('value')); break; default: break; } } return $this; }
/** * {@inheritdoc} * * @param Layout\Reader\Context $readerContext * @param Layout\Element $htmlElement * @return $this */ public function interpret(Layout\Reader\Context $readerContext, Layout\Element $htmlElement) { /** @var \Magento\Framework\View\Layout\Element $element */ foreach ($htmlElement as $element) { if ($element->getName() === self::HTML_ATTRIBUTE) { $readerContext->getPageConfigStructure()->setElementAttribute(PageConfig::ELEMENT_TYPE_HTML, $element->getAttribute('name'), $element->getAttribute('value')); } } return $this; }
/** * {@inheritdoc} * * @param Layout\Reader\Context $readerContext * @param Layout\Generator\Context $generatorContext * @return $this */ public function process(Layout\Reader\Context $readerContext, Layout\Generator\Context $generatorContext) { $structure = $readerContext->getPageConfigStructure(); $structure->processRemoveAssets(); $structure->processRemoveElementAttributes(); $this->processAssets($structure); $this->processTitle($structure); $this->processMetadata($structure); $this->processElementAttributes($structure); return $this; }
/** * {@inheritdoc} * * @param Layout\Reader\Context $readerContext * @param Layout\Generator\Context $generatorContext * @return $this */ public function process(Layout\Reader\Context $readerContext, Layout\Generator\Context $generatorContext) { $structure = $readerContext->getPageConfigStructure(); $this->processBodyClasses($structure); return $this; }