Продолжаю выкладывать всякие полезные скрипты для работы с 1с-Битрикс. На этот раз это автоматическое обновление курсов валют. Откуда он у меня я уже не помню, по моему на форуме нашел. Там все довольно просто, по этому выкладываю как есть. Это полноценный агент, можете ложить в php_interface и добавить агента. GetCurrencyMy();
<? function GetCurrencyMy() { global $USER; $USER = new CUser; $strQueryText = QueryGetData("www.cbr.ru",80,"/scripts/XML_daily.asp","",$error_number,$error_text); if(strlen($strQueryText)>0) { require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/xml.php"); $strQueryText = eregi_replace("<!DOCTYPE[^>]{1,}>", "", $strQueryText); $objXML = new CDataXML(); $objXML->LoadString($strQueryText); $arData = $objXML->GetArray(); if(is_array($arData) &amp;amp;&amp;amp; count($arData["ValCurs"]["#"]["Valute"])>0) { $cdate = $arData["ValCurs"]["@"]["Date"]."<br>"; for ($j1 = 0; $j1<count($arData["ValCurs"]["#"]["Valute"]); $j1++) { if(CModule::IncludeModule("currency")) { $arCurrValue = str_replace(",", ".", $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Value"][0]["#"]); $curr = DoubleVal($arCurrValue); $arFields = array( "RATE" => round($curr, 2), "RATE_CNT" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Nominal"][0]["#"], "CURRENCY" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["CharCode"][0]["#"], "DATE_RATE" => $cdate ); CCurrencyRates::Add($arFields); } } } } return "GetCurrencyMy();"; } ?>
Большое спасибо за скрипт, очень выручил.
Рад что пригодился. Пользуйтесь…
Сделал всё как написано однако выдаёт ошибку
Parse error: syntax error, unexpected ‘;’ in /var/www/bitrix/php_interface/init.php on line 14
Подскажите, как исправить.
не хватает знака ; в конце строки
Я тоже так подумал, но после того как знак прописал ничего не изменилось. Очистил кеш сайта и кэш браузера, перезапустил apache и nginx, всё бесполезно, та же ошибка выскакивает. Что ещё можно сделать?
Должно было на мыло тебе еще уйти, вот если что это попробуй http://pastebin.com/Q4NJDmMD
На мыло ничего кроме последней ссылки не пришло.
Новый код (http://pastebin.com/Q4NJDmMD) ошибку не выдаёт, функция через агента запускается, но курсы валют на /bitrix/admin/currencies_rates.php не появляются.
Не работает, все та же ошибка «Parse error: syntax error, unexpected ‘;’ in /var/www/bitrix/php_interface/init.php on line 14»
CCurrencyRates::Add($arFields); таким способом постоянно добавляет новый курс валют
Код старый, по этому смотрите сами :)