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