File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/templates/aspro_next/components/bitrix/catalog.top/main/result_modifier.php
Back
<? use Bitrix\Main\Type\Collection; use Bitrix\Currency\CurrencyTable; if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die(); /** @var CBitrixComponentTemplate $this */ /** @var array $arParams */ /** @var array $arResult */ $arDefaultParams = array( 'TYPE_SKU' => 'N', 'OFFER_TREE_PROPS' => array('-'), ); $arParams = array_merge($arDefaultParams, $arParams); if ('TYPE_2' != $arParams['TYPE_SKU'] ) $arParams['TYPE_SKU'] = 'N'; if ('TYPE_2' == $arParams['TYPE_SKU'] && $arParams['DISPLAY_TYPE'] !='table' ){ if (!is_array($arParams['OFFER_TREE_PROPS'])) $arParams['OFFER_TREE_PROPS'] = array($arParams['OFFER_TREE_PROPS']); foreach ($arParams['OFFER_TREE_PROPS'] as $key => $value) { $value = (string)$value; if ('' == $value || '-' == $value) unset($arParams['OFFER_TREE_PROPS'][$key]); } if (empty($arParams['OFFER_TREE_PROPS']) && isset($arParams['OFFERS_CART_PROPERTIES']) && is_array($arParams['OFFERS_CART_PROPERTIES'])) { $arParams['OFFER_TREE_PROPS'] = $arParams['OFFERS_CART_PROPERTIES']; foreach ($arParams['OFFER_TREE_PROPS'] as $key => $value) { $value = (string)$value; if ('' == $value || '-' == $value) unset($arParams['OFFER_TREE_PROPS'][$key]); } } }else{ $arParams['OFFER_TREE_PROPS'] = array(); } /* hide compare link from module options */ if(CNext::GetFrontParametrValue('CATALOG_COMPARE') == 'N') $arParams["DISPLAY_COMPARE"] = 'N'; /**/ if (!empty($arResult['ITEMS'])){ $arConvertParams = array(); if ('Y' == $arParams['CONVERT_CURRENCY']) { if (!CModule::IncludeModule('currency')) { $arParams['CONVERT_CURRENCY'] = 'N'; $arParams['CURRENCY_ID'] = ''; } else { $arResultModules['currency'] = true; if($arResult['CURRENCY_ID']) { $arConvertParams['CURRENCY_ID'] = $arResult['CURRENCY_ID']; } else { $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']; } } } } $arEmptyPreview = false; $strEmptyPreview = SITE_TEMPLATE_PATH . '/images/no_photo_medium.png'; if (file_exists($_SERVER['DOCUMENT_ROOT'].$strEmptyPreview)) { $arSizes = getimagesize($_SERVER['DOCUMENT_ROOT'].$strEmptyPreview); if (!empty($arSizes)) { $arEmptyPreview = array( 'SRC' => $strEmptyPreview, 'WIDTH' => intval($arSizes[0]), 'HEIGHT' => intval($arSizes[1]) ); } unset($arSizes); } unset($strEmptyPreview); $arSKUPropList = array(); $arSKUPropIDs = array(); $arSKUPropKeys = array(); $boolSKU = false; $strBaseCurrency = ''; $boolConvert = isset($arResult['CONVERT_CURRENCY']['CURRENCY_ID']); if (!$boolConvert) $strBaseCurrency = CCurrency::GetBaseCurrency(); $arNewItemsList = array(); foreach ($arResult['ITEMS'] as $key => $arItem) { $arItem['CHECK_QUANTITY'] = false; if (!isset($arItem['CATALOG_MEASURE_RATIO'])) $arItem['CATALOG_MEASURE_RATIO'] = 1; if (!isset($arItem['CATALOG_QUANTITY'])) $arItem['CATALOG_QUANTITY'] = 0; $arItem['CATALOG_QUANTITY'] = ( 0 < $arItem['CATALOG_QUANTITY'] && is_float($arItem['CATALOG_MEASURE_RATIO']) ? floatval($arItem['CATALOG_QUANTITY']) : intval($arItem['CATALOG_QUANTITY']) ); $arItem['CATALOG'] = false; if (!isset($arItem['CATALOG_SUBSCRIPTION']) || 'Y' != $arItem['CATALOG_SUBSCRIPTION']) $arItem['CATALOG_SUBSCRIPTION'] = 'N'; if ($arResult['MODULES']['catalog']) { $arItem['CATALOG'] = true; if (!isset($arItem['CATALOG_TYPE'])) $arItem['CATALOG_TYPE'] = CCatalogProduct::TYPE_PRODUCT; if ( (CCatalogProduct::TYPE_PRODUCT == $arItem['CATALOG_TYPE'] || CCatalogProduct::TYPE_SKU == $arItem['CATALOG_TYPE']) && !empty($arItem['OFFERS']) ) { $arItem['CATALOG_TYPE'] = CCatalogProduct::TYPE_SKU; } switch ($arItem['CATALOG_TYPE']) { case CCatalogProduct::TYPE_SET: $arItem['OFFERS'] = array(); $arItem['CHECK_QUANTITY'] = ('Y' == $arItem['CATALOG_QUANTITY_TRACE'] && 'N' == $arItem['CATALOG_CAN_BUY_ZERO']); break; case CCatalogProduct::TYPE_SKU: break; case CCatalogProduct::TYPE_PRODUCT: default: $arItem['CHECK_QUANTITY'] = ('Y' == $arItem['CATALOG_QUANTITY_TRACE'] && 'N' == $arItem['CATALOG_CAN_BUY_ZERO']); break; } } else { $arItem['CATALOG_TYPE'] = 0; $arItem['OFFERS'] = array(); } if ($arItem['CATALOG'] && isset($arItem['OFFERS']) && !empty($arItem['OFFERS'])) { //set min price when USE_PRICE_COUNT if($arParams['USE_PRICE_COUNT'] == 'Y') { $arPriceTypeID = array(); foreach($arItem['OFFERS'] as $keyOffer => $arOffer) { //format prices when USE_PRICE_COUNT if(function_exists('CatalogGetPriceTableEx') && (isset($arOffer['PRICE_MATRIX'])) && !$arOffer['PRICE_MATRIX']) { if($arOffer['PRICES']) { foreach($arOffer['PRICES'] as $priceKey => $arOfferPrice) { if($arOffer['CATALOG_GROUP_NAME_'.$arOfferPrice['PRICE_ID']]) { $arPriceTypeID[] = $arOfferPrice['PRICE_ID']; $arOffer['PRICES'][$priceKey]['GROUP_NAME'] = $arOffer['CATALOG_GROUP_NAME_'.$arOfferPrice['PRICE_ID']]; } } } $arOffer["PRICE_MATRIX"] = CatalogGetPriceTableEx($arOffer["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams); } $arItem['OFFERS'][$keyOffer] = array_merge($arOffer, CNext::formatPriceMatrix($arOffer)); } } $arItem['MIN_PRICE'] = CNext::getMinPriceFromOffersExt( $arItem['OFFERS'], $boolConvert ? $arResult['CONVERT_CURRENCY']['CURRENCY_ID'] : $strBaseCurrency ); } if ( $arResult['MODULES']['catalog'] && $arItem['CATALOG'] && ($arItem['CATALOG_TYPE'] == CCatalogProduct::TYPE_PRODUCT || $arItem['CATALOG_TYPE'] == CCatalogProduct::TYPE_SET) ) { CIBlockPriceTools::setRatioMinPrice($arItem, false); $arItem['MIN_BASIS_PRICE'] = $arItem['MIN_PRICE']; } if (!empty($arItem['DISPLAY_PROPERTIES'])) { foreach ($arItem['DISPLAY_PROPERTIES'] as $propKey => $arDispProp) { if ('F' == $arDispProp['PROPERTY_TYPE']) unset($arItem['DISPLAY_PROPERTIES'][$propKey]); } } //set min price when USE_PRICE_COUNT if($arParams['USE_PRICE_COUNT'] == 'Y' && !$arItem['OFFERS']) { $arItem["FIX_PRICE_MATRIX"] = CNext::checkPriceRangeExt($arItem); } //format prices when USE_PRICE_COUNT $arItem = array_merge($arItem, CNext::formatPriceMatrix($arItem)); $arItem['LAST_ELEMENT'] = 'N'; $arNewItemsList[$key] = $arItem; } $arNewItemsList[$key]['LAST_ELEMENT'] = 'Y'; $arResult['ITEMS'] = $arNewItemsList; $arResult['SKU_PROPS'] = $arSKUPropList; $arResult['DEFAULT_PICTURE'] = $arEmptyPreview; $arResult['CURRENCIES'] = array(); if($GLOBALS[$arParams["FILTER_NAME"]]["ID"] && $arParams["IS_VIEWED"]=="Y"){ $arTmp=array(); foreach($GLOBALS[$arParams["FILTER_NAME"]]["ID"] as $id){ foreach($arResult["ITEMS"] as $arItem){ if($arItem["ID"]==$id){ $arTmp[]=$arItem; } } } $arResult["ITEMS"]=$arTmp; unset($arTmp); } }?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings