Vladimir_K

Вывод валюты в превью объявления и на странице самого объявления.

Recommended Posts

Подскажите как вывести валюту в цене объекта? Т.е. что бы было не 10 000, а 10 000 руб.

Нужно что-то где-то включить или это через .tpl настраивается?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Vladimir_K сказал:

Подскажите как вывести валюту в цене объекта? Т.е. что бы было не 10 000, а 10 000 руб.

Нужно что-то где-то включить или это через .tpl настраивается?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 hours ago, TopRaN said:

 

Всё равно как-то не понятно...

У меня шаблон Realia. В файле realty_grid_list.tpl есть вот такой код, который отвечает за вывод цены и валюты.

{if $grid_items[i].price_discount > 0}
<div class="price">
{$grid_items[i].price_discount|number_format:0:",":" "} {if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{/if}
<div class="price_discount_list">{$grid_items[i].price|number_format:0:",":" "} {if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{/if}</div>
</div><!-- /.price -->
{else}
<div class="price">{$grid_items[i].price|number_format:0:",":" "} {if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{/if}</div>
{/if}

Я не бог программирования, но судя по всему вот эта стройка:

{if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}

говорит нам что-то типа "если поле с типом валюты не пустое, то выводим валюту". Или я ошибаюсь?

Т.е. получается в самом шаблоне уже заложен вывод валюты и руками идти по всем .tpl файлам не нужно. Нужно просто настроить правильно через админ зону сайта.

У меня на данный момент настройки следующие:

Настройках->Общие Название валюты в личном кабинете (ue_name) - пробовал прописывать туда и "RUR" и "руб." и  "UAH" и "грн." - в объявления это не попадает. Ну по поводу гривны понятно. Её ещё нужно добавить в систему. Но это не суть. С рублём тоже ничего не выходит.

Включить поддержку выбора валют в объявлении (currency_enable) - пробовал и включать и отключать, результат - ноль. В форме подачи объявления выбор валют так и не появился.

В Приложениях->Менеджер валют список валют есть - рубль, доллар, евро.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 09.06.2017 в 17:57, Vladimir_K сказал:

Настройках->Общие Название валюты в личном кабинете (ue_name) 

Эта настройка ставит название валюты только в меню ЛК и форме пополнения счета

В 09.06.2017 в 17:57, Vladimir_K сказал:

Включить поддержку выбора валют в объявлении (currency_enable)

Поле в форме само больше не появляется. Если решено использовать валюты, то нужно самостоятельно добавить в модель data поле под валюту

https://www.sitebill.ru/s/topic/2235-выбор-валюты-на-сайте/?do=findComment&comment=23150

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 hours ago, abushyk said:

Да, помогло. Только вот вопрос сразу возник. Как это будет в фильтре работать (форме поиска)? Ведь у нас валют несколько, а там интервал задаётся.

Я к тому, что например 100$ это ~2 600грн или ~6 000руб. А человек задаёт интервал в фильтре, к примеру 1500-3000. Как фильтр будет искать в таком случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если в запросе не отправлен признак валюты по которой ищет, то цены будут обрабатываться по абсолютному значению. отправите "от 1000", то найдет и за 1200 дол. и за 1200 грн и за 1200 руб.

Что бі валюта учлась в запросе нужно отправлять параметр currency_id=N где N-идешка валюты в которой отправлены значения границы цены. Тогда сеточник поймает ее и все цены, перед сравнением, переведет в эту валюту и будет уже плясать правильно.

Если поиск производится в одной валюте, то можно просто добавить на форму

<input type="hidden" name="currency_id" value="N">

это будет скрытое поле, которое будет уходить в запрос без ведома юзера и передавать нужную идешку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
37 minutes ago, abushyk said:

если в запросе не отправлен признак валюты по которой ищет, то цены будут обрабатываться по абсолютному значению. отправите "от 1000", то найдет и за 1200 дол. и за 1200 грн и за 1200 руб.

Что бі валюта учлась в запросе нужно отправлять параметр currency_id=N где N-идешка валюты в которой отправлены значения границы цены. Тогда сеточник поймает ее и все цены, перед сравнением, переведет в эту валюту и будет уже плясать правильно.

Если поиск производится в одной валюте, то можно просто добавить на форму


<input type="hidden" name="currency_id" value="N">

это будет скрытое поле, которое будет уходить в запрос без ведома юзера и передавать нужную идешку.

Ну хорошо. А если, что бы сильно не морочить голову с допилами и настройками поступить следующим образом.

  1. В Общих настройках включаем "Включить поддержку выбора валют в объявлении (currency_enable)".
  2. В приложении "Менеджер валют" устанавливаем валюту по-умолчанию, например рубль или гривну.
  3. Добавляем в таблицу data новое поле currency_id с валютой, но делаем его неактивным. Т.е., что бы в форме подачи и редактирования объявления не это поле не выводилось и юзеры не могли выбирать валюту самостоятельно.

Будет ли такой вариант корректно работать, если у меня стоит задача просто вывода валюты в объявлении? Т.е., что бы глядя на объявления пользователь понимал, что такая-то квартира сдаётся за N грн (или руб., не важно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

неактивное поле - метртвое поле. с точки зрения кода его не существует. работать не будет. если валюта при введении объекта может указываться - поле должно быть явным и активным. если при вводе объявлений подразумевается только одна валюта, то поле в модели не нужно, но в шаблоне нужно прописать вывод обозначения валюты.

Например в шаблоне списка вместо

{if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{/if}

заваять

{if $grid_items[i].currency_name != ''}{$grid_items[i].currency_name}{else}{$LT_DEFAULT_CURRENCY_NAME}{/if}

и в файлы языковых переменных шаблона дописать

для ру
LT_DEFAULT_CURRENCY_NAME="грн"

для уа
LT_DEFAULT_CURRENCY_NAME="грн"

для en
LT_DEFAULT_CURRENCY_NAME="hrn"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я понял. Примерно понятно. Нужно покрутить. 

Кстати попробовал сделать так, как сам описал в предыдущем комментарии - не работает. Не работает в том, смысле, что если поле выбора валют в таблице data отключить, оно в форме подачи объявления всё равно не исчезает. Просто висит внизу, самым последним и является не обязательным. Так, что мой вариант не катит)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 minutes ago, Vladimir_K said:

Если поиск производится в одной валюте, то можно просто добавить на форму


<input type="hidden" name="currency_id" value="N">

это будет скрытое поле, которое будет уходить в запрос без ведома юзера и передавать нужную идешку.

А в каком смысле вы это имеете ввиду? Если указать в value="N" id рубля, то он будет искать только по тем, объявлениям где цены указаны в рублях, а объявления в долларах учитывать не будет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Vladimir_K сказал:

Просто висит внизу, самым последним и является не обязательным.

а, точно. я его ХОТЕЛ убить, но не убил. при включенном менеджере валют, оно "в помощь ленивым" само добавляется в форму. но при работе с "не формой" - например в карточке или списке, работа идет с моделью описанной в редакторе форм - а там поля это по факту нет, поэтому оно и обламывается при попытке вычислить валюту. хотя на форме все гут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, Vladimir_K сказал:

А в каком смысле вы это имеете ввиду? Если указать в value="N" id рубля, то он будет искать только по тем, объявлениям где цены указаны в рублях, а объявления в долларах учитывать не будет?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 minutes ago, abushyk said:

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

А, ну так такой вариант подходит. Получается, что на сайте будут две валюты, например - рубль и доллар. Рубль основной. И будут объявления с указанной ценой либо в рублях, либо в долларах. Но фильтр будет искать всё по рублёвому эквиваленту с автоконвертацией долларов в рубли. Я правильно понял?

Но в этом случае нужно правильно заполнить поля "Курс к у.е."  в "Менеджере валют". Вот тут тоже вопрос. получается, что в USD мы ставим "1", а в RUR "57" (условно говоря)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Vladimir_K сказал:

о в этом случае нужно правильно заполнить поля "Курс к у.е."  в "Менеджере валют". Вот тут тоже вопрос. получается, что в USD мы ставим "1", а в RUR "57" (условно говоря)?

там есть кнопка - Обновить по курсу ЦБ. вам нужно выбрать только одну валюту дефолтной - той, которая будет базисом при рассчете курсов при работе с данными ЦБ. остальное оно сделает само.

 

4 минуты назад, Vladimir_K сказал:

Но фильтр будет искать всё по рублёвому эквиваленту с автоконвертацией долларов в рубли

если передадите в запросе идешку рубля и одну или обе ценовые границы, то при выборке все цены, для которых указана валюта в данных объявления, будут приведенены к рублю и сравнены с переданными границами. при попадании в границы объекты будут отданы в шаблон а остальные пойдут лесом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 minutes ago, abushyk said:

там есть кнопка - Обновить по курсу ЦБ. вам нужно выбрать только одну валюту дефолтной - той, которая будет базисом при рассчете курсов при работе с данными ЦБ. остальное оно сделает само.

Да я это как-то так и понял. И кнопку такую нажимал. Но вот, что не пойму. У меня две валюты сейчас - рубль и доллар. Дефолтный - рубль. Нажимаем кнопочку "Обновить по курсу ЦБ". Курсы обновляются и мы видим - RUR - 1, USD - 57. Я может чего-то не понимаю? Должно же быть наоборот. Судя по тому, что я вижу у нас за 1 рубль дают 57$. 

???...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Vladimir_K сказал:

Да я это как-то так и понял. И кнопку такую нажимал. Но вот, что не пойму. У меня две валюты сейчас - рубль и доллар. Дефолтный - рубль. Нажимаем кнопочку "Обновить по курсу ЦБ". Курсы обновляются и мы видим - RUR - 1, USD - 57. Я может чего-то не понимаю? Должно же быть наоборот. Судя по тому, что я вижу у нас за 1 рубль дают 57$. 

???...

потому и говорю нажимать кнопку, а не пытаться понять)))

там обратные курсы. курс для валюты озеначает сколько "дефолтных" денег нужно дать за еденицу этой валюты. Поэтому за рупь - 1 "дефолную денежку, а за доллар - 57 дефолтных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, abushyk сказал:

потому и говорю нажимать кнопку, а не пытаться понять)))

это не курсы как в канторах. там обратные курсы. курс для валюты озеначает сколько "дефолтных" денег нужно дать за еденицу этой валюты. Поэтому за рупь - 1 "дефолную денежку, а за доллар - 57 дефолтных.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 minutes ago, abushyk said:

потому и говорю нажимать кнопку, а не пытаться понять)))

Я не привык нажимать кнопки не понимая, что произойдёт :)

8 minutes ago, abushyk said:

там обратные курсы. курс для валюты озеначает сколько "дефолтных" денег нужно дать за еденицу этой валюты. Поэтому за рупь - 1 "дефолную денежку, а за доллар - 57 дефолтных.

Теперь всё понятно. спасибо, что разжевали)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас