- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/update/admingridoption.php
- Класс: BitrixIblockUpdateAdminGridOption
- Вызов: AdminGridOption::showProductField
static function showProductField(): void
{
$crmCatalogId = CCrmCatalog::GetDefaultID();
if ($crmCatalogId === 0)
{
return;
}
$tablePrefix = 'tbl_product_list_';
$listId = 'CRM_PRODUCT_CATALOG.' . $crmCatalogId;
if (CatalogConfigState::isProductCardSliderEnabled())
{
$listId .= '.NEW';
}
$tableId = $tablePrefix . md5($listId);
$productGridOptions = new BitrixMainGridOptions($tableId);
$visibleColumns = $productGridOptions->GetVisibleColumns();
if (empty($visibleColumns))
{
return;
}
$hasProductField = in_array('CATALOG_PRODUCT', $visibleColumns, true);
$hasMorePhotoField = in_array('MORE_PHOTO', $visibleColumns, true);
$oldNameFieldIndex = array_search('NAME', $visibleColumns, true);
if ($hasProductField)
{
if ($oldNameFieldIndex !== false)
{
unset($visibleColumns[$oldNameFieldIndex]);
}
elseif ($hasMorePhotoField)
{
return;
}
}
else
{
if ($oldNameFieldIndex !== false)
{
$visibleColumns[$oldNameFieldIndex] = 'CATALOG_PRODUCT';
}
else
{
array_unshift($visibleColumns, 'CATALOG_PRODUCT');
}
}
if (!$hasMorePhotoField)
{
$catalogProductFieldIndex = array_search('CATALOG_PRODUCT', $visibleColumns, true);
$visibleColumnsBefore = array_slice($visibleColumns, 0, $catalogProductFieldIndex + 1);
$visibleColumnsAfter = array_slice($visibleColumns, $catalogProductFieldIndex + 1);
$visibleColumns = array_merge($visibleColumnsBefore, ['MORE_PHOTO'], $visibleColumnsAfter);
}
$productGridOptions->SetVisibleColumns($visibleColumns);
}