} unset($strEmptyPreview); $arSKUPropList = array(); $arSKUPropIDs = array(); $arSKUPropKeys = array(); $boolSKU = false; $strBaseCurrency = ''; $boolConvert = isset($arResult['CONVERT_CURRENCY']['CURRENCY_ID']); if ($arResult['MODULES']['catalog']) { if (!$boolConvert) { $strBaseCurrency = CCurrency::GetBaseCurrency(); } $arSKU = CCatalogSKU::GetInfoByProductIBlock($arParams['IBLOCK_ID']); $boolSKU = !empty($arSKU) && is_array($arSKU); if ($boolSKU && !empty($arParams['OFFER_TREE_PROPS']) && 'Y' == $arParams['PRODUCT_DISPLAY_MODE']) { $arSKUPropList = CIBlockPriceTools::getTreeProperties($arSKU, $arParams['OFFER_TREE_PROPS'], array('PICT' => $arEmptyPreview, 'NAME' => '-')); $arNeedValues = array(); CIBlockPriceTools::getTreePropertyValues($arSKUPropList, $arNeedValues); $arSKUPropIDs = array_keys($arSKUPropList); if (empty($arSKUPropIDs)) { $arParams['PRODUCT_DISPLAY_MODE'] = 'N'; } else { $arSKUPropKeys = array_fill_keys($arSKUPropIDs, false); } } } $arNewItemsList = array(); foreach ($arResult['ITEMS'] as $key => $arItem) { $arItem['CHECK_QUANTITY'] = false; if (!isset($arItem['CATALOG_MEASURE_RATIO'])) { $arItem['CATALOG_MEASURE_RATIO'] = 1;
$skuPropKeys = array(); // array("id_catalog" => array(...)) if (!$boolConvert) { $strBaseCurrency = CCurrency::GetBaseCurrency(); } $catalogs = array(); foreach ($arResult['CATALOGS'] as $catalog) { $offersCatalogId = (int) $catalog['OFFERS_IBLOCK_ID']; $offersPropId = (int) $catalog['OFFERS_PROPERTY_ID']; $catalogId = (int) $catalog['IBLOCK_ID']; $sku = false; if ($offersCatalogId > 0 && $offersPropId > 0) { $sku = array("IBLOCK_ID" => $offersCatalogId, "SKU_PROPERTY_ID" => $offersPropId, "PRODUCT_IBLOCK_ID" => $catalogId); } if (!empty($sku) && is_array($sku)) { $skuPropList[$catalogId] = CIBlockPriceTools::getTreeProperties($sku, $arParams['OFFER_TREE_PROPS'][$offersCatalogId], array('PICT' => $arEmptyPreview, 'NAME' => '-')); $needValues = array(); CIBlockPriceTools::getTreePropertyValues($skuPropList[$catalogId], $needValues); $skuPropIds[$catalogId] = array_keys($skuPropList[$catalogId]); if (!empty($skuPropIds[$catalogId])) { $skuPropKeys[$catalogId] = array_fill_keys($skuPropIds[$catalogId], false); } } } $arNewItemsList = array(); foreach ($arResult['ITEMS'] as $key => $arItem) { $arItem['CATALOG_QUANTITY'] = 0 < $arItem['CATALOG_QUANTITY'] && is_float($arItem['CATALOG_MEASURE_RATIO']) ? floatval($arItem['CATALOG_QUANTITY']) : intval($arItem['CATALOG_QUANTITY']); $arItem['CATALOG'] = false; $arItem['LABEL'] = false; if (!isset($arItem['CATALOG_SUBSCRIPTION']) || 'Y' != $arItem['CATALOG_SUBSCRIPTION']) { $arItem['CATALOG_SUBSCRIPTION'] = 'N';
//to prevent html table corruption use Bitrix\Main; Main\Loader::includeModule('blog'); $arNavPage = explode("#", $arResult["NAV_STRING"], 20); $arResult["NAV_RECORD_COUNT"] = intval($arNavPage[0]) > 0 ? intval($arNavPage[0]) : 0; $arResult["NAV_FIRST_RECORD_SHOW"] = intval($arNavPage[1]) > 0 ? intval($arNavPage[1]) : 0; $arResult["NAV_LAST_RECORD_SHOW"] = intval($arNavPage[2]) > 0 ? intval($arNavPage[2]) : 0; $arResult["NAV_STRING"] = substr($arResult["NAV_STRING"], strlen($arResult["NAV_RECORD_COUNT"] . $arResult["NAV_FIRST_RECORD_SHOW"] . $arResult["NAV_LAST_RECORD_SHOW"]) + 2); /*****************************************************************/ //Для картинок из торговых предложений $arSKUPropList = array(); if ($arResult['MODULES']['catalog']) { $arSKU = CCatalogSKU::GetInfoByProductIBlock($arParams['IBLOCK_ID']); $boolSKU = !empty($arSKU) && is_array($arSKU); if ($boolSKU && !empty($arParams['OFFER_TREE_PROPS']) && 'Y' == $arParams['PRODUCT_DISPLAY_MODE']) { $arSKUPropList = CIBlockPriceTools::getTreeProperties($arSKU, $arParams['OFFER_TREE_PROPS'], array('PICT' => $this->GetFolder() . '/images/no_photo.png', 'NAME' => '-')); $arNeedValues = array(); CIBlockPriceTools::getTreePropertyValues($arSKUPropList, $arNeedValues); } } $arResult['SKU_PROPS'] = $arSKUPropList; unset($arSKUPropList); /******************************************************************/ foreach ($arResult["ITEMS"] as $key => $arItem) { $arRes = array(); //Если количество коментариев не установлено, то подгрузить их из БД if ($arItem['PROPERTIES']['BLOG_COMMENTS_CNT']['VALUE'] === "") { if ($arItem['PROPERTIES']['BLOG_POST_ID']['ID'] !== "") { $iCommentId = $arItem['PROPERTIES']['BLOG_POST_ID']['ID']; } else { $iCommentId = (int) CIBlockElement::GetProperty($arItem["IBLOCK_ID"], $arItem["ID"], array("sort" => "asc"), array("CODE" => CIBlockPropertyTools::CODE_BLOG_POST))->GetNext()["ID"];