ABSORBER Опубликовано 10 марта, 2017 Жалоба Поделиться Опубликовано 10 марта, 2017 За основу взял код от сюда Что делает? Проверяет если валюта на сайте нац. банка поменялась, обновляет её в системе. Для запуска Cron/задания по расписанию ищите соответствующий раздел в панели управления хостингом.Пример запуска через cron.sh #!/bin/bash wget --output-document=/dev/null http://you-site.ru/cron.php?key=wQF4zu57Mc9K5rk1SnybPC7ukZd 2>&1 Сам код. <?php require_once('api/Simpla.php'); $simpla = new Simpla(); /* * Обновление курса валют по расписанию * http://forum.simplacms.ru/topic/2033-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D1%83%D1%80%D1%81%D0%B0-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82-%D0%BF%D0%BE-%D0%BA%D1%83%D1%80%D1%81%D1%83-%D0%BD%D0%B0%D1%86-%D0%B1%D0%B0%D0%BD%D0%BA%D0%B0-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2/ */ class ExchangeRatesCBRF { var $rates; function __construct($date = null) //В PHP версии ниже 5 это метод объекта следует переименовать в ExchangeRatesCBRF { $client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL"); if (!isset($date)) $date = date("Y-m-d"); $curs = $client->GetCursOnDate(array("On_date" => $date)); $this->rates = new SimpleXMLElement($curs->GetCursOnDateResult->any); } function GetRate ($code) { //Этот метод получает в качестве параметра цифровой или буквенный код валюты и возвращает ее курс $code1 = (int)$code; if ($code1!=0) { $result = $this->rates->xpath('ValuteData/ValuteCursOnDate/Vcode[.='.$code.']/parent::*'); } else { $result = $this->rates->xpath('ValuteData/ValuteCursOnDate/VchCode[.="'.$code.'"]/parent::*'); } if (!$result) { return false; } else { $vc = (float)$result[0]->Vcurs; $vn = (int)$result[0]->Vnom; return ($vc/$vn); } } } // Делаем ключ для запуска крон, что бы каждый левый не запускал cron.php if($simpla->request->get('key') == 'wQF4zu57Mc9K5rk1SnybPC7ukZd') { $rates = new ExchangeRatesCBRF(); $currencies = $simpla->money->get_currencies(); $currency = $simpla->money->get_currency(); foreach($currencies as $cu) { if($cu->id != $currency->id) { $value = $rates->GetRate($cu->code); // Обновляем валюту, если курс поменялся. if($cu->rate_to != $value) { $simpla->money->update_currency($cu->id, array('rate_to'=>$value)); } } } } ?> Автообновление курса валют.zip Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Полезная доработка. А как сделать чтобы курс доллара к гривне обновлялся, я запустил файл и курс обновился 1$ = 59.22 грн, при курсе в 27 в среднем Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Полезная доработка. А как сделать чтобы курс доллара к гривне обновлялся, я запустил файл и курс обновился 1$ = 59.22 грн, при курсе в 27 в среднемЭта доработка предназначена для рублевой валюты, гривны там и в помине нет. Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Эта доработка предназначена для рублевой валюты, гривны там и в помине нет.Понял, спасибо. Очень жаль. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Полезная доработка. А как сделать чтобы курс доллара к гривне обновлялся, я запустил файл и курс обновился 1$ = 59.22 грн, при курсе в 27 в среднем Это произошло оттого, что автор как следует не указал возможности разработки и способ применения. Предложенный способ работает правильно, только если основная валюта сайта - российский рубль. Иначе, как в цитированном случае, владелец сайта получит курсы и цены товаров самые неадекватные. Для такой ситуации эту доработку надо приспосабливать дополнительно, получая отдельно курсы двух означенных валют относительно рубля. Пожелание автору: переделать, что работало в произвольном случае по-настоящему автоматически. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Я считаю, что такого делать не стоит.Потому что обновлять курс гривны через Нацбанк России - как минимум глупо, а почему тогда не через Зимбабве? Или Молдову? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Для Украины можно поискать решения от местных банков, например:http://gavnokod.com/php-skript-dlya-polucheniya-kursov-valyut-s-privat-bank-api/ Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Для Украины можно поискать решения от местных банков, например:http://gavnokod.com/php-skript-dlya-polucheniya-kursov-valyut-s-privat-bank-api/Было бы очень круто сделать версию для России и для Украины Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 Ну, для этого нужно знать, что именно вы хотите - какой курс, какие валюты и т.д.В принципе - сделать можно.Если будет время - посмотрю Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 13 марта, 2017 Жалоба Поделиться Опубликовано 13 марта, 2017 (изменено) Ну, для этого нужно знать, что именно вы хотите - какой курс, какие валюты и т.д.В принципе - сделать можно.Если будет время - посмотрюВ принципе в Украине все закупки идут в долларах, очень редко в евро, поэтому 99% случаев это курс доллара к гривне и все Изменено 13 марта, 2017 пользователем Julius123 Цитата Ссылка на сообщение Поделиться на другие сайты
larenso Опубликовано 14 апреля, 2017 Жалоба Поделиться Опубликовано 14 апреля, 2017 Спасибо за модуль. Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 20 июля, 2017 Жалоба Поделиться Опубликовано 20 июля, 2017 Ну, для этого нужно знать, что именно вы хотите - какой курс, какие валюты и т.д.В принципе - сделать можно.Если будет время - посмотрюникакие новости по модулю для Украины не появились? Цитата Ссылка на сообщение Поделиться на другие сайты
jonny008 Опубликовано 23 марта, 2018 Жалоба Поделиться Опубликовано 23 марта, 2018 Не подскажите в чём ошибка : Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL' : failed to load external entity "http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL" in /var/www/html/123.ru/cron.php:14 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.