<head>
<meta charset="utf-8"/>
<?
$APPLICATION->ShowMeta("robots", false, true);
$APPLICATION->ShowMeta("keywords", false, true);
$APPLICATION->ShowMeta("description", false, true);
?>
<link rel="shortcut icon" type="image/x-icon" href="<?= SITE_DIR ?>/favicon.ico"/>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL('http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic&subset=latin,cyrillic'
) ?>"/>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL('http://fonts.googleapis.com/css?family=Noto+Sans&subset=latin,cyrillic'
) ?>"/>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL('http://fonts.googleapis.com/css?family=Roboto+Slab:400,300,700&subset=latin,cyrillic'
) ?>"/>
<?
$APPLICATION->ShowCSS(true, true);
?>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL(SITE_TEMPLATE_PATH . "/css/jquery.formstyler.css") ?>"/>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL(SITE_TEMPLATE_PATH . "/css/jquery.nouislider.css") ?>"/>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL(SITE_TEMPLATE_PATH . "/css/jquery.ad-gallery.css") ?>"/>
<link rel="stylesheet"
type="text/css"
href="<?= CUtil::GetAdditionalFileURL(SITE_TEMPLATE_PATH . "/css/keyboard.css") ?>"/>
<?$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery-1.11.1.min.js");?>
<?$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/functions.js");?>
<?
$APPLICATION->ShowHeadStrings();
$APPLICATION->ShowHeadScripts();
?>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title><? $APPLICATION->ShowTitle() ?></title>
</head>
if($_REQUEST['ajax']=='Y')
if(isset($_REQUEST['ajax']) && $_REQUEST['ajax']=='Y')
$code = Add2BasketByProductID($productID, $QUANTITY, $arRewriteFields, $product_properties);
if (!$code) {
$response['status'] = 400;
$response['message'] = ' ';
} else {
$response['basket'] = getActualSmallBasket();
/*fix sku */
if (is_array($productProperties)) {
$arFields["PROPS"] = $productProperties;
CSaleBasket::Update($code, $arFields);
}
}
/* */
AddEventHandler("catalog", "OnPriceUpdate", Array("DiEvent", "OnPriceUpdateHandler"));
AddEventHandler("catalog", "OnPriceAdd", Array("DiEvent", "OnPriceAddHandler"));
/* */
AddEventHandler("catalog", "OnProductAdd", Array("DiEvent", "OnProductAddHandler"));
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("DiEvent", "OnProductUpdateHandler"));
/**
*
*
* @param $id
* @param $arFields
*/
function OnPriceUpdateHandler($id, $arFields) {
self::updateFilterPrice($arFields['PRODUCT_ID']);
}
/**
*
*
* @param $id
* @param $arFields
*/
function OnPriceAddHandler($id, $arFields) {
self::updateFilterPrice($arFields['PRODUCT_ID']);
}
/**
*
*
* @param $id
* @param $arFields
*/
function OnProductAddHandler($id, $arFields) {
self::updateFilterPrice($id);
}
/**
*
* OnProductUpdate ((
* @param $arFields
*/
function OnProductUpdateHandler(&$arFields) {
if ($arFields['IBLOCK_ID'] == 2) {
self::updateFilterPrice($arFields['ID']);
}
}
/**
*
* MIN_OFFER_PRICE, MAX_OFFER_PRICE .
* BASE! .
*
* @param $PRODUCT_ID id
*/
public static function updateFilterPrice($PRODUCT_ID) {
$EL = new CIBlockElement();
//
$arr = CIBlockPriceTools::GetOffersArray(
array('IBLOCK_ID' => 2),
array($PRODUCT_ID),
array(),
array(),
array(),
0,
CIBlockPriceTools::GetCatalogPrices(2, array('BASE'))
);
if (is_array($arr) && count($arr) > 0) {
$minPrice = null;
$maxPrice = 0;
// ,
foreach ($arr as $offer) {
$offerMinPrice = $offer['MIN_PRICE']['VALUE'];
if (is_null($minPrice)) {
$minPrice = $offerMinPrice;
} else {
if ($offerMinPrice < $minPrice) {
$minPrice = $offerMinPrice;
}
}
if ($offerMinPrice > $maxPrice) {
$maxPrice = $offerMinPrice;
}
}
// MIN_OFFER_PRICE, MAX_OFFER_PRICE
$EL->SetPropertyValuesEx($PRODUCT_ID, 2,
array('MIN_OFFER_PRICE'=>$minPrice,
'MAX_OFFER_PRICE'=>$maxPrice,)
);
} else {
//
$priceType = CIBlockPriceTools::GetCatalogPrices(2, array('BASE'));
$cgroup = $priceType['BASE']['SELECT'];
// !
$result = $EL->GetList(array(), array('IBLOCK_ID'=>2, 'ID'=>$PRODUCT_ID), false, false, array('*', $cgroup));
$arrElm = $result->GetNextElement();
if (is_object($arrElm)) {
$fields = $arrElm->GetFields();
//
$price = CIBlockPriceTools::GetItemPrices(2, $priceType, $fields);
// MIN_OFFER_PRICE, MAX_OFFER_PRICE
$EL->SetPropertyValuesEx($PRODUCT_ID, 2,
array('MIN_OFFER_PRICE'=>$price['BASE']['VALUE'],
'MAX_OFFER_PRICE'=>$price['BASE']['VALUE'],)
);
}
}
}
Source: https://habr.com/ru/post/247769/
All Articles