$arFound = array(); $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect); while($arElement = $rsElements->GetNext()) { $ID = $arElement["PROPERTY_".strtoupper($arParams["LINK_PROPERTY_SID"])."_VALUE"]; if(!array_key_exists($ID, $arFound) || (strpos($arElement["XML_ID"], "#")===false)) { $arFound[$ID] = true; $arItem = &$arResult["ITEMS"][$arMap[$ID]]; if($arParams["USE_PRICE_COUNT"]) { if(CModule::IncludeModule("catalog")) { $arItem["PRICE_MATRIX"] = CatalogGetPriceTableEx($arElement["ID"]); foreach($arItem["PRICE_MATRIX"]["COLS"] as $keyColumn=>$arColumn) $arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialchars($arColumn["NAME_LANG"]); } else { $arItem["PRICE_MATRIX"] = false; } $arItem["PRICES"] = array(); } else { $arItem["PRICE_MATRIX"] = false; $arItem["PRICES"] = CIBlockPriceTools::GetItemPrices($arParams["LINK_IBLOCK_ID"], $arResult["PRICES"], $arElement); } $arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["LINK_IBLOCK_ID"], $arResult["PRICES"], $arElement);
$arResult['~BUY_URL_TEMPLATE'] = $currentPath . $arParams["ACTION_VARIABLE"] . "=BUY&" . $arParams["PRODUCT_ID_VARIABLE"] . "=#ID#"; $arResult['BUY_URL_TEMPLATE'] = htmlspecialcharsbx($arResult['~BUY_URL_TEMPLATE']); $arResult['~ADD_URL_TEMPLATE'] = $currentPath . $arParams["ACTION_VARIABLE"] . "=ADD2BASKET&" . $arParams["PRODUCT_ID_VARIABLE"] . "=#ID#"; $arResult['ADD_URL_TEMPLATE'] = htmlspecialcharsbx($arResult['~ADD_URL_TEMPLATE']); $arResult['~SUBSCRIBE_URL_TEMPLATE'] = $currentPath . $arParams["ACTION_VARIABLE"] . "=SUBSCRIBE_PRODUCT&" . $arParams["PRODUCT_ID_VARIABLE"] . "=#ID#"; $arResult['SUBSCRIBE_URL_TEMPLATE'] = htmlspecialcharsbx($arResult['~SUBSCRIBE_URL_TEMPLATE']); $arResult['~COMPARE_URL_TEMPLATE'] = $comparePath . $arParams["ACTION_VARIABLE"] . "=ADD_TO_COMPARE_LIST&" . $arParams["PRODUCT_ID_VARIABLE"] . "=#ID#"; $arResult['COMPARE_URL_TEMPLATE'] = htmlspecialcharsbx($arResult['~COMPARE_URL_TEMPLATE']); unset($comparePath, $currentPath); foreach ($arResult["ITEMS"] as &$arItem) { $arItem["PRICES"] = array(); $arItem["PRICE_MATRIX"] = false; $arItem['MIN_PRICE'] = false; if ($arParams["USE_PRICE_COUNT"]) { if ($bCatalog) { $arItem["PRICE_MATRIX"] = CatalogGetPriceTableEx($arItem["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams); if (isset($arItem["PRICE_MATRIX"]["COLS"]) && is_array($arItem["PRICE_MATRIX"]["COLS"])) { foreach ($arItem["PRICE_MATRIX"]["COLS"] as $keyColumn => $arColumn) { $arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialcharsex($arColumn["NAME_LANG"]); } } } } else { $arItem["PRICES"] = CIBlockPriceTools::GetItemPrices($arParams["IBLOCK_ID"], $arResult["PRICES"], $arItem, $arParams['PRICE_VAT_INCLUDE'], $arConvertParams); if (!empty($arItem["PRICES"])) { foreach ($arItem['PRICES'] as &$arOnePrice) { if ('Y' == $arOnePrice['MIN_PRICE']) { $arItem['MIN_PRICE'] = $arOnePrice; break; } }
foreach ($arResult["CATEGORIES"] as $category_id => $arCategory) { foreach ($arCategory["ITEMS"] as $i => $arItem) { if (isset($arItem["ITEM_ID"])) { $arResult["SEARCH"][] =& $arResult["CATEGORIES"][$category_id]["ITEMS"][$i]; } } } foreach ($arResult["SEARCH"] as $i => $arItem) { switch ($arItem["MODULE_ID"]) { case "iblock": if (CModule::IncludeModule("catalog")) { $arParams["CURRENCY"] = $arParams["CURRENCY"] ? $arParams["CURRENCY"] : CCurrency::GetBaseCurrency(); $arConvertParams = array('CURRENCY_ID' => $arParams["CURRENCY"]); $ProductPrarams = CCatalogProduct::GetByID($arItem["ITEM_ID"]); //echo $ProductPrarams[VAT_INCLUDED]; $arPrices = CatalogGetPriceTableEx($arItem["ITEM_ID"], 0, array(), 'Y', $arConvertParams); unset($arResult["SEARCH"][$i]["MIN_PRICE"]); unset($arResult["SEARCH"][$i]["PRICES"]); foreach ($arParams["PRICE_CODE"] as $key => $prid) { if ($arPrices["MATRIX"][$prid][0]) { if (isset($arResult["SEARCH"][$i]["MIN_PRICE"])) { if ($arPrices["MATRIX"][$prid][0]["ORIG_DISCOUNT_PRICE"]) { $price_orig_val = $arPrices["MATRIX"][$prid][0]["ORIG_DISCOUNT_PRICE"]; } else { $price_orig_val = $arPrices["MATRIX"][$prid][0]["DISCOUNT_PRICE"]; } if ($arResult["SEARCH"][$i]["MIN_PRICE"]["DISCOUNT_PRICE"] > $price_orig_val) { $arResult["SEARCH"][$i]["MIN_PRICE"] = $arPrices["MATRIX"][$prid][0]; } } else { $arResult["SEARCH"][$i]["MIN_PRICE"] = $arPrices["MATRIX"][$prid][0];
$arPriceTypeID[] = $value["ID"]; } if (isset($value)) { unset($value); } } $arFound = array(); $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect); while ($arElement = $rsElements->GetNext()) { $ID = $arElement["PROPERTY_" . strtoupper($arParams["LINK_PROPERTY_SID"]) . "_VALUE"]; if (!array_key_exists($ID, $arFound) || strpos($arElement["XML_ID"], "#") === false) { $arFound[$ID] = true; $arItem =& $arResult["ITEMS"][$arMap[$ID]]; if ($arParams["USE_PRICE_COUNT"]) { if (CModule::IncludeModule("catalog")) { $arItem["PRICE_MATRIX"] = CatalogGetPriceTableEx($arElement["ID"], 0, $arPriceTypeID, 'Y', $arResult['CONVERT_CURRENCY']); foreach ($arItem["PRICE_MATRIX"]["COLS"] as $keyColumn => $arColumn) { $arItem["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialcharsbx($arColumn["NAME_LANG"]); } } else { $arItem["PRICE_MATRIX"] = false; } $arItem["PRICES"] = array(); } else { $arItem["PRICE_MATRIX"] = false; $arItem["PRICES"] = CIBlockPriceTools::GetItemPrices($arParams["LINK_IBLOCK_ID"], $arResult["PRICES"], $arElement, $arParams['PRICE_VAT_INCLUDE'], $arResult['CONVERT_CURRENCY']); } $arItem["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["LINK_IBLOCK_ID"], $arResult["PRICES"], $arElement); } } }
: <b><?php if ($discountPrice < $arElement["CATALOG_PRICE_" . $key]) { echo '<s>' . FormatCurrency($arElement["CATALOG_PRICE_" . $key], $arElement["CATALOG_CURRENCY_" . $key]) . '</s> <font color="red">' . FormatCurrency($discountPrice, $arElement["CATALOG_CURRENCY_" . $key]) . '</font>'; } else { echo '<font color="red">' . FormatCurrency($arElement["CATALOG_PRICE_" . $key], $arElement["CATALOG_CURRENCY_" . $key]) . '</font>'; } ?> </b></font></td> </tr> <?php } } } } } else { $arPriceMatrix = CatalogGetPriceTableEx($arElement["ID"]); ?> <tr> <td colspan="3"> <br><img src="/bitrix/images/1.gif" width="1" height="6" border="0" alt=""><br> <table cellpadding="0" cellspacing="0" border="0"><tr><td class="tableborder"> <table cellpadding="3" cellspacing="1" border="0" width="100%"> <tr> <?php if (count($arPriceMatrix["ROWS"]) > 1 || count($arPriceMatrix["ROWS"]) == 1 && ($arPriceMatrix["ROWS"][0]["QUANTITY_FROM"] > 0 || $arPriceMatrix["ROWS"][0]["QUANTITY_TO"] > 0)) { ?> <td valign="top" nowrap class="tablebody"><font class="smalltext"><?php echo GetMessage("CATALOG_QUANTITY"); ?> </font></td><?php }
$arResultModules['currency'] = true; $arCurrencyInfo = CCurrency::GetByID($arParams['CURRENCY_ID']); if (!(is_array($arCurrencyInfo) && !empty($arCurrencyInfo))) { $arParams['CONVERT_CURRENCY'] = 'N'; $arParams['CURRENCY_ID'] = ''; } else { $arParams['CURRENCY_ID'] = $arCurrencyInfo['CURRENCY']; $arConvertParams['CURRENCY_ID'] = $arCurrencyInfo['CURRENCY']; } } } $bCatalog = CModule::IncludeModule('catalog'); foreach ($arResult["SET_ITEMS"] as $key => $setItem) { if ($arParams["USE_PRICE_COUNT"]) { if ($bCatalog) { $arResult["SET_ITEMS"][$key]["PRICE_MATRIX"] = CatalogGetPriceTableEx($arResult["SET_ITEMS"][$key]["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams); foreach ($arResult["SET_ITEMS"][$key]["PRICE_MATRIX"]["COLS"] as $keyColumn => $arColumn) { $arResult["SET_ITEMS"][$key]["PRICE_MATRIX"]["COLS"][$keyColumn]["NAME_LANG"] = htmlspecialcharsbx($arColumn["NAME_LANG"]); } } } else { $arResult["SET_ITEMS"][$key]["PRICES"] = CIBlockPriceTools::GetItemPrices($arParams["IBLOCK_ID"], $arResultPrices, $arResult["SET_ITEMS"][$key], $arParams['PRICE_VAT_INCLUDE'], $arConvertParams); if (!empty($arResult["SET_ITEMS"][$key]["PRICES"])) { foreach ($arResult["SET_ITEMS"][$key]['PRICES'] as &$arOnePrice) { if ('Y' == $arOnePrice['MIN_PRICE']) { $arResult["SET_ITEMS"][$key]['MIN_PRICE'] = $arOnePrice; break; } } unset($arOnePrice); }
if ($arResult["SECTION"] = $rsSection->GetNext()) { if (strlen($arParams["SECTION_URL"]) > 0) { $arResult["SECTION"]["SECTION_PAGE_URL"] = htmlspecialchars(str_replace(array("#SERVER_NAME#", "#SITE_DIR#", "#IBLOCK_ID#", "#SECTION_ID#"), array(SITE_SERVER_NAME, SITE_DIR, $arResult["IBLOCK_ID"], $arResult["SECTION"]["ID"]), $arParams["SECTION_URL"])); } $arResult["SECTION"]["PATH"] = array(); $rsPath = GetIBlockSectionPath($arResult["IBLOCK_ID"], $arResult["SECTION"]["ID"]); while ($arPath = $rsPath->GetNext()) { if (strlen($arParams["SECTION_URL"]) > 0) { $arPath["SECTION_PAGE_URL"] = htmlspecialchars(str_replace(array("#SERVER_NAME#", "#SITE_DIR#", "#IBLOCK_ID#", "#SECTION_ID#"), array(SITE_SERVER_NAME, SITE_DIR, $arPath["IBLOCK_ID"], $arPath["ID"]), $arParams["SECTION_URL"])); } $arResult["SECTION"]["PATH"][] = $arPath; } } if ($arParams["USE_PRICE_COUNT"]) { if (CModule::IncludeModule("catalog")) { $arResult["PRICE_MATRIX"] = CatalogGetPriceTableEx($arResult["ID"]); } else { $arResult["PRICE_MATRIX"] = false; } $arResult["PRICES"] = array(); } else { $arResult["PRICE_MATRIX"] = false; $arResult["PRICES"] = CIBlockPriceTools::GetItemPrices($arParams["IBLOCK_ID"], $arResult["CAT_PRICES"], $arResult); } $arResult["CAN_BUY"] = CIBlockPriceTools::CanBuy($arParams["IBLOCK_ID"], $arResult["PRICES"], $arResult); $arResult["BUY_URL"] = htmlspecialchars($APPLICATION->GetCurPageParam($arParams["ACTION_VARIABLE"] . "=BUY&" . $arParams["PRODUCT_ID_VARIABLE"] . "=" . $arResult["ID"], array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"]))); $arResult["ADD_URL"] = htmlspecialchars($APPLICATION->GetCurPageParam($arParams["ACTION_VARIABLE"] . "=ADD2BASKET&" . $arParams["PRODUCT_ID_VARIABLE"] . "=" . $arResult["ID"], array($arParams["PRODUCT_ID_VARIABLE"], $arParams["ACTION_VARIABLE"]))); $arResult["LINK_URL"] = str_replace(array("#ELEMENT_ID#", "#SECTION_ID#"), array($arResult["ID"], $arResult["SECTION"]["ID"]), $arParams["LINK_ELEMENTS_URL"]); $this->IncludeComponentTemplate(); } else { $this->AbortResultCache();