• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/element.php
  • Класс: BitrixIblockComponentElement
  • Вызов: Element::onPrepareComponentParams
public function onPrepareComponentParams($params)
{
	if (!is_array($params))
	{
		$params = [];
	}
	$params['ADD_SECTIONS_CHAIN'] = (isset($params['ADD_SECTIONS_CHAIN']) && $params['ADD_SECTIONS_CHAIN'] === 'N' ? 'N' : 'Y');
	$params['PRODUCT_DISPLAY_MODE'] = 'Y';
	$params = parent::onPrepareComponentParams($params);
	$params['IBLOCK_TYPE'] = trim((string)($params['IBLOCK_TYPE'] ?? ''));

	if ((int)$params['ELEMENT_ID'] > 0 && (int)$params['ELEMENT_ID'] != $params['ELEMENT_ID'] && Loader::includeModule('iblock'))
	{
		$this->errorCollection->setError(new Error(Loc::getMessage('CATALOG_ELEMENT_NOT_FOUND'), self::ERROR_404));

		return $params;
	}

	$params['ELEMENT_ID'] = (int)$params['ELEMENT_ID'];
	$params['ELEMENT_CODE'] = trim((string)($params['ELEMENT_CODE'] ?? ''));

	$params['CHECK_SECTION_ID_VARIABLE'] = isset($params['CHECK_SECTION_ID_VARIABLE']) && $params['CHECK_SECTION_ID_VARIABLE'] === 'Y' ? 'Y' : 'N';
	$params['SECTION_ID_VARIABLE'] = trim((string)($params['SECTION_ID_VARIABLE'] ?? ''));
	if (
		$params['SECTION_ID_VARIABLE'] === ''
		|| !preg_match(self::PARAM_TITLE_MASK, $params['SECTION_ID_VARIABLE'])
	)
	{
		$params['SECTION_ID_VARIABLE'] = 'SECTION_ID';
	}

	$params['FROM_SECTION'] = '';
	if ($params['CHECK_SECTION_ID_VARIABLE'] === 'Y')
	{
		$params['FROM_SECTION'] = trim($this->request->get($params['SECTION_ID_VARIABLE']));
	}

	$params['SECTIONS_CHAIN_START_FROM'] = (int)($params['SECTIONS_CHAIN_START_FROM'] ?? 0);
	$params['META_KEYWORDS'] = trim((string)($params['META_KEYWORDS'] ?? ''));
	$params['META_DESCRIPTION'] = trim((string)($params['META_DESCRIPTION'] ?? ''));
	$params['BROWSER_TITLE'] = trim((string)($params['BROWSER_TITLE'] ?? ''));

	$params['BACKGROUND_IMAGE'] = trim((string)($params['BACKGROUND_IMAGE'] ?? ''));
	if ($params['BACKGROUND_IMAGE'] === '-')
	{
		$params['BACKGROUND_IMAGE'] = '';
	}

	$params['USE_MAIN_ELEMENT_SECTION'] = isset($params['USE_MAIN_ELEMENT_SECTION']) && $params['USE_MAIN_ELEMENT_SECTION'] === 'Y';
	$params['ADD_ELEMENT_CHAIN'] = isset($params['ADD_ELEMENT_CHAIN']) && $params['ADD_ELEMENT_CHAIN'] === 'Y';
	$params['LINK_IBLOCK_TYPE'] = trim((string)($params['LINK_IBLOCK_TYPE'] ?? ''));
	$params['LINK_IBLOCK_ID'] = (int)($params['LINK_IBLOCK_ID'] ?? 0);
	$params['LINK_PROPERTY_SID'] = trim((string)($params['LINK_PROPERTY_SID'] ?? ''));
	$params['LINK_ELEMENTS_URL'] = trim((string)($params['LINK_ELEMENTS_URL'] ?? ''));
	if ($params['LINK_ELEMENTS_URL'] === '')
	{
		$params['LINK_ELEMENTS_URL'] = 'link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#';
	}

	$params['SHOW_WORKFLOW'] = $this->request->get('show_workflow') === 'Y';
	if ($params['SHOW_WORKFLOW'])
	{
		$params['CACHE_TIME'] = 0;
	}

	$params['PRICE_VAT_SHOW_VALUE'] = isset($params['PRICE_VAT_SHOW_VALUE']) && $params['PRICE_VAT_SHOW_VALUE'] === 'Y';

	// compatibility to old HIDE_NOT_AVAILABLE parameter
	if (!isset($params['HIDE_NOT_AVAILABLE_OFFERS']) && isset($params['HIDE_NOT_AVAILABLE']))
	{
		$params['HIDE_NOT_AVAILABLE_OFFERS'] = $params['HIDE_NOT_AVAILABLE'];
	}

	if (
		!isset($params['HIDE_NOT_AVAILABLE_OFFERS'])
		|| ($params['HIDE_NOT_AVAILABLE_OFFERS'] !== 'Y' && $params['HIDE_NOT_AVAILABLE_OFFERS'] !== 'L')
	)
	{
		$params['HIDE_NOT_AVAILABLE_OFFERS'] = 'N';
	}

	$params['HIDE_NOT_AVAILABLE'] = 'N';
	$params['USE_ELEMENT_COUNTER'] = isset($params['USE_ELEMENT_COUNTER']) && $params['USE_ELEMENT_COUNTER'] === 'N' ? 'N' : 'Y';
	$params['SHOW_DEACTIVATED'] = isset($params['SHOW_DEACTIVATED']) && $params['SHOW_DEACTIVATED'] === 'Y' ? 'Y' : 'N';

	// default gifts
	if (empty($params['USE_GIFTS_DETAIL']))
	{
		$params['USE_GIFTS_DETAIL'] = 'Y';
	}

	if (empty($params['USE_GIFTS_MAIN_PR_SECTION_LIST']))
	{
		$params['USE_GIFTS_MAIN_PR_SECTION_LIST'] = 'Y';
	}

	if (empty($params['GIFTS_DETAIL_PAGE_ELEMENT_COUNT']))
	{
		$params['GIFTS_DETAIL_PAGE_ELEMENT_COUNT'] = 4;
	}

	if (empty($params['GIFTS_MAIN_PRODUCT_DETAIL_PAGE_ELEMENT_COUNT']))
	{
		$params['GIFTS_MAIN_PRODUCT_DETAIL_PAGE_ELEMENT_COUNT'] = 4;
	}

	$this->storage['IBLOCK_PARAMS'] = $this->getIblockParams($params);

	return $params;
}