File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/asd.currencyrate/include.php
Back
<?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)) { $percent = COption::GetOptionString('asd.currencyrate', 'percent'); $useProxy = COption::GetOptionString('asd.currencyrate', 'use_proxy', 2) === 'Y'; $percent = str_replace(',', '.', $percent); $percent = round((float)$percent, 2); $domain = $useProxy ? 'cbr.d-it.ru' : 'www.cbr.ru'; $queryStr = 'date_req='.date('d.m.Y'); $url = 'https://' . $domain . '/scripts/XML_daily.asp?' . $queryStr; // www.cbr.ru/scripts/XML_daily.asp?date_req=21.01.2015 $http = new \Bitrix\Main\Web\HttpClient; $strQueryText = $http->get($url); $adminDate = date($GLOBALS['DB']->DateFormatToPHP(CLang::GetDateFormat('SHORT'))); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/classes/general/xml.php'); $objXML = new CDataXML(); if ($objXML->LoadString($strQueryText)) { $arData = $objXML->GetArray(); if (!empty($arData) && is_array($arData)) { 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();'; } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.34 |
proxy
|
phpinfo
|
Settings