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