Страница 1 из 1

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

СообщениеДобавлено: 24 мар 2014, 12:07
vanred79
Добрый день Хруст!
Хотел попробовать свои силы в создании 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

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

СообщениеДобавлено: 24 мар 2014, 12:42
Xpycm
Весь функционал мультивалютность на сайте расписывать не буду. Масштаб изменений только для платной доработки. Если очень коротко:

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

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

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

СообщениеДобавлено: 24 мар 2014, 12:54
vanred79
Xpycm писал(а):Весь функционал мультивалютность на сайте расписывать не буду. Масштаб изменений только для платной доработки. Если очень коротко:

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

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



в 1) варианте парсер надо в protected/modules/views/_views.php вставлять?

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

СообщениеДобавлено: 24 мар 2014, 12:58
Xpycm
Я бы добавил в BeginRequest с проверкой на прошествие суток. Т.е чтобы парсилось 1 раз в день.

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

СообщениеДобавлено: 24 мар 2014, 15:56
vanred79
Добрый вечер !

Вроде немного разобрался, но при перезагрузке селектор все время в евро возвращается, если не трудно подскажите где косяк в коде *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>

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

СообщениеДобавлено: 24 мар 2014, 16:36
Xpycm
В сторону аттрибута "selected" - http://www.w3schools.com/tags/att_option_selected.asp

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

СообщениеДобавлено: 24 мар 2014, 18:25
vanred79
а как сделать чтобы значения переменной, например, $currency, которые меняются в protected\views\layouts\main.php учитывались в файле widgetApartments_list_item.php

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

СообщениеДобавлено: 26 мар 2014, 06:59
Xpycm
Посмотрите как сделано в protected/quicksearch/controllers/MainController.php.

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


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

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

Вы можете поступить проще: сразу в $_GET проверять наличие currency и его значения:
Код: Выделить всё
$valCur = (isset($_GET['currency']) && $_GET['currency']) ? $_GET['currency'] : 'ничего нет'