|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / Mirasvit / ReportApi / Config / Loader / |
Filename | /home/dev2.destoffenstraat.com/app/code/Mirasvit/ReportApi/Config/Loader/Reader.php |
Size | 3.29 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 15-Oct-2024 20:30 |
Last accessed | 22-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Mirasvit
*
* This source file is subject to the Mirasvit Software License, which is available at https://mirasvit.com/license/.
* Do not edit or add to this file if you wish to upgrade the to newer versions in the future.
* If you wish to customize this module for your needs.
* Please refer to http://www.magentocommerce.com for more information.
*
* @category Mirasvit
* @package mirasvit/module-report-api
* @version 1.0.71
* @copyright Copyright (C) 2024 Mirasvit (https://mirasvit.com/)
*/
namespace Mirasvit\ReportApi\Config\Loader;
use Magento\Framework\Config\FileResolverInterface;
use Magento\Framework\Config\Reader\Filesystem;
use Magento\Framework\Config\ValidationStateInterface;
/**
* Loads reports configuration from XML file by merging them together
*/
class Reader extends Filesystem
{
/**
* Mapping XML name nodes
* @var array
*/
protected $_idAttributes
= [
'/config/(table|eavTable|relation)' => 'name',
'/config/(table|eavTable)/column' => 'name',
];
/**
* Reader constructor.
* @param FileResolverInterface $fileResolver
* @param Converter $converter
* @param SchemaLocator $schemaLocator
* @param ValidationStateInterface $validationState
* @param string $fileName
* @param array $idAttributes
* @param string $domDocumentClass
* @param string $defaultScope
*/
public function __construct(
FileResolverInterface $fileResolver,
Converter $converter,
SchemaLocator $schemaLocator,
ValidationStateInterface $validationState,
$fileName = 'mst_report.xml',
$idAttributes = [],
$domDocumentClass = 'Magento\Framework\Config\Dom',
$defaultScope = 'global'
) {
parent::__construct(
$fileResolver,
$converter,
$schemaLocator,
$validationState,
$fileName,
$idAttributes,
$domDocumentClass,
$defaultScope
);
}
/**
* Load configuration scope
* @param string|null $scope
* @return array
*/
public function read($scope = null)
{
$scope = $scope ? : $this->_defaultScope;
$fileList = $this->getFiles($scope);
if (!count($fileList)) {
return [];
}
$output = $this->_readFiles($fileList);
return $output;
}
/**
* @param string|null $scope
* @return string[]
*/
public function getFiles($scope)
{
$result = $this->_fileResolver->get($this->_fileName, $scope);
if (!is_array($result) && is_object($result)) {
$result = method_exists($result, 'toArray') ? $result->toArray() : [];
}
$primary = [];
foreach ($result as $key => $value) {
if (strpos($key, '/Report/') !== false) {
$primary[$key] = $value;
unset($result[$key]);
break;
}
}
foreach ($result as $key => $value) {
if (strpos($key, '/Reports/') !== false) {
$primary[$key] = $value;
unset($result[$key]);
break;
}
}
$result = array_merge($primary, $result);
return $result;
}
}
/**
* Mirasvit
*
* This source file is subject to the Mirasvit Software License, which is available at https://mirasvit.com/license/.
* Do not edit or add to this file if you wish to upgrade the to newer versions in the future.
* If you wish to customize this module for your needs.
* Please refer to http://www.magentocommerce.com for more information.
*
* @category Mirasvit
* @package mirasvit/module-report-api
* @version 1.0.71
* @copyright Copyright (C) 2024 Mirasvit (https://mirasvit.com/)
*/
namespace Mirasvit\ReportApi\Config\Loader;
use Magento\Framework\Config\FileResolverInterface;
use Magento\Framework\Config\Reader\Filesystem;
use Magento\Framework\Config\ValidationStateInterface;
/**
* Loads reports configuration from XML file by merging them together
*/
class Reader extends Filesystem
{
/**
* Mapping XML name nodes
* @var array
*/
protected $_idAttributes
= [
'/config/(table|eavTable|relation)' => 'name',
'/config/(table|eavTable)/column' => 'name',
];
/**
* Reader constructor.
* @param FileResolverInterface $fileResolver
* @param Converter $converter
* @param SchemaLocator $schemaLocator
* @param ValidationStateInterface $validationState
* @param string $fileName
* @param array $idAttributes
* @param string $domDocumentClass
* @param string $defaultScope
*/
public function __construct(
FileResolverInterface $fileResolver,
Converter $converter,
SchemaLocator $schemaLocator,
ValidationStateInterface $validationState,
$fileName = 'mst_report.xml',
$idAttributes = [],
$domDocumentClass = 'Magento\Framework\Config\Dom',
$defaultScope = 'global'
) {
parent::__construct(
$fileResolver,
$converter,
$schemaLocator,
$validationState,
$fileName,
$idAttributes,
$domDocumentClass,
$defaultScope
);
}
/**
* Load configuration scope
* @param string|null $scope
* @return array
*/
public function read($scope = null)
{
$scope = $scope ? : $this->_defaultScope;
$fileList = $this->getFiles($scope);
if (!count($fileList)) {
return [];
}
$output = $this->_readFiles($fileList);
return $output;
}
/**
* @param string|null $scope
* @return string[]
*/
public function getFiles($scope)
{
$result = $this->_fileResolver->get($this->_fileName, $scope);
if (!is_array($result) && is_object($result)) {
$result = method_exists($result, 'toArray') ? $result->toArray() : [];
}
$primary = [];
foreach ($result as $key => $value) {
if (strpos($key, '/Report/') !== false) {
$primary[$key] = $value;
unset($result[$key]);
break;
}
}
foreach ($result as $key => $value) {
if (strpos($key, '/Reports/') !== false) {
$primary[$key] = $value;
unset($result[$key]);
break;
}
}
$result = array_merge($primary, $result);
return $result;
}
}