[Модуль] Курс валют (ExchangeRates)
Модератор: immortal
- adzam
- Сообщения: 602
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
- Благодарил (а): 20 раз
- Поблагодарили: 138 раз
Re: [Модуль] Курс валют (ExchangeRates)
А Вы сможете добавить сами, я был бы очень признателен, думаю многим это пригодится или скажите в какие файлы вносить изменения.
Мне не нужно чтоб все добавленное появлялось в настройках , просто чтоб появилось в свойствах обьекта.
Мне не нужно чтоб все добавленное появлялось в настройках , просто чтоб появилось в свойствах обьекта.
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
- adzam
- Сообщения: 602
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
- Благодарил (а): 20 раз
- Поблагодарили: 138 раз
Re: [Модуль] Курс валют (ExchangeRates)
Спасибо всем за ответ, разобрался.
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: [Модуль] Курс валют (ExchangeRates)
если разобрались и всё работает делайте пул реквест вот сюда со своими изменениями https://github.com/Gelezako/MajorDomo-ExchangeRates
так всё сообщество Мажордомо сможет воспользоваться вашими наработками
так всё сообщество Мажордомо сможет воспользоваться вашими наработками
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- adzam
- Сообщения: 602
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
- Благодарил (а): 20 раз
- Поблагодарили: 138 раз
Re: [Модуль] Курс валют (ExchangeRates)
Да нет не доразобрался.
То глючит то грузится.
Прошу помощи у знатоков.
Сначало добавил парсинг валюты на вчера:
Затем получаем курс на вчера вот так :
Подправьте, пожалуйста,ведь я не профи а только изучаю помалехо.
То глючит то грузится.
Прошу помощи у знатоков.
Сначало добавил парсинг валюты на вчера:
СпойлерПоказать
//Начало парсинга ЦБР на вчера
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date('d.m.Y', strtotime('yesterday')));
if (false === $file) {
//throw new Exception("Cannot load xml source.\n");
Debmes("Не удалось обновить курс валют3");
$out["notification2"]="<#LANG_ER_APP_NOTIF2#>";
sg("exchange_rate.dollarrurold","");
sg("exchange_rate.eurorurold","");
}
else if($file) {
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg("exchange_rate.dollarrurold",round((float)$dollar,4));
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg("exchange_rate.eurorurold",round((float)$euro,4));
}
//Конец парсинга ЦБР на вчера
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date('d.m.Y', strtotime('yesterday')));
if (false === $file) {
//throw new Exception("Cannot load xml source.\n");
Debmes("Не удалось обновить курс валют3");
$out["notification2"]="<#LANG_ER_APP_NOTIF2#>";
sg("exchange_rate.dollarrurold","");
sg("exchange_rate.eurorurold","");
}
else if($file) {
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg("exchange_rate.dollarrurold",round((float)$dollar,4));
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg("exchange_rate.eurorurold",round((float)$euro,4));
}
//Конец парсинга ЦБР на вчера
СпойлерПоказать
// Начало парсинга хмл банка России на вчера
global $dollarrurold,$eurorurold;
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date('d.m.Y', strtotime('yesterday')));
if (!$file) {
$out["notification2"]="<#LANG_ER_APP_NOTIF2#>";
sg("exchange_rate.dollarrurold","");
sg("exchange_rate.eurorurold","");
Debmes("Не удалось обновить курс валют10");
}
else if (false === $file) {
$out["notification2"]="<#LANG_ER_APP_NOTIF2#>";
sg("exchange_rate.dollarrurold","");
Debmes("Не удалось обновить курс валют11");
}
else{
if(isset($dollarrurold)){
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg("exchange_rate.dollarrurold",round((float)$dollar,4));
$out["dollarrurold"]=round((float)$dollar,4);
$dolold=round((float)$dollar,4);
}
if(isset($eurorurold)){
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg("exchange_rate.eurorurold",round((float)$euro,4));
$out["eurorurold"]=round((float)$euro,4);
$eurold=round((float)$euro,4);
$deltadol = abs($dol-$dolold); // определяем разницу в долларе за сутки
sg("exchange_rate.deltadol",$deltadol); //сохраняем величину изменения курса доллара
$deltaeur = abs($eur-$eurold); // определяем разницу в евро за сутки
sg("exchange_rate.deltaeur",$deltaeur); //сохраняем величину изменения курса евро
if ($eur > $eurold){ //определяем направление изменения курса евро
$roste='1';
}elseif ($eur < $eurold){
$roste='2';
}else {
$roste='0';
}
sg("exchange_rate.rosteur",$roste); //сохраняем направление изменения курса евро
if ($dol > $dolold){ //определяем направление изменения курса доллара
$rostd='1';
}elseif ($dol < $dolold){
$rostd='2';
}else{
$rostd='0';
}
sg("exchange_rate.rostdol",$rostd); //сохраняем направление изменения курса доллара
}
}
libxml_clear_errors();
libxml_use_internal_errors($use_errors);
global $dollarrurold,$eurorurold;
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date('d.m.Y', strtotime('yesterday')));
if (!$file) {
$out["notification2"]="<#LANG_ER_APP_NOTIF2#>";
sg("exchange_rate.dollarrurold","");
sg("exchange_rate.eurorurold","");
Debmes("Не удалось обновить курс валют10");
}
else if (false === $file) {
$out["notification2"]="<#LANG_ER_APP_NOTIF2#>";
sg("exchange_rate.dollarrurold","");
Debmes("Не удалось обновить курс валют11");
}
else{
if(isset($dollarrurold)){
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg("exchange_rate.dollarrurold",round((float)$dollar,4));
$out["dollarrurold"]=round((float)$dollar,4);
$dolold=round((float)$dollar,4);
}
if(isset($eurorurold)){
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg("exchange_rate.eurorurold",round((float)$euro,4));
$out["eurorurold"]=round((float)$euro,4);
$eurold=round((float)$euro,4);
$deltadol = abs($dol-$dolold); // определяем разницу в долларе за сутки
sg("exchange_rate.deltadol",$deltadol); //сохраняем величину изменения курса доллара
$deltaeur = abs($eur-$eurold); // определяем разницу в евро за сутки
sg("exchange_rate.deltaeur",$deltaeur); //сохраняем величину изменения курса евро
if ($eur > $eurold){ //определяем направление изменения курса евро
$roste='1';
}elseif ($eur < $eurold){
$roste='2';
}else {
$roste='0';
}
sg("exchange_rate.rosteur",$roste); //сохраняем направление изменения курса евро
if ($dol > $dolold){ //определяем направление изменения курса доллара
$rostd='1';
}elseif ($dol < $dolold){
$rostd='2';
}else{
$rostd='0';
}
sg("exchange_rate.rostdol",$rostd); //сохраняем направление изменения курса доллара
}
}
libxml_clear_errors();
libxml_use_internal_errors($use_errors);
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: [Модуль] Курс валют (ExchangeRates)
У меня так:
СпойлерПоказать
Код: Выделить всё
$data=date("d/m/Y");
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$data);
sg("cbr.uptime", $data); // кидаем сегодняшнюю дату
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg('cbr.dollar', $dollar);
$dollar = substr($dollar,0,-2);
$dollar1 = $dollar;
$format='mini';
$dollar = priceToRublesAndKopeck($dollar, $format);
sg("cbr.USD", $dollar); //кидаем курс доллара
$format='full';
$dollar1 = priceToRublesAndKopeck($dollar1, $format);
sg("cbr.USD_full", $dollar1); //кидаем курс доллара для алисы
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg('cbr.evrik', $euro);
$euro = substr($euro,0,-2);
$euro1 = $euro;
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO",$euro); //кидаем курс евро
$format='full';
$euro1 = priceToRublesAndKopeck($euro1, $format);
sg("cbr.EURO_full", $euro1); //кидаем курс евро для алисы
// Получаем курс на завтра
$data1 = strtotime("+1 day");
$data1 = date("d/m/Y", $data1);
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$data1);
sg("cbr.uptime1", $data1); //кидаем завтрашнюю дату
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$dollar = str_replace(",",".",$valute);
sg('cbr.dollar_zavtra',$dollar);
$dollar = substr($dollar,0,-2);
$format='mini';
$dollar = priceToRublesAndKopeck($dollar, $format);
sg("cbr.USD1", $dollar); //кидаем курс доллара на завтра
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$euro = str_replace(",",".",$valute);
sg('cbr.evrik_zavtra',$euro);
$euro = substr($euro,0,-2);
$format='mini';
$euro = priceToRublesAndKopeck($euro, $format);
sg("cbr.EURO1",$euro); //кидаем курс евро на завтра
$raz_euro = (gg('cbr.evrik_zavtra')-gg('cbr.evrik'));
$raz_dollar = (gg('cbr.dollar_zavtra')-gg('cbr.dollar'));
if (stristr($raz_dollar,'-') === FALSE) {$raz_dollar = '+'.$raz_dollar;}
if (stristr($raz_euro,'-') === FALSE) {$raz_euro = '+'.$raz_euro;}
$raz_dollar = substr($raz_dollar,0,5);
$raz_euro = substr($raz_euro,0,5);
sg('cbr.raz_dollar',$raz_dollar);//Разница курса dollar
sg('cbr.raz_euro',$raz_euro);//Разница курса euro
function priceToRublesAndKopeck($price, $format) {
if ($format == 'mini') {
$rub_u = " р."; $kop_u = " к.";
}
if ($format == 'medium') {
$rub_u = " руб."; $kop_u = " коп.";
}
if ($format == 'full') {
$rub_u = " рублей"; $kop_u = " копеек";
}
if ($price != 0) {
$point = strpos($price, '.');
// Отделяем рубли от копеек
if ( !empty($point) ) {
$rub = substr($price, 0, $point);
$kop = substr($price, $point + 1);
}
// Формируем строку
if ($rub == 0) $result = $kop.$kop_u;
else $result = $rub.$rub_u." ".$kop.$kop_u;
// Возвращаем результат
return $result;
}
else {
$result = "0".$rub_u." 0".$kop_u;
return $result;
}}
- Рейтинг: 2.33%
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
- adzam
- Сообщения: 602
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
- Благодарил (а): 20 раз
- Поблагодарили: 138 раз
Re: [Модуль] Курс валют (ExchangeRates)
Спасибо, просто, надежно и со вкусом.
Добавил от себя направление изменения.
Добавил от себя направление изменения.
- Рейтинг: 1.16%
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: [Модуль] Курс валют (ExchangeRates)
Я всегда всё сам пишу, чтобы удобнее было.. Чужих модулей практически не использую. Когда люди спрашивают, отвечаю с душой. Мой канал в подписи.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
- adzam
- Сообщения: 602
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
- Благодарил (а): 20 раз
- Поблагодарили: 138 раз
Re: [Модуль] Курс валют (ExchangeRates)
А запускать лучше скриптом или cronom?
В крон ведь можно вставить скрипт и пускай запускает по времени.
В крон ведь можно вставить скрипт и пускай запускает по времени.
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: [Модуль] Курс валют (ExchangeRates)
Я на cron повесил. На системный.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
-
- Сообщения: 2087
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: [Модуль] Курс валют (ExchangeRates)
В коннекте как год выложен и пример и шаблон, для просто и со вкусом
- Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо