Converter.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Model\Menu\Config;
  7. /**
  8. * Class Converter converts xml to appropriate array
  9. * @api
  10. * @since 100.0.2
  11. */
  12. class Converter implements \Magento\Framework\Config\ConverterInterface
  13. {
  14. /**
  15. * Converts xml to appropriate array
  16. *
  17. * @param mixed $dom
  18. * @return array
  19. */
  20. public function convert($dom)
  21. {
  22. $extractedData = [];
  23. $attributeNamesList = [
  24. 'id',
  25. 'title',
  26. 'toolTip',
  27. 'module',
  28. 'sortOrder',
  29. 'action',
  30. 'parent',
  31. 'resource',
  32. 'dependsOnModule',
  33. 'dependsOnConfig',
  34. 'target'
  35. ];
  36. $xpath = new \DOMXPath($dom);
  37. $nodeList = $xpath->query('/config/menu/*');
  38. for ($i = 0; $i < $nodeList->length; $i++) {
  39. $item = [];
  40. $node = $nodeList->item($i);
  41. $item['type'] = $node->nodeName;
  42. foreach ($attributeNamesList as $name) {
  43. if ($node->hasAttribute($name)) {
  44. $item[$name] = $node->getAttribute($name);
  45. }
  46. }
  47. $extractedData[] = $item;
  48. }
  49. return $extractedData;
  50. }
  51. }