b374k
m1n1 1.01
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
Size3.29 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified15-Oct-2024 20:30
Last accessed22-Aug-2025 02:07
Actionsedit | rename | delete | download (gzip)
Viewtext | 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;
}
}