• Модуль: 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;
}