Сообщение #1 toxxxa » 24.05.2016, 22:43
Здравствуйте.
У меня, думаю, вполне типовая проблема, но решаю я её наверное уж очень ректально. Задача стоит хранить цены в бд в евро, а выводить пользователю по-умолчанию только в гривне, без возможности переключения валют.
Решаю так: настроил две валюты. Основная - EUR и вторая - UAH. Евро в админке стоит первой, но отключённой, чтобы единственной видимой пользователю валютой осталась в гривна. Хочу в связи с этим победить виджет аяксового фильтра по цене в шаблоне features.tpl, он оперирует в данном случае ценой не в гривне (из сессии) а основной в евро.
Как изменить сам слайдер я понял (добавил модификаторы |convert|strip:''):
Код: Выделить всё
<input ...
value="{$prices->current->min|default:$prices->range->min|convert|strip:''}"
data-price="{$prices->range->min|convert|strip:''}"
...>
<input ...
value="{$prices->current->max|default:$prices->range->max|convert|strip:''}"
data-price="{$prices->range->max|convert|strip:''}"
...>
Сам слайдер работает, но товары ищет неправильно. Я конечно разобрался, почему: currency_id в сессии совпадает с id первой доступной валюты $first_currency, поэтому при формировании запроса к БД в Products.php не включается коэфициент перевода валюты. Да и $prices->range по той же причине неправильный, и может еще что, я дальше не ковырял.
Логичным решением я думаю было бы еще в <input data-price> делать обратную конвертацию, но тут вот самое смешное: я не смог найти, где прописана функция модификатора convert для smarty чтобы добавить функционал |convert:EUR :)))
Поэтому просьба, подскажите где лежит этот |convert, я его сам поковыряю, или подскажите другое, более элегантное решение.
Спасибо-пожалуйста.
Здравствуйте.
У меня, думаю, вполне типовая проблема, но решаю я её наверное уж очень ректально. Задача стоит хранить цены в бд в евро, а выводить пользователю по-умолчанию только в гривне, без возможности переключения валют.
Решаю так: настроил две валюты. Основная - EUR и вторая - UAH. Евро в админке стоит первой, но отключённой, чтобы единственной видимой пользователю валютой осталась в гривна. Хочу в связи с этим победить виджет аяксового фильтра по цене в шаблоне features.tpl, он оперирует в данном случае ценой не в гривне (из сессии) а основной в евро.
Как изменить сам слайдер я понял (добавил модификаторы |convert|strip:''):
[code]
<input ...
value="{$prices->current->min|default:$prices->range->min|convert|strip:''}"
data-price="{$prices->range->min|convert|strip:''}"
...>
<input ...
value="{$prices->current->max|default:$prices->range->max|convert|strip:''}"
data-price="{$prices->range->max|convert|strip:''}"
...>
[/code]
Сам слайдер работает, но товары ищет неправильно. Я конечно разобрался, почему: currency_id в сессии совпадает с id первой доступной валюты $first_currency, поэтому при формировании запроса к БД в Products.php не включается коэфициент перевода валюты. Да и $prices->range по той же причине неправильный, и может еще что, я дальше не ковырял.
Логичным решением я думаю было бы еще в <input data-price> делать обратную конвертацию, но тут вот самое смешное: я не смог найти, где прописана функция модификатора convert для smarty чтобы добавить функционал |convert:EUR :)))
Поэтому просьба, подскажите где лежит этот |convert, я его сам поковыряю, или подскажите другое, более элегантное решение.
Спасибо-пожалуйста.
Онлайн-калькуляторы для типографий и РА: http://calc.in.ua