- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/component/element.php
- Класс: BitrixIblockComponentElement
- Вызов: Element::getIblockParams
protected function getIblockParams(&$params)
{
$usePropertyFeatures = IblockModelPropertyFeature::isEnabledFeatures();
if (!isset($params['PROPERTY_CODE']) || !is_array($params['PROPERTY_CODE']))
{
$params['PROPERTY_CODE'] = array();
}
foreach ($params['PROPERTY_CODE'] as $k => $v)
{
if ($v == '')
{
unset($params['PROPERTY_CODE'][$k]);
}
}
if (!isset($params['OFFERS_FIELD_CODE']))
{
$params['OFFERS_FIELD_CODE'] = array();
}
elseif (!is_array($params['OFFERS_FIELD_CODE']))
{
$params['OFFERS_FIELD_CODE'] = array($params['OFFERS_FIELD_CODE']);
}
foreach ($params['OFFERS_FIELD_CODE'] as $key => $value)
{
if ($value == '')
{
unset($params['OFFERS_FIELD_CODE'][$key]);
}
}
if (!isset($params['OFFERS_PROPERTY_CODE']))
{
$params['OFFERS_PROPERTY_CODE'] = array();
}
elseif (!is_array($params['OFFERS_PROPERTY_CODE']))
{
$params['OFFERS_PROPERTY_CODE'] = array($params['OFFERS_PROPERTY_CODE']);
}
foreach ($params['OFFERS_PROPERTY_CODE'] as $key => $value)
{
if ($value == '')
{
unset($params['OFFERS_PROPERTY_CODE'][$key]);
}
}
if (!in_array('PREVIEW_PICTURE', $params['OFFERS_PROPERTY_CODE']))
{
$params['OFFERS_PROPERTY_CODE'][] = 'PREVIEW_PICTURE';
}
if (!in_array('DETAIL_PICTURE', $params['OFFERS_PROPERTY_CODE']))
{
$params['OFFERS_PROPERTY_CODE'][] = 'DETAIL_PICTURE';
}
$cartProperties = [];
$offersCartProperties = [];
$offerTreeProperties = [];
if (!$usePropertyFeatures)
{
if (!isset($params['PRODUCT_PROPERTIES']) || !is_array($params['PRODUCT_PROPERTIES']))
{
$params['PRODUCT_PROPERTIES'] = array();
}
foreach ($params['PRODUCT_PROPERTIES'] as $k => $v)
{
if ($v == '')
{
unset($params['PRODUCT_PROPERTIES'][$k]);
}
}
$cartProperties = $params['PRODUCT_PROPERTIES'];
if (!isset($params['OFFERS_CART_PROPERTIES']) || !is_array($params['OFFERS_CART_PROPERTIES']))
{
$params['OFFERS_CART_PROPERTIES'] = array();
}
foreach ($params['OFFERS_CART_PROPERTIES'] as $i => $pid)
{
if ($pid == '')
{
unset($params['OFFERS_CART_PROPERTIES'][$i]);
}
}
$offersCartProperties = $params['OFFERS_CART_PROPERTIES'];
if (!isset($params['OFFER_TREE_PROPS']))
{
$params['OFFER_TREE_PROPS'] = array();
}
elseif (!is_array($params['OFFER_TREE_PROPS']))
{
$params['OFFER_TREE_PROPS'] = array($params['OFFER_TREE_PROPS']);
}
foreach ($params['OFFER_TREE_PROPS'] as $key => $value)
{
$value = (string)$value;
if ($value == '' || $value === '-')
{
unset($params['OFFER_TREE_PROPS'][$key]);
}
}
if (empty($params['OFFER_TREE_PROPS']) && !empty($params['OFFERS_CART_PROPERTIES']))
{
$params['OFFER_TREE_PROPS'] = $params['OFFERS_CART_PROPERTIES'];
foreach ($params['OFFER_TREE_PROPS'] as $key => $value)
{
if ($value === '-')
{
unset($params['OFFER_TREE_PROPS'][$key]);
}
}
}
$offerTreeProperties = $params['OFFER_TREE_PROPS'];
}
return array(
$params['IBLOCK_ID'] => array(
'PROPERTY_CODE' => $params['PROPERTY_CODE'],
'CART_PROPERTIES' => $cartProperties,
'OFFERS_FIELD_CODE' => $params['OFFERS_FIELD_CODE'],
'OFFERS_PROPERTY_CODE' => $params['OFFERS_PROPERTY_CODE'],
'OFFERS_CART_PROPERTIES' => $offersCartProperties,
'OFFERS_TREE_PROPS' => $offerTreeProperties
)
);
}