Как сделать 2 валюты на сайте?

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Как сделать 2 валюты на сайте?

Сообщение vanred79 » 24 мар 2014, 12:07

Добрый день Хруст!
Хотел попробовать свои силы в создании 2 валют на сайте, можете дать краткое направление как это можно реализовать на ОRE?
код парсера нашел в гугл куда его вставить даже не знаю :)

Код: Выделить всё
$file simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));

$valutes = array();

foreach (
$file AS $el){
    
$valutes[strval($el->CharCode)] = strval($el->Value);
}
print_r($valutes);


В результате имеем массив с валютамивыбирай какую хочешь)
Array
(
    [
AUD] => 31,8560
    
[AZN] => 40,9456
    
[GBP] => 50,2021
    
[AMD] => 86,7297
    
[BYR] => 57,6904
    
[BGN] => 22,3069
    
[BRL] => 17,6694
    
[HUF] => 15,0737
    
[DKK] => 58,6332
    
[USD] => 32,2201
    
[EUR] => 43,6357
    
[INR] => 65,5813
    
[KZT] => 21,8234
    
[CAD] => 31,4097
    
[KGS] => 71,4816
    
[CNY] => 50,3557
    
[LVL] => 61,4887
    
[LTL] => 12,6368
    
[MDL] => 26,9850
    
[NOK] => 56,0057
    
[PLN] => 99,3313
    
[RON] => 10,1433
    
[XDR] => 50,3017
    
[SGD] => 25,0467
    
[TJS] => 67,5871
    
[TRY] => 17,4059
    
[TMT] => 11,3291
    
[UZS] => 18,4473
    
[UAH] => 40,2786
    
[CZK] => 17,7199
    
[SEK] => 47,3456
    
[CHF] => 35,7247
    
[ZAR] => 40,5218
    
[KRW] => 27,4214
    
[JPY] => 42,1701
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как сделать 2 валюты на сайте?

Сообщение Xpycm » 24 мар 2014, 12:42

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

1) Необходимо только при просмотре объявления отображать цену ещё в другой валюте.
Например: цена в рублях. Нужно отобразить в долларах. В базе цены в рублях. Спарсили курс. Умножили цену в рублях на курс. Вывели результат умножения.

2) Необходимо переключение валют. Можете посмотреть как это реализовано в http://www.yiiframework.ru/forum/viewto ... =14&t=7712
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Как сделать 2 валюты на сайте?

Сообщение vanred79 » 24 мар 2014, 12:54

Xpycm писал(а):Весь функционал мультивалютность на сайте расписывать не буду. Масштаб изменений только для платной доработки. Если очень коротко:

1) Необходимо только при просмотре объявления отображать цену ещё в другой валюте.
Например: цена в рублях. Нужно отобразить в долларах. В базе цены в рублях. Спарсили курс. Умножили цену в рублях на курс. Вывели результат умножения.

2) Необходимо переключение валют. Можете посмотреть как это реализовано в http://www.yiiframework.ru/forum/viewto ... =14&t=7712



в 1) варианте парсер надо в protected/modules/views/_views.php вставлять?
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как сделать 2 валюты на сайте?

Сообщение Xpycm » 24 мар 2014, 12:58

Я бы добавил в BeginRequest с проверкой на прошествие суток. Т.е чтобы парсилось 1 раз в день.
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Как сделать 2 валюты на сайте?

Сообщение vanred79 » 24 мар 2014, 15:56

Добрый вечер !

Вроде немного разобрался, но при перезагрузке селектор все время в евро возвращается, если не трудно подскажите где косяк в коде *WALL*

$currency = !empty($_GET['currency'])?$_GET['currency']:NULL;



switch($currency)
{
case 'euro':
$currency=1;
break;

case 'dollar':
$currency=2;
break;

case 'pound':
$currency=3;
break;

default:
echo 'Введите сумму';
}



?>


<form action="" method="get" id="foobar">
<select name="currency" onchange="document.getElementById('foobar').submit()">
<option value="euro">euro</option>
<option value="dollar">dollar</option>
<option value="pound">pound</option>
</select>

</form>
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как сделать 2 валюты на сайте?

Сообщение Xpycm » 24 мар 2014, 16:36

В сторону аттрибута "selected" - http://www.w3schools.com/tags/att_option_selected.asp
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Как сделать 2 валюты на сайте?

Сообщение vanred79 » 24 мар 2014, 18:25

а как сделать чтобы значения переменной, например, $currency, которые меняются в protected\views\layouts\main.php учитывались в файле widgetApartments_list_item.php
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как сделать 2 валюты на сайте?

Сообщение Xpycm » 26 мар 2014, 06:59

Посмотрите как сделано в protected/quicksearch/controllers/MainController.php.

Вверху файла объявлены свойства:
Код: Выделить всё
...
public 
$price;
...
public 
$apType;
... 


В методе mainSearch значения из $_GET "записываются" в соответствующие свойства ( $this->apType = ... )

Затем в представлениях возможно получить текущие значения.

Вы можете поступить проще: сразу в $_GET проверять наличие currency и его значения:
Код: Выделить всё
$valCur = (isset($_GET['currency']) && $_GET['currency']) ? $_GET['currency'] : 'ничего нет'
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

cron