Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Курсы валют

00 голосов
4
Здравствуйте.

1) Скажите, пожалуйста, можно ли сделать так чтобы курсы валют автоматически каждый день обновлялись с сайта центробанка?

Я так понял сейчас там такая ситуация. Если есть курс на текущий день(то есть кто-то должен зайти в настройки и сам запросить курс), то выводится он, если нет, то выводится значение по умолчанию.

2) как можно выяснить имя этой переменной с курсом. То есть как к ней обратиться в пхп файле
спросил 11 Апр, 13 от Geralda (400 баллов)

4 Ответы

00 голосов
ответил 11 Апр, 13 от sickmind (4,660 баллов)
00 голосов
ответил 11 Апр, 13 от NitroGeN (2,840 баллов)
00 голосов
Спасибо большое за ссылки.

У меня такая задача:
в БД цены на некоторые товары хранятся в евро, но они должны на сайте выводиться в рублях в зависимости от текущего кураса.

Вот я сделал так.
Проверяем с помощью функции stristr строку, возвращаемую $arPrice["PRINT_VALUE"] на наличие текста в ней EUR. Если нет, то пусть так и выводится $arPrice["PRINT_VALUE"], а вот если такой текст обнаружен начинаем обрабатывать его.

Сначала я сделал так)) для проверки, $arPrice["DISCOUNT_VALUE"] возвращает float число, вот его я умножал на 44 и выводил с помощью функции CurrencyFormat по правилам вывода рублей. Работало )))

Потом пошел дальше и поставил вместо 44, значение, хранящееся в БД для евро по умолчанию.

Вот теперь думаю, как сделать так, чтоб выводилось значение с ЦБ.
Почитал темку, хорошо сделано, но смущает наличие функции xml_array и отсутствие у меня файла /bitrix/php_interface/init.php. Может сделать все попроще?

Код
<?
// Запросим с сайта центрального банка РФ курсы валют на текущую дату
$strQueryText = QueryGetData(
   "www.cbr.ru", 
   80, 
   "/scripts/XML_daily.asp", 
   "date_req = date('d.m.Y')");
if (strlen($strQueryText)<=0)
{
   БЕРЕМ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ из БД
}
else
{
   echo htmlspecialchars($strQueryText);
}
?> 


И вставить этот код в шаблон для вывода каталога товаров для краткой и полной версий. Понимаю, что частое обращение в инет, не очень хорошо. Но зато вариант простой и рабочий, наверное ))

Я - новичок
ответил 11 Июнь, 13 от Geralda (400 баллов)
00 голосов
Цитата
Почитал темку, хорошо сделано, но смущает наличие функции xml_array и отсутствие у меня файла /bitrix/php_interface/init.php.


файл /bitrix/php_interface/init.php можно оч легко создать. Это файл будет подключаться при каждой загрузке страницы. В нем можно производить инициализацию или любые другие действия
Лучше забивать курсы прямо в модуль валют там и методы есть для конвертации

<?
// предполагаем, что валюты USD и EUR существуют в базе
$val = 11.95; // сумма в USD
$newval = CCurrencyRates::ConvertCurrency($val, "USD", "EUR");
echo $val." USD = ".$newval." EUR";
?>

и придумывать думаю ничего не придется. ;)
Если все же решитесь на то чтобы постоянно обращатся к серверу за валютой, то хоть введите кеширование, на сутки например.
ответил 14 Сен, 13 от ioannes (540 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 14 Апр, 14 от Jagami (100 баллов)
0 голосов
7 ответов
спросил 27 Май, 13 от AlexSol (240 баллов)