| Current Path : /home/rtorresani/www/vendor/magento/module-customer/Ui/Component/ |
| Current File : //home/rtorresani/www/vendor/magento/module-customer/Ui/Component/DataProvider.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Customer\Ui\Component;
use Magento\Customer\Api\Data\AttributeMetadataInterface;
use Magento\Customer\Ui\Component\Listing\AttributeRepository;
use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\Api\Search\SearchCriteriaBuilder;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\View\Element\UiComponent\DataProvider\Reporting;
class DataProvider extends \Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider
{
/**
* @var AttributeRepository
*/
private $attributeRepository;
/**
* @param string $name
* @param string $primaryFieldName
* @param string $requestFieldName
* @param Reporting $reporting
* @param SearchCriteriaBuilder $searchCriteriaBuilder
* @param RequestInterface $request
* @param FilterBuilder $filterBuilder
* @param AttributeRepository $attributeRepository
* @param array $meta
* @param array $data
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
Reporting $reporting,
SearchCriteriaBuilder $searchCriteriaBuilder,
RequestInterface $request,
FilterBuilder $filterBuilder,
AttributeRepository $attributeRepository,
array $meta = [],
array $data = []
) {
$this->attributeRepository = $attributeRepository;
parent::__construct(
$name,
$primaryFieldName,
$requestFieldName,
$reporting,
$searchCriteriaBuilder,
$request,
$filterBuilder,
$meta,
$data
);
}
/**
* {@inheritdoc}
*/
public function getData()
{
$data = parent::getData();
foreach ($this->attributeRepository->getList() as $attributeCode => $attributeData) {
foreach ($data['items'] as &$item) {
if (isset($item[$attributeCode]) && !empty($attributeData[AttributeMetadataInterface::OPTIONS])) {
$item[$attributeCode] = explode(',', $item[$attributeCode]);
}
}
}
return $data;
}
}