pechkin 1 Жалоба Опубликовано: March 16, 2015 Цена на сайте отображается в рублях и в $ т.д. Как сделать отображение только в рублях, даже если человек указал в $. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: March 16, 2015 1. В приложении валюта убрать не нужную валюту.2. В файлах выводах принудительно отключить cureid и прописать "руб" Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
pechkin 1 Жалоба Опубликовано: March 16, 2015 Так ведь не будет конвертации. Пример: человек указал 100$, вместо "100$", появляется 1500000руб Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: March 16, 2015 такого не реализовано.Надо дописывать, дёргать курс ЦБ или ставить свой Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: March 16, 2015 завтра напишу решение в копилку. 1 XTRO reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: March 16, 2015 уже сегодня Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: March 19, 2015 Таки не сегодня))) Немного теории. При включенном менеджере валют в сетке всегда доступно дополнительное значение для поля price. Называется оно price_ue и содержит в себе приведенное к валюте, обозначенной дефолтной в менеджере валют, значение.Если у вас дефолтным обозначено евро, то для всего что будет выбрано сеткой в price_ue будет лежать приведенная цена в евро. Это не скорую руку. На не скорую руку:1. Для начала необходимо загнать в шаблон валюты и их курсы. Делается это в контроллере шаблонов (/template/frontend/шаблон/main/main.php). Логично сделать это максимально повыше в main(), где-то сразу после global $__site_title, $folder, $smarty;if(!isset($_SESSION['site_cache']['courses'])){$DBC=DBC::getInstance();$query='SELECT * FROM '.DB_PREFIX.'_currency';$stmt=$DBC->query($query);if($stmt){while($ar=$DBC->fetch($stmt)){$courses[$ar['currency_id']]=$ar;}}$_SESSION['site_cache']['courses']=$courses;}$this->template->assign('_courses', $_SESSION['site_cache']['courses']);Можно обойтись и без сохранения в сессию, а предусмотреть другой вариант, например создавать готовый файл с php-массивом и при наличии оного просто инклудить. Но это уже тонкости. Главное, что количество запросов на получение списка валют мы снизим. 2. Теперь в шаблоне у нас есть массив валют-курсов доступный в {$_courses} и предоставляющий доступ к валюте по ее ид. Запросив {$_courses[4]} мы получим данные валюты с ид=4. 3. Как пользоваться.{if (int)$grid_items[i].price!=0}{foreach from=$_courses item=_course}<br>{$_course.code}: {(($grid_items[i].price*$_courses[$grid_items[i].currency_id].course)/($_course.course))|number_format:0:",":" "}{/foreach}{/if}Данный кусочек проверяет не нулевое ли значение цены и потом проходится по массиву валют, выводя цену объекта во всех зарегистрированных валютах сайта. Если нужно выдать в какой-то конкретной валюте (c ид=4 например) и она не является дефолтной{if (int)$grid_items[i].price!=0}{(($grid_items[i].price*$_courses[$grid_items[i].currency_id].course)/($_courses[4].course))|number_format:0:",":" "}{/if}4. В карточке все абсолютно аналогично, за исключением того, что значения currency_id и price необходимо получать как currency_id.value и price.value ({$data.currency_id.value}, {$data.price.value}) того, что понятия приведенной цены и самой price_ue в данных в карточке не существует. Все остальные процедуры одинаковы. 2 Chernetskiy и XTRO reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
pechkin 1 Жалоба Опубликовано: March 22, 2015 Не отображается сконвертированная стоимость при нажатии на маркер Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: March 22, 2015 Потому что ее там никто не вывел скорее всего) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
pechkin 1 Жалоба Опубликовано: March 22, 2015 {$realty.price|number_format:0:",":" "} эта команда не выводит Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: March 22, 2015 Какой шаблон и маркеры на какой карте? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
pechkin 1 Жалоба Опубликовано: March 22, 2015 шаблон Realia, карта Google Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chernetskiy 469 Жалоба Опубликовано: April 3, 2015 Таки не сегодня))) Немного теории. При включенном менеджере валют в сетке всегда доступно дополнительное значение для поля price. Называется оно price_ue и содержит в себе приведенное к валюте, обозначенной дефолтной в менеджере валют, значение.Если у вас дефолтным обозначено евро, то для всего что будет выбрано сеткой в price_ue будет лежать приведенная цена в евро. Это не скорую руку... Написано грамотно, но ни х*я не понял... Константин, скажи проще, в результате вышеописанных танцев с бубном будет рядом с ценой в зверобаксах стоять цена в рублях - пересчитанная исходя из курсов в Менеджере валют? Смысл в том, что первоочередной ценой будет цена, указанная продавцом (она может быть в валюте а курс к рублю редактировать каждый день не интересно). Соответственно, ориентироваться при покупке надо именно на эту цену, а по соседству с ней, для удобства, желательно иметь цену в рублях, но она может немного отклоняться от текущего курса и показывается ориентировочно а не в качестве конечной цены, т.к. всё относительно - обменный курс, комиссия за перевод, доп.услуги за рубежом и т.п., что в итоге изменит рублёвую цену на неопеределенное значение. 1 Helenblondi reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 3, 2015 Да.http://inostrannik.ru/r-estate/Вот на этом сайте как раз сделан вывод цены во всех валютах, которые зарегистрированы в Менеджере валют. Чуть изменить код и можно будет выводить только в одной. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chernetskiy 469 Жалоба Опубликовано: April 19, 2015 (изменено) написал не в тему... Перенес сюда Изменено April 19, 2015 пользователем Игорь Иваныч Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Kongrig 0 Жалоба Опубликовано: July 28, 2015 Да.http://inostrannik.ru/r-estate/Вот на этом сайте как раз сделан вывод цены во всех валютах, которые зарегистрированы в Менеджере валют. Чуть изменить код и можно будет выводить только в одной.Или я дурак... или лыжи не едут... ничего не понял... может кто-нить объяснит простым языком как этого добиться??? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: July 28, 2015 Или я дурак... или лыжи не едут... ничего не понял... может кто-нить объяснит простым языком как этого добиться???Если как тут объяснено не помогаетhttp://www.etown.ru/s/topic/1742-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82/#entry18682Тогда пишите в раздел фриланс, там вам сделают. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Helenblondi 29 Жалоба Опубликовано: November 9, 2016 В 19.03.2015 в 14:47, abushyk сказал: Таки не сегодня))) Немного теории. При включенном менеджере валют в сетке всегда доступно дополнительное значение для поля price. Называется оно price_ue и содержит в себе приведенное к валюте, обозначенной дефолтной в менеджере валют, значение. Если у вас дефолтным обозначено евро, то для всего что будет выбрано сеткой в price_ue будет лежать приведенная цена в евро. Это не скорую руку. На не скорую руку: 1. Для начала необходимо загнать в шаблон валюты и их курсы. Делается это в контроллере шаблонов (/template/frontend/шаблон/main/main.php). Логично сделать это максимально повыше в main(), где-то сразу после global $__site_title, $folder, $smarty; if(!isset($_SESSION['site_cache']['courses'])){$DBC=DBC::getInstance();$query='SELECT * FROM '.DB_PREFIX.'_currency';$stmt=$DBC->query($query);if($stmt){while($ar=$DBC->fetch($stmt)){$courses[$ar['currency_id']]=$ar;}}$_SESSION['site_cache']['courses']=$courses;}$this->template->assign('_courses', $_SESSION['site_cache']['courses']); Можно обойтись и без сохранения в сессию, а предусмотреть другой вариант, например создавать готовый файл с php-массивом и при наличии оного просто инклудить. Но это уже тонкости. Главное, что количество запросов на получение списка валют мы снизим. 2. Теперь в шаблоне у нас есть массив валют-курсов доступный в {$_courses} и предоставляющий доступ к валюте по ее ид. Запросив {$_courses[4]} мы получим данные валюты с ид=4. 3. Как пользоваться. {if (int)$grid_items[i].price!=0}{foreach from=$_courses item=_course}<br>{$_course.code}: {(($grid_items[i].price*$_courses[$grid_items[i].currency_id].course)/($_course.course))|number_format:0:",":" "}{/foreach}{/if} Данный кусочек проверяет не нулевое ли значение цены и потом проходится по массиву валют, выводя цену объекта во всех зарегистрированных валютах сайта. Если нужно выдать в какой-то конкретной валюте (c ид=4 например) и она не является дефолтной {if (int)$grid_items[i].price!=0}{(($grid_items[i].price*$_courses[$grid_items[i].currency_id].course)/($_courses[4].course))|number_format:0:",":" "}{/if} 4. В карточке все абсолютно аналогично, за исключением того, что значения currency_id и price необходимо получать как currency_id.value и price.value ({$data.currency_id.value}, {$data.price.value}) того, что понятия приведенной цены и самой price_ue в данных в карточке не существует. Все остальные процедуры одинаковы. Константин я вот читаю уже 20 раз. Подскажите пожалуйста. я сделала вот эти валюты в менеджере валют: http://joxi.ru/V2VDglWs0g5Xkr дальше мне какой код нужно прописать чтобы они на сайт выводились только не все сразу а переключались Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах