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