• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/comp_pricetools.php
  • Класс: CIBlockPriceTools
  • Вызов: CIBlockPriceTools::GetCatalogPrices
static function GetCatalogPrices($IBLOCK_ID, $arPriceCode)
{
	global $USER;
	$arCatalogPrices = array();
	if (self::$catalogIncluded === null)
		self::$catalogIncluded = Loader::includeModule('catalog');
	if (self::$catalogIncluded)
	{
		$arCatalogGroupCodesFilter = array();
		foreach($arPriceCode as $value)
		{
			$t_value = trim($value);
			if ('' != $t_value)
				$arCatalogGroupCodesFilter[$value] = true;
		}
		$arCatalogGroupsFilter = array();
		$arCatalogGroups = CCatalogGroup::GetListArray();
		foreach ($arCatalogGroups as $key => $value)
		{
			if (isset($arCatalogGroupCodesFilter[$value['NAME']]))
			{
				$arCatalogGroupsFilter[] = $key;
				$arCatalogPrices[$value["NAME"]] = array(
					"ID" => (int)$value["ID"],
					"CODE" => $value["NAME"],
					"SORT" => (int)$value["SORT"],
					"BASE" => $value["BASE"],
					"XML_ID" => $value["XML_ID"],
					"TITLE" => htmlspecialcharsbx($value["NAME_LANG"]),
					"~TITLE" => $value["NAME_LANG"],
					"SELECT" => "CATALOG_GROUP_".$value["ID"],
					"SELECT_EXTENDED" => array("PRICE_".$value["ID"], "CURRENCY_".$value["ID"], "SCALED_PRICE_".$value["ID"])
				);
			}
		}
		$userGroups = array(2);
		if (isset($USER) && $USER instanceof CUser)
			$userGroups = $USER->GetUserGroupArray();
		$arPriceGroups = CCatalogGroup::GetGroupsPerms($userGroups, $arCatalogGroupsFilter);
		foreach($arCatalogPrices as $name=>$value)
		{
			$arCatalogPrices[$name]["CAN_VIEW"] = in_array($value["ID"], $arPriceGroups["view"]);
			$arCatalogPrices[$name]["CAN_BUY"] = in_array($value["ID"], $arPriceGroups["buy"]);
		}
	}
	else
	{
		$rsProperties = CIBlockProperty::GetList(array(), array(
			"IBLOCK_ID" => $IBLOCK_ID,
			"CHECK_PERMISSIONS" => "N",
			"PROPERTY_TYPE" => "N",
			"MULTIPLE" => "N"
		));
		while ($arProperty = $rsProperties->Fetch())
		{
			if (in_array($arProperty["CODE"], $arPriceCode))
			{
				$arCatalogPrices[$arProperty["CODE"]] = array(
					"ID" => (int)$arProperty["ID"],
					"CODE" => $arProperty["CODE"],
					"SORT" => (int)$arProperty["SORT"],
					"BASE" => "N",
					"XML_ID" => $arProperty["XML_ID"],
					"TITLE" => htmlspecialcharsbx($arProperty["NAME"]),
					"~TITLE" => $arProperty["NAME"],
					"SELECT" => "PROPERTY_".$arProperty["ID"],
					"SELECT_EXTENDED" => array("PROPERTY_".$arProperty["ID"]),
					"CAN_VIEW"=>true,
					"CAN_BUY"=>false,
				);
			}
		}
	}
	return $arCatalogPrices;
}