Не дождался решения, сделал костылем, может кому-нибудь пригодится
Небольшая предыстория: На сайте
все цены хранятся в $, посетителю же цена показывается в рублях. В фильтре как и говорилось отображение цены идет в $, а надо бы в рублях.
Решение.
Копируем шаблон компонента catalog.smart.filter и в template.php добавляем конвертацию
Код |
---|
$arItem["VALUES"]["MIN"]["VALUE"]=CCurrencyRates::ConvertCurrency($arItem["VALUES"]["MIN"]["VALUE"], "USD", "RUB");
$arItem["VALUES"]["MAX"]["VALUE"]=CCurrencyRates::ConvertCurrency($arItem["VALUES"]["MAX"]["VALUE"], "USD", "RUB");
if ($arItem["VALUES"]["MIN"]["HTML_VALUE"])
$arItem["VALUES"]["MIN"]["HTML_VALUE"]=CCurrencyRates::ConvertCurrency($arItem["VALUES"]["MIN"]["HTML_VALUE"], "USD", "RUB");
if ($arItem["VALUES"]["MAX"]["HTML_VALUE"])
$arItem["VALUES"]["MAX"]["HTML_VALUE"]=CCurrencyRates::ConvertCurrency($arItem["VALUES"]["MAX"]["HTML_VALUE"], "USD", "RUB");
|
(это перед кодом <?foreach($arResult["ITEMS"] as $arItem):?>
<? if(isset($arItem["PRICE"]
){ )
Перед подключением компонента catalog.smart.filter вставляем следующее:
Код |
---|
CModule::IncludeModule("currency");
if ($_REQUEST['arrFilter_P10_MIN']){
$_REQUEST['arrFilter_P10_MIN']=CCurrencyRates::ConvertCurrency($_REQUEST['arrFilter_P10_MIN'], "RUB", "USD");
$_GET['arrFilter_P10_MIN']=CCurrencyRates::ConvertCurrency($_GET['arrFilter_P10_MIN'], "RUB", "USD");
}
if ($_REQUEST['arrFilter_P10_MAX']){
$_REQUEST['arrFilter_P10_MAX']=CCurrencyRates::ConvertCurrency($_REQUEST['arrFilter_P10_MAX'], "RUB", "USD");
$_GET['arrFilter_P10_MAX']=CCurrencyRates::ConvertCurrency($_GET['arrFilter_P10_MAX'], "RUB", "USD");
} |
(P10 нужно заменить на свой ид цены)
В файле ajax.php шаблона копонента catalog.smart.filter заменяем код на
Код |
---|
$APPLICATION->RestartBuffer();
$url=explode('?',$arResult["FILTER_URL"]);
$url2=explode('&',$url[1]);
foreach ($url2 as $k=>$u){
$url3=explode('=',$u);
if ($url3[0]=='arrFilter_P10_MAX'){
$url2[$k]='arrFilter_P10_MAX='.CCurrencyRates::ConvertCurrency($url3[1], "USD", "RUB");;
}
if ($url3[0]=='arrFilter_P10_MIN'){
$url2[$k]='arrFilter_P10_MIN='.CCurrencyRates::ConvertCurrency($url3[1], "USD", "RUB");
}
}
$arResult["FILTER_URL"]=$url[0].'?'.implode('&',$url2);
unset($arResult["COMBO"]);
echo CUtil::PHPToJSObject($arResult);
|