|
7 | 7 |
|
8 | 8 | use Magento\Framework\View\Layout;
|
9 | 9 | use Magento\Framework\View\Page\Config as PageConfig;
|
| 10 | +use Magento\Framework\View\Page\Config\Structure; |
10 | 11 |
|
11 | 12 | /**
|
12 | 13 | * Head structure reader is intended for collecting assets, title and metadata
|
@@ -85,43 +86,55 @@ function (Layout\Element $current, Layout\Element $next) {
|
85 | 86 | );
|
86 | 87 |
|
87 | 88 | foreach ($nodes as $node) {
|
88 |
| - switch ($node->getName()) { |
89 |
| - case self::HEAD_CSS: |
90 |
| - case self::HEAD_SCRIPT: |
91 |
| - case self::HEAD_LINK: |
92 |
| - case self::HEAD_FONT: |
93 |
| - $this->addContentTypeByNodeName($node); |
94 |
| - $pageConfigStructure->addAssets($node->getAttribute('src'), $this->getAttributes($node)); |
95 |
| - break; |
96 |
| - |
97 |
| - case self::HEAD_REMOVE: |
98 |
| - $pageConfigStructure->removeAssets($node->getAttribute('src')); |
99 |
| - break; |
100 |
| - |
101 |
| - case self::HEAD_TITLE: |
102 |
| - $pageConfigStructure->setTitle(new \Magento\Framework\Phrase($node)); |
103 |
| - break; |
104 |
| - |
105 |
| - case self::HEAD_META: |
106 |
| - $this->setMetadata($pageConfigStructure, $node); |
107 |
| - break; |
108 |
| - |
109 |
| - case self::HEAD_ATTRIBUTE: |
110 |
| - $pageConfigStructure->setElementAttribute( |
111 |
| - PageConfig::ELEMENT_TYPE_HEAD, |
112 |
| - $node->getAttribute('name'), |
113 |
| - $node->getAttribute('value') |
114 |
| - ); |
115 |
| - break; |
116 |
| - |
117 |
| - default: |
118 |
| - break; |
119 |
| - } |
| 89 | + $this->processNode($node, $pageConfigStructure); |
120 | 90 | }
|
121 | 91 |
|
122 | 92 | return $this;
|
123 | 93 | }
|
124 | 94 |
|
| 95 | + /** |
| 96 | + * Process given node based on it's name. |
| 97 | + * |
| 98 | + * @param Layout\Element $node |
| 99 | + * @param Structure $pageConfigStructure |
| 100 | + * @return void |
| 101 | + */ |
| 102 | + private function processNode(Layout\Element $node, Structure $pageConfigStructure) |
| 103 | + { |
| 104 | + switch ($node->getName()) { |
| 105 | + case self::HEAD_CSS: |
| 106 | + case self::HEAD_SCRIPT: |
| 107 | + case self::HEAD_LINK: |
| 108 | + case self::HEAD_FONT: |
| 109 | + $this->addContentTypeByNodeName($node); |
| 110 | + $pageConfigStructure->addAssets($node->getAttribute('src'), $this->getAttributes($node)); |
| 111 | + break; |
| 112 | + |
| 113 | + case self::HEAD_REMOVE: |
| 114 | + $pageConfigStructure->removeAssets($node->getAttribute('src')); |
| 115 | + break; |
| 116 | + |
| 117 | + case self::HEAD_TITLE: |
| 118 | + $pageConfigStructure->setTitle(new \Magento\Framework\Phrase($node)); |
| 119 | + break; |
| 120 | + |
| 121 | + case self::HEAD_META: |
| 122 | + $this->setMetadata($pageConfigStructure, $node); |
| 123 | + break; |
| 124 | + |
| 125 | + case self::HEAD_ATTRIBUTE: |
| 126 | + $pageConfigStructure->setElementAttribute( |
| 127 | + PageConfig::ELEMENT_TYPE_HEAD, |
| 128 | + $node->getAttribute('name'), |
| 129 | + $node->getAttribute('value') |
| 130 | + ); |
| 131 | + break; |
| 132 | + |
| 133 | + default: |
| 134 | + break; |
| 135 | + } |
| 136 | + } |
| 137 | + |
125 | 138 | /**
|
126 | 139 | * Get all attributes for current dom element
|
127 | 140 | *
|
|
0 commit comments