![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-catalog/Ui/Component/Listing/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Ui\Component\Listing; /** * Column IU component * * @api * @since 100.0.2 */ class Columns extends \Magento\Ui\Component\Listing\Columns { /** * Default columns max order value */ const DEFAULT_COLUMNS_MAX_ORDER = 100; /** * @var \Magento\Catalog\Ui\Component\Listing\Attribute\RepositoryInterface */ protected $attributeRepository; /** * @var \Magento\Catalog\Ui\Component\ColumnFactory */ private $columnFactory; /** * @var array */ protected $filterMap = [ 'default' => 'text', 'select' => 'select', 'boolean' => 'select', 'multiselect' => 'select', 'date' => 'dateRange', 'datetime' => 'datetimeRange', ]; /** * @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context * @param \Magento\Catalog\Ui\Component\ColumnFactory $columnFactory * @param \Magento\Catalog\Ui\Component\Listing\Attribute\RepositoryInterface $attributeRepository * @param array $components * @param array $data */ public function __construct( \Magento\Framework\View\Element\UiComponent\ContextInterface $context, \Magento\Catalog\Ui\Component\ColumnFactory $columnFactory, \Magento\Catalog\Ui\Component\Listing\Attribute\RepositoryInterface $attributeRepository, array $components = [], array $data = [] ) { parent::__construct($context, $components, $data); $this->columnFactory = $columnFactory; $this->attributeRepository = $attributeRepository; } /** * @inheritdoc */ public function prepare() { $columnSortOrder = self::DEFAULT_COLUMNS_MAX_ORDER; foreach ($this->attributeRepository->getList() as $attribute) { $config = []; if (!isset($this->components[$attribute->getAttributeCode()])) { $config['sortOrder'] = ++$columnSortOrder; if ($attribute->getIsFilterableInGrid()) { $config['filter'] = $this->getFilterType($attribute->getFrontendInput()); } $column = $this->columnFactory->create($attribute, $this->getContext(), $config); $column->prepare(); $this->addComponent($attribute->getAttributeCode(), $column); } } parent::prepare(); } /** * Retrieve filter type by $frontendInput * * @param string $frontendInput * @return string */ protected function getFilterType($frontendInput) { return $this->filterMap[$frontendInput] ?? $this->filterMap['default']; } }