Тема: Вывод знака рубля
Здравствуйте!
У меня в шаблоне знак рубля выводиться из fonts awesome, вот так <i class="fa fa-rub"></i>
В админке я не могу так прописать "символ". Какие есть варианты чтобы вывести html вместо надписи "руб."
Форум ReadyScript Вопросы по созданию тем оформления Вывод знака рубля
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте!
У меня в шаблоне знак рубля выводиться из fonts awesome, вот так <i class="fa fa-rub"></i>
В админке я не могу так прописать "символ". Какие есть варианты чтобы вывести html вместо надписи "руб."
Ну на данный момент там длинна поля не позволяет вставить такой код. Вы можете внести предложение у нас в helpdesk.readyscript.ru с увеличением этого поля.
А пока есть 2 решения проблемы.
1 Вариант:
Перегрузить шаблоны и прописать Вам вывод рубля.
2 Вариант (Ленивый):
Оставить в настройках руб. . А в JS просто сделать при подгрузке страницы подмену руб. на Ваш код. Для всплывающих окон срабатывает событие new-content, т.е. на него тоже можно подвеситься.
Да, сделал первым вариантом. Проблема возникла пока что только с корзиной, там вывожу сумму вот так {$cart_info.total_unformatted|number_format:0:" ":" "}, но при обновлении корзины все равно данные приходят вместе с валютой и добавляется опять "руб."
Да, сделал первым вариантом. Проблема возникла пока что только с корзиной, там вывожу сумму вот так {$cart_info.total_unformatted|number_format:0:" ":" "}
У нас есть модификатор format_price, он сделает всё необходимое с ценой. Например:
{$cart_info.total_unformatted|format_price}
Что касается корзины при обновлении то там передаются и не форматированные данные в json который возвращается при манипуляции с товарами. Сам код находится в js папке с Вашей темой в common.js.
Функция updateCartBlock.
Там при можно поменять вывод и при помощи console.log посмотреть, что приходит в serverData.
И ещё момент с оформлением заказа. Там будет переменная $cart_data, которая тоже будет с уже отформатированными данными. Она либо назначается в шаблон сразу, либо при помощи метода в объекте заказа getCartData.
Для того, чтобы получить не форматированные данные, можно либо переназначить переменную:
{$cart_data=$order->getCart()->getCartData(false, false)} {* false означает сделать неформатированными данные *}
Либо указать у этого метода false, false, если он в шаблоне присутствует.
Да, сделал первым вариантом. Проблема возникла пока что только с корзиной, там вывожу сумму вот так {$cart_info.total_unformatted|number_format:0:" ":" "}
У нас есть модификатор format_price, он сделает всё необходимое с ценой. Например:
{$cart_info.total_unformatted|format_price}
Что касается корзины при обновлении то там передаются и не форматированные данные в json который возвращается при манипуляции с товарами. Сам код находится в js папке с Вашей темой в common.js.
Функция updateCartBlock.
Там при можно поменять вывод и при помощи console.log посмотреть, что приходит в serverData.
В serverData.cart приходит форматированное значение с "руб." и не форматированное без "руб.", в итоге подставил не форматированное значение
$(data.options.cartTotalPrice, $this).text(serverData.cart.total_unformated);
но т.к. оно не форматированное, то выводиться без отделения тысяч. В js честно сказать не очень, может подскажете как отформатировать вывод?
2 Вариант (Ленивый):
Оставить в настройках руб. . А в JS просто сделать при подгрузке страницы подмену руб. на Ваш код. Для всплывающих окон срабатывает событие new-content, т.е. на него тоже можно подвеситься.
Такой вариант наверное проще, но есть вероятность что замениться не там где это надо.
В общем в итоге надо выводить вот так, чтобы без значений валюты и отформатированое число было:
$(data.options.cartTotalPrice, $this).text(String(serverData.cart.total_unformated).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));
Я думаю будет лучше так
.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1 ');
Я думаю будет лучше так
.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1 ');
Только он так еще копейки выводит, а мне они не нужны.
toFixed - приводит к числу с плавающей точкой. Первый аргумент это количество чисел после запятой
https://developer.mozilla.org/ru/docs/W … er/toFixed
.toFixed().replace(/(\d)(?=(\d{3})+\.)/g, '$1 ');
Тада!
И ещё момент с оформлением заказа. Там будет переменная $cart_data, которая тоже будет с уже отформатированными данными. Она либо назначается в шаблон сразу, либо при помощи метода в объекте заказа getCartData.
Для того, чтобы получить не форматированные данные, можно либо переназначить переменную:{$cart_data=$order->getCart()->getCartData(false, false)} {* false означает сделать неформатированными данные *}
Либо указать у этого метода false, false, если он в шаблоне присутствует.
А в шаблоне cartpage.tpl как переопределить переменную $cart_data?
Там доступна переменная $cart, которая содержит объект корзины. Соответственно так:
{$cart_data=$cart->getCartData(false, false)}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум ReadyScript Вопросы по созданию тем оформления Вывод знака рубля