Страница 1 из 2
Курс валют - как передать значение из модуля в сущность
Добавлено: 04 окт 2021, 16:39
alcompstudio
Добрый день!
Есть такая структура
Валюты
- Курсы валют
Нужно связать встроенный модуль курса валют и эту "конструкцию" по автоматической фиксации нового курса по каждой валюте с определенной периодичностью (например, 1 раз в день). Ну само обновление курса в принципе настраивается по Крону у хостера на сервере. Может как-то на это событие поставить автоматическое создание записи с курсом в сущности Курсы валют под каждой соответствующей родительской записью Валюты ?
А еще бы лучше было бы забирать "обратные" курсы - т.е. не курс доллара к рублю, а курс рубля к доллару
Может кто-то уже внедрял такое/подобное решение?
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 04 окт 2021, 16:55
believe
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 04 окт 2021, 17:02
alcompstudio
Спасибо, интересная статейка, попробую этот способ.
Но вот хотелось бы использовать имеющийся модуль... он же есть в системе, но как-то не особо функционален... Хотелось бы его использовать в более "расширенном" виде).
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 04 окт 2021, 18:32
nruslan2
ну если немного поизвращаться можно поидеи решить проблему.
не уверен тока в моменте работы крона!!
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 05 окт 2021, 10:28
believe
Код: Выделить всё
$url = 'https://www.cbr.ru/scripts/XML_daily.asp';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$content = curl_exec($ch);
curl_close($ch);
$xml = @simplexml_load_string($content);
foreach ($xml->Valute as $item) {
// R01235 - Доллар США
if ($item['ID'] == 'R01235') {
$usd = $item->Value;
}
}
if (!empty($usd)) {
$usd = str_replace(',', '.', $usd);
}
echo $usd;
$form_field_value=$usd;
https://www.cbr.ru/scripts/XML_daily.asp - коды валют
Пример отсюда -
https://seolik.ru/blog/php-poluchenie-k ... obanka-111
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 05 окт 2021, 11:02
Develop-Soft
Ну или так:
JS:
Код: Выделить всё
$f_kurs = '579'; // id поля "курс"
$val = 'USD'; // требуемая валюта
echo '<script>'.
'$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(resp) { '.
' $("#fields_'.$f_kurs.'").val(resp.Valute["'.$val.'"].Value); '.
'});'.
'</script>';
PHP:
Код: Выделить всё
$val = 'USD'; // требуемая валюта
$resp = json_decode(file_get_contents('https://www.cbr-xml-daily.ru/daily_json.js'));
$form_field_value = $resp -> {"Valute"} -> {$val} -> {"Value"};
echo $form_field_value;

Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 05 окт 2021, 11:28
alcompstudio
О, спасибо за ответы, буду тестировать)
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 05 окт 2021, 11:37
Develop-Soft
И кстати:
alcompstudio писал(а): 04 окт 2021, 16:39
Ну само обновление курса в принципе настраивается по Крону у хостера на сервере.
В этом не вижу смысла, т.к. обновление может инициировать любой пользователь открывший страницу...
alcompstudio писал(а): 04 окт 2021, 16:39
А еще бы лучше было бы забирать "обратные" курсы - т.е. не курс доллара к рублю, а курс рубля к доллару
Арифметика же... 1/курс
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 05 окт 2021, 12:13
nruslan2
А не проще было обратиться к существующей базе данной и забрать оттуда значения, которые были получены через модуль)
А вообще шикарные коды!!
А вопрос отображения - это чистая математика!! что верно подмечено.
Re: Курс валют - как передать значение из модуля в сущность
Добавлено: 05 окт 2021, 12:16
Develop-Soft
nruslan2 писал(а): 05 окт 2021, 12:13
А не проще было обратиться к существующей базе данной и забрать оттуда значения, которые были получены через модуль)
Я не в курсе. У меня этого нет
(модуля, базы).