%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.137.219.118 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/asd.currencyrate/ |
Upload File : |
<?php //http://dev.1c-bitrix.ru/community/webdev/group/78/blog/1657/ IncludeModuleLangFile(__FILE__); class CASDcurrencyrate { public static function OnAdminListDisplayHandler(&$list) { if ($GLOBALS['APPLICATION']->GetCurPage()=='/bitrix/admin/currencies_rates.php') { $list->context->items[-2] = array( 'ICON' => 'btn_refresh', 'TEXT' => GetMessage('ASD_ACTION_GET'), 'TITLE' => GetMessage('ASD_ACTION_GET_TITLE'), 'LINK' => $GLOBALS['APPLICATION']->GetCurPageParam('asd_get_rate=Y', array('mode')), ); $list->context->items[-1] = array('SEPARATOR' => 1); ksort($list->context->items); } } public static function OnBeforePrologHandler() { if ($GLOBALS['APPLICATION']->GetCurPage()=='/bitrix/admin/currencies_rates.php' && $_REQUEST['asd_get_rate']=='Y' && $GLOBALS['APPLICATION']->GetGroupRight('currency')>'D' ) { self::UpdateRates(false); LocalRedirect($GLOBALS['APPLICATION']->GetCurPageParam('', array('asd_get_rate'))); } } public static function UpdateRates($bAgent=true) { if (CModule::IncludeModule('currency')) { $arCurr = array(); $rsRate = CCurrency::GetList($by='currency', $order='asc'); while ($arRate = $rsRate->Fetch()) { if ($arRate['CURRENCY']!='RUB' && $arRate['CURRENCY']!='RUR') { $arCurr[] = $arRate['CURRENCY']; } } if (!empty($arCurr)) { $queryStr = 'date_req='.date('d.m.Y'); $adminDate = date($GLOBALS['DB']->DateFormatToPHP(CLang::GetDateFormat('SHORT'))); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/classes/general/xml.php'); $strQueryText = QueryGetData('www.cbr.ru', 80, '/scripts/XML_daily.asp', $queryStr, $errno, $errstr); // www.cbr.ru/scripts/XML_daily.asp?date_req=21.01.2015 $objXML = new CDataXML(); if ($objXML->LoadString($strQueryText)) { $arData = $objXML->GetArray(); if (!empty($arData) && is_array($arData)) { $percent = round(COption::GetOptionString('asd.currencyrate', 'percent'), 2); foreach ($arData['ValCurs']['#']['Valute'] as $arC) { if (in_array($arC["#"]["CharCode"][0]["#"], $arCurr)) { $rate = doubleval(str_replace(',', '.', $arC['#']['Value'][0]['#'])); $val = $rate + (($rate * $percent) / 100); $arNewRate = array( 'CURRENCY' => $arC["#"]["CharCode"][0]["#"], 'RATE_CNT' => intval($arC['#']['Nominal'][0]['#']), 'RATE' => $val, 'DATE_RATE' => $adminDate, ); if (!CCurrencyRates::GetList($by='id', $order='desc', $arNewRate)->Fetch()) { CCurrencyRates::Add($arNewRate); } } } } } } } if ($bAgent) { return 'CASDcurrencyrate::UpdateRates();'; } } }