Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * {@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;
 }
Example #3
0
 /**
  * {@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;
 }
Example #4
0
 /**
  * {@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;
 }
Example #5
0
 /**
  * {@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;
 }