Изменяем значок валюты в Битрикс
Последние записи
Часто возникает вопрос замены классического вывода цены на свой собственный. Если это требуется сделать на всем сайте, то идем в Настройки->Валюты->Список валют
. Переходим на вкладку Языковые настройки
и в полях "Строка формата для вывода валюты:"
соответствующих языков меняем руб.
на необходимый нам знак
Программная смена значка валюты, в корзине старого шаблона
В своём шаблоне компонента sale.basket.basket
находим файл basket_items.php
. Для остальных разделов корзины правим другие файлы. Где-то в начале пишем, опираясь на свои валюты:
$currency = $_COOKIE['currency'];//Берём из кукисов текущую валюту
//В переменную $pound записываем значок валюты
if ($currency == 'GBP')
$pound = '£';
if ($currency == 'EUR')
$pound = '€';
if ($currency == 'PLN')
$pound = 'zł';
if ($currency == 'DKK')
$pound = 'D.Kr.';
if ($currency == 'SEK')
$pound = 'S.Kr.';
if ($currency == 'NOK')
$pound = 'N.Kr.';
//Подключаем модуль для конвертации стоимости
CModule::IncludeModule('currency');
//Выводим в скрытых инпутах значок валюты и коэффициент перевода из базовой валюты (в моём случае базовая "GBP").
//Эти строки нужны для пересчёта цен в корзине с помощью аякса. Править аякс нужно отдельно с большой болью. Приводить здесь не буду.
<input id="currencytext" type="text" hidden value="<?=$pound?>" />
<input id="currencyrate" type="text" hidden value="<?=CCurrencyRates::GetConvertFactor($currency,"GBP");?>" >
Далее, там где есть вывод цены в шаблоне пишем такого типа код
if ($arItem["CURRENCY"] != $currency){//Если мы переключили валюту с базовой
//Конвертируем неформатированную цену, записываем её в $intotal
$intotal = CCurrencyRates::ConvertCurrency($arItem["PRICE"], "GBP", $currency);
//Убираем лишние знаки, оставляем 2 знака после точки
$intotal2 = substr($intotal, 0, strripos($intotal,'.') + 3);
//Выводим новую отформатированную стоимость в валюте $currency
echo $pound.' '.intotal2
}
//Если валюта базовая, то можем сразу выводить форматированную цену
else {
echo $arItem["PRICE_FORMATED"]
}?>
Комментарии