- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/component/baseform.php
- Класс: BitrixCatalogComponentBaseForm
- Вызов: BaseForm::getCardSettings
public function getCardSettings(): array
{
$gridColumnSettings = $this->getCardSettingsItems();
$activeSettings = [];
$options = new BitrixMainGridOptions($this->getVariationGridId());
$allUsedColumns = $options->getUsedColumns();
if (!empty($allUsedColumns))
{
foreach ($gridColumnSettings as $setting => $columns)
{
if (empty(array_diff($columns['ITEMS'], $allUsedColumns)))
{
$activeSettings[] = $setting;
}
}
}
$config = $this->getCardUserConfig();
if (!empty($config['CATALOG_PARAMETERS']))
{
$activeSettings[] = 'CATALOG_PARAMETERS';
}
$items = [];
$settingList = array_keys($gridColumnSettings);
if ($this->entity->getType() !== ProductTable::TYPE_SERVICE)
{
$settingList = array_merge(
$settingList,
[
'CATALOG_PARAMETERS',
]
);
}
foreach ($settingList as $setting)
{
$items[] = [
'id' => $setting,
'checked' => in_array($setting, $activeSettings, true),
'title' => $gridColumnSettings[$setting]['TITLE'] ?? Loc::getMessage('CATALOG_C_F_VARIATION_SETTINGS_' . $setting . '_TITLE'),
'desc' => $gridColumnSettings[$setting]['DESCRIPTION'] ?? Loc::getMessage('CATALOG_C_F_VARIATION_SETTINGS_' . $setting . '_DESC'),
'action' => isset($gridColumnSettings[$setting]) ? 'grid' : 'card',
'columns' => $gridColumnSettings[$setting] ?? null,
];
}
if (
($this->accessController->check(ActionDictionary::ACTION_CATALOG_SETTINGS_ACCESS))
&& $this->isInventoryButtonAllowed()
)
{
$isInventoryControlEnabled = UseStore::isUsed();
$sliderPath = CComponentEngine::makeComponentPath('bitrix:catalog.warehouse.master.clear');
$sliderPath = getLocalPath('components' . $sliderPath . '/slider.php');
$items[] = [
'id' => 'SLIDER',
'checked' => $isInventoryControlEnabled,
'disabled' => $isInventoryControlEnabled,
'title' => Loc::getMessage('CATALOG_C_F_VARIATION_SETTINGS_WAREHOUSE_TITLE'),
'desc' => '',
'hint' => $isInventoryControlEnabled ? Loc::getMessage('CATALOG_C_F_VARIATION_SETTINGS_WAREHOUSE_HINT')
: '',
'url' => $sliderPath,
'action' => 'slider',
];
}
$seoLink = [
'id' => 'SEO',
'title' => Loc::getMessage('CATALOG_C_F_VARIATION_SETTINGS_SEO_TITLE'),
'disabled' => $this->isEntityCreationForm(),
'disabledCheckbox' => true,
'desc' => '',
'url' => '',
'action' => 'slider',
];
if ($this->entity->getId())
{
$seoLink['url'] = $this->urlBuilder->getElementSeoUrl($this->entity->getId());
}
$items[] = $seoLink;
return $items;
}