|
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 / Amasty / OrderExport / Model / OptionSource / |
Filename | /home/dev2.destoffenstraat.com/app/code/Amasty/OrderExport/Model/OptionSource/ParentEntity.php |
Size | 2.03 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 14-Jun-2025 23:40 |
Last accessed | 22-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
declare(strict_types=1);
/**
* @author Amasty Team
* @copyright Copyright (c) Amasty (https://www.amasty.com)
* @package Export Orders for Magento 2
*/
namespace Amasty\OrderExport\Model\OptionSource;
use Amasty\ExportCore\Api\Config\EntityConfigInterface;
use Amasty\ExportCore\Export\Config\RelationConfigProvider;
use Magento\Framework\Data\OptionSourceInterface;
use Amasty\ExportCore\Export\Config\EntityConfigProvider;
class ParentEntity implements OptionSourceInterface
{
/**
* @var EntityConfigProvider
*/
private $entityConfigProvider;
/**
* @var RelationConfigProvider
*/
private $relationConfigProvider;
public function __construct(
EntityConfigProvider $entityConfigProvider,
RelationConfigProvider $relationConfigProvider
) {
$this->entityConfigProvider = $entityConfigProvider;
$this->relationConfigProvider = $relationConfigProvider;
}
public function toOptionArray()
{
$salesOrderConfig = $this->entityConfigProvider->get('sales_order');
$options = [
['value' => '', 'label' => __('-- Please Select --')],
['value' => $salesOrderConfig->getEntityCode(), 'label' => __($salesOrderConfig->getName())]
];
return array_merge(
$options,
$this->getNestedOptions($this->relationConfigProvider->get($salesOrderConfig->getEntityCode()))
);
}
public function getNestedOptions(?array $relationsConfig)
{
$result = [];
if (!empty($relationsConfig)) {
foreach ($relationsConfig as $relation) {
$childEntity = $this->entityConfigProvider->get($relation->getChildEntityCode());
$result[][] = ['value' => $childEntity->getEntityCode(), 'label' => __($childEntity->getName())];
if ($relation->getRelations()) {
$result[] = $this->getNestedOptions($relation->getRelations());
}
}
}
return array_merge([], ...$result);
}
}
declare(strict_types=1);
/**
* @author Amasty Team
* @copyright Copyright (c) Amasty (https://www.amasty.com)
* @package Export Orders for Magento 2
*/
namespace Amasty\OrderExport\Model\OptionSource;
use Amasty\ExportCore\Api\Config\EntityConfigInterface;
use Amasty\ExportCore\Export\Config\RelationConfigProvider;
use Magento\Framework\Data\OptionSourceInterface;
use Amasty\ExportCore\Export\Config\EntityConfigProvider;
class ParentEntity implements OptionSourceInterface
{
/**
* @var EntityConfigProvider
*/
private $entityConfigProvider;
/**
* @var RelationConfigProvider
*/
private $relationConfigProvider;
public function __construct(
EntityConfigProvider $entityConfigProvider,
RelationConfigProvider $relationConfigProvider
) {
$this->entityConfigProvider = $entityConfigProvider;
$this->relationConfigProvider = $relationConfigProvider;
}
public function toOptionArray()
{
$salesOrderConfig = $this->entityConfigProvider->get('sales_order');
$options = [
['value' => '', 'label' => __('-- Please Select --')],
['value' => $salesOrderConfig->getEntityCode(), 'label' => __($salesOrderConfig->getName())]
];
return array_merge(
$options,
$this->getNestedOptions($this->relationConfigProvider->get($salesOrderConfig->getEntityCode()))
);
}
public function getNestedOptions(?array $relationsConfig)
{
$result = [];
if (!empty($relationsConfig)) {
foreach ($relationsConfig as $relation) {
$childEntity = $this->entityConfigProvider->get($relation->getChildEntityCode());
$result[][] = ['value' => $childEntity->getEntityCode(), 'label' => __($childEntity->getName())];
if ($relation->getRelations()) {
$result[] = $this->getNestedOptions($relation->getRelations());
}
}
}
return array_merge([], ...$result);
}
}