Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Converter.php
Go to the documentation of this file.
1 <?php
9 
11 {
18  public function convert($source)
19  {
20  $output = [];
21 
23  $routers = $source->getElementsByTagName('router');
24 
26  foreach ($routers as $router) {
27  $routerConfig = [];
28  foreach ($router->attributes as $attribute) {
29  $routerConfig[$attribute->nodeName] = $attribute->nodeValue;
30  }
31 
33  foreach ($router->getElementsByTagName('route') as $routeData) {
34  $routeConfig = [];
35  foreach ($routeData->attributes as $routeAttribute) {
36  $routeConfig[$routeAttribute->nodeName] = $routeAttribute->nodeValue;
37  }
38 
40  foreach ($routeData->getElementsByTagName('module') as $moduleData) {
41  $moduleConfig = [];
42  foreach ($moduleData->attributes as $moduleAttribute) {
43  $moduleConfig[$moduleAttribute->nodeName] = $moduleAttribute->nodeValue;
44  }
45  $routeConfig['modules'][] = $moduleConfig;
46  }
47  $routeConfig['modules'] = $this->_sortModulesList($routeConfig['modules']);
48  $routerConfig['routes'][$routeData->attributes->getNamedItem('id')->nodeValue] = $routeConfig;
49  }
50 
51  $output[$router->attributes->getNamedItem('id')->nodeValue] = $routerConfig;
52  }
53 
54  return $output;
55  }
56 
63  protected function _sortModulesList($modulesList)
64  {
65  $sortedModulesList = [];
66 
67  foreach ($modulesList as $moduleData) {
68  if (isset($moduleData['before'])) {
69  $position = array_search($moduleData['before'], $sortedModulesList);
70  if ($position === false) {
71  $position = 0;
72  }
73  array_splice($sortedModulesList, $position, 0, $moduleData['name']);
74  } elseif (isset($moduleData['after'])) {
75  $position = array_search($moduleData['after'], $sortedModulesList);
76  if ($position === false) {
77  $position = count($modulesList);
78  }
79  array_splice($sortedModulesList, $position + 1, 0, $moduleData['name']);
80  } else {
81  $sortedModulesList[] = $moduleData['name'];
82  }
83  }
84 
85  return $sortedModulesList;
86  }
87 }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$source
Definition: source.php:23