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
11 
13 {
22  public function convert($source)
23  {
24  $output = [];
25  if (!$source instanceof \DOMDocument) {
26  return $output;
27  }
28 
30  $sections = $source->getElementsByTagName('section');
31 
33  foreach ($sections as $section) {
34  $sectionArray = [];
35  $sectionName = $section->getAttribute('name');
36 
37  if (!$sectionName) {
38  throw new \InvalidArgumentException('Attribute "name" of "section" does not exist');
39  }
40 
42  $groups = $section->getElementsByTagName('group');
45  foreach ($groups as $group) {
46  $groupArray = [];
47  $groupName = $group->getAttribute('name');
48  if (!$groupName) {
49  throw new \InvalidArgumentException('Attribute "name" of "group" does not exist');
50  }
51 
53  $items = $group->getElementsByTagName('item');
56  foreach ($items as $item) {
57  $rendererArray = [];
58  $itemName = $item->getAttribute('name');
59  if (!$itemName) {
60  throw new \InvalidArgumentException('Attribute "name" of "item" does not exist');
61  }
62 
64  $renderers = $item->getElementsByTagName('renderer');
66  foreach ($renderers as $renderer) {
67  $rendererName = $renderer->getAttribute('name');
68  if (!$rendererName) {
69  throw new \InvalidArgumentException('Attribute "name" of "renderer" does not exist');
70  }
71  $rendererArray[$rendererName] = $renderer->getAttribute('instance');
72  }
73 
74  $itemArray = [
75  'instance' => $item->getAttribute('instance'),
76  'sort_order' => $item->getAttribute('sort_order'),
77  'renderers' => $rendererArray,
78  ];
79  $groupArray[$itemName] = $itemArray;
80  }
81  $sectionArray[$groupName] = $groupArray;
82  }
83  $output[$sectionName] = $sectionArray;
84  }
85 
86  $order = $source->getElementsByTagName('order')->item(0);
87  $availableProductTypes = [];
89  if ($order) {
91  $types = $order->getElementsByTagName('available_product_type');
92 
94  foreach ($types as $type) {
95  $availableProductTypes[] = $type->getAttribute('name');
96  }
97  $output['order']['available_product_types'] = $availableProductTypes;
98  }
99 
100  return $output;
101  }
102 }
$source
Definition: source.php:23
$order
Definition: order.php:55
$group
Definition: sections.phtml:16
$type
Definition: item.phtml:13
$items