1С-Битрикс. Знак рубля
В битриксе есть модуль валют, в котором у каждой валюты можно задать свой формат. К примеру для рубля: # руб. и решетка подменится на стоимость. Когда на сайте нужно подключить знак рубля, то обычно этот формат меняют на такой:
# <span class="rub">p</span>
Но тогда в админке будут красоваться в списке заказов цены с html тегами пропущеными через функцию htmlspecialchars.
Решим проблему обработчиком:
// подписываемся на событие CurrencyFormat модуля валют. // вызывается в функции \CAllCurrencyLang::CurrencyFormat $eventManager = \Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandlerCompatible('currency', 'CurrencyFormat', array('CCurrencyLangHandler', 'CurrencyFormat')); // код класса class CCurrencyLangHandler { public static function CurrencyFormat($price, $currency) { if (!(defined('ADMIN_SECTION') && true === ADMIN_SECTION)) { return sprintf('%s <span class="rub">p</span>', number_format($price, 0, ' ', ' ')); } } }
Тем самым в админке мы видим цены по формату заданному в настройках, а на сайте видим цены с красивым знаком рубля.
CSS класс rub надо обверстать как вам нужно.
2 комментария
Отличное решение =)
Есть более изящное решение, поставить код HTML символа - ₽ но нужно каким-то образом изменить парсер цены, чтобы он игнорил решетку, если слева стоит амперсант, а я пока не могу определить где копать, куда смотреть.