3namespace Bitrix\Catalog\Grid;
5use Bitrix\Catalog\Filter\Factory\ProductFilterFactory;
6use Bitrix\Catalog\Grid\Access\ProductRightsChecker;
7use Bitrix\Catalog\Grid\Column\Factory\ProductColumnsFactory;
8use Bitrix\Catalog\Grid\Column\PriceProvider;
9use Bitrix\Catalog\Grid\Panel\UI\ProductPanel;
10use Bitrix\Catalog\Grid\Panel\UI\ProductPanelProvider;
11use Bitrix\Catalog\Grid\Row\Actions\ProductRowActionsProvider;
12use Bitrix\Catalog\Grid\Row\ProductRowAssembler;
13use Bitrix\Catalog\Grid\Settings\ProductSettings;
14use Bitrix\Catalog\GroupTable;
15use Bitrix\Main\Config\Option;
16use Bitrix\Main\Filter\Filter;
17use Bitrix\Main\Grid\Column\Column;
18use Bitrix\Main\Grid\Column\Columns;
19use Bitrix\Main\Grid\Grid;
20use Bitrix\Main\Grid\Row\Rows;
21use Bitrix\Main\Loader;
23Loader::requireModule(
'iblock');
31 private bool $useFilter =
false;
41 $this->useFilter = $value;
53 private function getIblockId(): int
55 return $this->getSettings()->getIblockId();
60 $result = parent::getOrmFilter();
64 $result[
'IBLOCK_ID'] = $this->getSettings()->getIblockId();
72 $columns = parent::prepareColumns();
74 return $this->prepareSortingColumns($columns);
77 private function getBasePriceColumnId(): string
79 return PriceProvider::getPriceTypeColumnId(
84 private function prepareDefaultColumns(Columns $columns): void
86 $defaultColumns = array_fill_keys([
92 $this->getBasePriceColumnId(),
95 foreach ($columns as $column)
97 $id = $column->getId();
99 isset($defaultColumns[$id])
109 private function prepareSortingColumns(
array $columns):
array
112 foreach ($columns as $column)
114 $map[$column->getId()] = $column;
124 $this->getBasePriceColumnId(),
129 foreach ($primaryColumns as $columnId)
131 if (isset(
$map[$columnId]))
134 unset(
$map[$columnId]);
143 #region creation methods
149 $this->prepareDefaultColumns($columns);
157 $this->getVisibleColumnsIds(),
158 $this->getSettings(),
162 $assembler->setUseCatalogTab(
163 Option::get(
'catalog',
'show_catalog_tab_with_offers') ===
'Y'
165 $assembler->setUseSkuSelector(
166 $this->getSettings()->isSkuSelectorEnabled()
172 $this->getSettings(),
173 $this->getProductRightsChecker()
182 $this->getSettings(),
184 $this->getProductRightsChecker()
191 if (!$this->useFilter)
196 $settings = new \Bitrix\Catalog\Filter\DataProvider\Settings\ProductSettings([
197 'ID' => $this->getId(),
198 'IBLOCK_ID' => $this->getSettings()->getIblockId(),
199 'VARIATION_IBLOCK_ID' => $this->getSettings()->getOffersIblockId(),
200 'LINK_PROPERTY_ID' => $this->getSettings()->getSkuPropertyId(),
208 #endregion creation methods
setUseFilter(bool $value=true)
__construct(ProductSettings $settings)
static getBasePriceTypeId()
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)