$rsElements = CIBlockElement::GetList($arSort, array_merge($arrFilter, $arFilter), array("ID"), $arNavParams, $arSelect);
$rsElements->SetUrlTemplates($arParams["DETAIL_URL"]);
if($arParams["BY_LINK"]!=="Y" && !$arParams["SHOW_ALL_WO_SECTION"])
$rsElements->SetSectionContext($arResult);
$arResult["ITEMS"] = array();
$UnikalniePozicii = array();
//Выборка товаров в каталог
$iter = 0;
while($obElement = $rsElements->GetNextElement())
{
$arItem = $obElement->GetFields();
$UnikalniePozicii[] = $arItem["ID"];
$arItem['ACTIVE_FROM'] = $arItem['DATE_ACTIVE_FROM'];
$arItem['ACTIVE_TO'] = $arItem['DATE_ACTIVE_TO'];
if($arResult["ID"])
$arItem["IBLOCK_SECTION_ID"] = $arResult["ID"];
$arButtons = CIBlock::GetPanelButtons(
$arItem["IBLOCK_ID"],
$arItem["ID"],
$arResult["ID"],
array("SECTION_BUTTONS"=>false, "SESSID"=>false, "CATALOG"=>true)
);
$arItem["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"];
$arItem["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"];
$arItem["PREVIEW_PICTURE"] = CFile::GetFileArray($arItem["PREVIEW_PICTURE"]);
$arItem["DETAIL_PICTURE"] = CFile::GetFileArray($arItem["DETAIL_PICTURE"]);
if(count($arParams["PROPERTY_CODE"]))
$arItem["PROPERTIES"] = $obElement->GetProperties();
elseif(count($arParams["PRODUCT_PROPERTIES"]))
$arItem["PROPERTIES"] = $obElement->GetProperties();
$arItem["DISPLAY_PROPERTIES"] = array();
foreach($arParams["PROPERTY_CODE"] as $pid)
{
$prop = &$arItem["PROPERTIES"][$pid];
if(
(is_array($prop["VALUE"]) && count($prop["VALUE"]) > 0)
|| (!is_array($prop["VALUE"]) && strlen($prop["VALUE"]) > 0)
)
{
$arItem["DISPLAY_PROPERTIES"][$pid] = CIBlockFormatProperties::GetDisplayValue($arItem, $prop, "catalog_out");
}
}
$arItem["PRODUCT_PROPERTIES"] = CIBlockPriceTools::GetProductProperties(
$arParams["IBLOCK_ID"],
$arItem["ID"],
$arParams["PRODUCT_PROPERTIES"],
$arItem["PROPERTIES"]
);
if($arParams["USE_PRICE_COUNT"])
{
if ($bCatalog)
{
$arItem["PRICE_MATRIX"] = CatalogGetPriceTableEx($arItem["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams);
foreach($arItem["PRICE_MATRIX"]["COLS"] as $keyColumn=>$arColumn)
$arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialcharsex($arColumn["NAME_LANG"]);
}
else
{
$arItem["PRICE_MATRIX"] = false;
}
$arItem["PRICES"] = array();
}
else
{
$arItem["PRICE_MATRIX"] = false;
$arItem["PRICES"] = CIBlockPriceTools::GetItemPrices($arParams["IBLOCK_ID"], $arResult["PRICES"], $arItem, $arParams['PRICE_VAT_INCLUDE'], $arConvertParams);
}
$arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["IBLOCK_ID"], $arResult["PRICES"], $arItem);
$arItem["BUY_URL"] = htmlspecialcharsbx($APPLICATION->GetCurPageParam($arParams["ACTION_VARIABLE"]."=BUY&".$arParams["PRODUCT_ID_VARIABLE"]."=".$arItem["ID"], array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"])));
$arItem["ADD_URL"] = htmlspecialcharsbx($APPLICATION->GetCurPageParam($arParams["ACTION_VARIABLE"]."=ADD2BASKET&".$arParams["PRODUCT_ID_VARIABLE"]."=".$arItem["ID"], array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"])));
$arItem["COMPARE_URL"] = htmlspecialcharsbx($APPLICATION->GetCurPageParam("action=ADD_TO_COMPARE_LIST&id=".$arItem["ID"], array("action", "id")));
$arItem["SUBSCRIBE_URL"] = htmlspecialcharsbx($APPLICATION->GetCurPageParam($arParams["ACTION_VARIABLE"]."=SUBSCRIBE_PRODUCT&id=".$arItem["ID"], array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"])));
$arItem["SECTION"]["PATH"] = array();
if($arParams["BY_LINK"]==="Y")
{
$rsPath = CIBlockSection::GetNavChain($arItem["IBLOCK_ID"], $arItem["IBLOCK_SECTION_ID"]);
$rsPath->SetUrlTemplates("", $arParams["SECTION_URL"]);
while($arPath = $rsPath->GetNext())
{
$arItem["SECTION"]["PATH"][]=$arPath;
}
}
if ('Y' == $arParams['CONVERT_CURRENCY'])
{
if ($arParams["USE_PRICE_COUNT"])
{
if (is_array($arItem["PRICE_MATRIX"]) && !empty($arItem["PRICE_MATRIX"]))
{
if (isset($arItem["PRICE_MATRIX"]['CURRENCY_LIST']) && is_array($arItem["PRICE_MATRIX"]['CURRENCY_LIST']))
$arCurrencyList = array_merge($arCurrencyList, $arItem["PRICE_MATRIX"]['CURRENCY_LIST']);
}
}
else
{
if (!empty($arItem["PRICES"]))
{
foreach ($arItem["PRICES"] as &$arOnePrices)
{
if (isset($arOnePrices['ORIG_CURRENCY']))
$arCurrencyList[] = $arOnePrices['ORIG_CURRENCY'];
}
if (isset($arOnePrices))
unset($arOnePrices);
}
}
}
$arResult["ITEMS"][]=$arItem;
$arResult["ELEMENTS"][] = $arItem["ID"];
$arResult["U_ELEM"][] = $arItem["ID"];
$Element = CIBlockElement::GetByID($arItem["ID"]);
if($arResElement = $Element->GetNext())
{
$arResult["ELEMENT_BY_ID"][] = $arResElement;
//Получаем основную картинку элемента
$rsFilePicture = CFile::GetByID($arResElement["DETAIL_PICTURE"]);
$arFilePicture = $rsFilePicture->Fetch();
$arResult["PICTURE"][] = $arFilePicture;
}
//Получаем остальные картинки элемента MORE_PHOTO
$arSelectMorePhoto = Array("PROPERTY_MORE_PHOTO");
$arFilterMorePhoto = Array("IBLOCK_ID"=>3, "ACTIVE"=>"Y", "ID"=>$arItem["ID"]);
$resMorePhoto = CIBlockElement::GetList(Array(), $arFilterMorePhoto, false, Array("nPageSize"=>50), $arSelectMorePhoto);
while($obMorePhoto = $resMorePhoto->GetNextElement())
{
$arFieldsMorePhoto = $obMorePhoto->GetFields();
//Получаем дополнительные картинки элемента элемента
$rsFileMorePhoto = CFile::GetByID($arFieldsMorePhoto["PROPERTY_MORE_PHOTO_VALUE"]);
$arFileMorePhoto = $rsFileMorePhoto->Fetch();
if($arFileMorePhoto)
{
$arResult["MORE_PHOTO"][$arItem["ID"]][] = $arFileMorePhoto;
}
}
}
|