Вопросы и ответы

Модуль должен корректно работать на 1С-Битрикс: Управление сайтом, начиная с версии 8.0.2. На более старых версиях 1С-Битрикс: Управление сайтом модуль не сможет правильно работать, однако если используется настолько старая версия Битрикс, значит, система не обновляется, и поэтому можно вручную дописать необходимый функционал, скопировав его из модуля.

Если символ рубля после установки модуля не отображается, а вид валюты остается прежним, значит, вывод валюты реализован нестандартным способом. Для решения проблемы необходимо вручную находить в коде места вывода валют и заменять функцию вывода валюты на функцию модуля:

CurrencyFormat_Ruble($Value, $Currency="RUB", $Decimals=0, $dec_point='.', $thousands_sep=' ');

После этого символ рубля должен отображаться корректно.

Если вместо символа рубля отображаются латинские символы (чаще всего "a"), это значит, что в контейнеру, содержащему символ рубля, не применяются необходимые CSS-стили. Причиной может быть: не подключены CSS стили на страницу (ShowHead() или ShowCSS()), жестко заданные параметры шрифта (при помощи конструкции !important), такие как font, font-family, text-transform.
После удаления модуля стирается вся информация о нем, не оставляя никаких следов. Поэтому первым делом удалите весь кеш на сайте (через Администрирование - Настройки продукта - Автокеширование). Если не помогло, проверьте настройки отображения валюты "Рубль" поле "Строка формата для вывода валюты". Если там указано что-то вроде "# <span style="font-size:12px">руб</span>" замените это на "# руб" (это не имеет отношения к модулю, но такое иногда можно увидеть на некоторых сайтах).
В этом случае необходимо в настройках модуля снять галочку «Отключить функционал, если массив $_POST не пуст». После отключения данной опции символ рубля будет заменяться символом «a» в e-mail уведомлениях и других случаях. Поэтому в настройках модуля в поле «Дополнительные условия (PHP код)» необходимо добавить соответствующие условия (условия должны определяться программистом), например для отмены функционала символа рубля в e-mail при оформлении заказа нужно добавить условие $_POST['confirmorder']=='Y'.
Например так:
if ($_GET["rub"]=="N" || $_POST['confirmorder']=='Y') return false;

Updated 2015-08-31:
Для некоторых случаев подойдет такой вариант решения проблемы (добавление обработчика в /bitrix/php_interface/init.php):

	AddEventHandler('main','OnEndBufferContent','WD_Ruble_ChangeJsCurrency'); function WD_Ruble_ChangeJS(&$Content) { $From = "{'CURRENCY':'RUB','FORMAT':{'FORMAT_STRING':'.*?','DEC_POINT':'(.*?)','THOUSANDS_SEP':'(.*?)','DECIMALS':(.*?),'THOUSANDS_VARIANT':'(.*?)','HIDE_ZERO':'(.*?)'}},"; $To = "{'CURRENCY':'RUB','FORMAT':{'FORMAT_STRING':'<ruble>o</ruble> #','DEC_POINT':'$1','THOUSANDS_SEP':'$2','DECIMALS':$3,'THOUSANDS_VARIANT':'#4','HIDE_ZERO':'$5'}},"; $Content = preg_replace("/{$From}/i", $To, $Content); }
Указанная проблема может иметь несколько причин, одна из которых заключается в том, что цена при выводе дополнительно обрабатывается функцией str_replace(), например, так сделано в стандартном шаблоне Битрикс: str_replace(" ", "&nbsp;", $arResult["allSum_FORMATED"])

Суть в следующем: наш модуль выводит символ рубля с помощью доп. верстки: <span class="webdebug-ruble-symbol">...</span>.

Соответственно, после указанной обработки получается <spanclass="webdebug-ruble-symbol">...</span>, что, конечно же, не работает.

Решений два: либо в настройках модуля выбрать для рубля собственный тег (не работает в IE старых версий), либо убрать эту PHP-обработку и к цене просто применить стиль white-space:nowrap, что результате даже лучше.






По всем вопросам обращайтесь по нашим контактным данным:

Наверх