File manager - Edit - /home/c14075/dragmet-ural.ru/www/asd.currencyrate.tar
Back
options.php 0000644 00000011616 15132502545 0006757 0 ustar 00 <?php $module_id = 'asd.currencyrate'; $POST_RIGHT = $APPLICATION->GetGroupRight('main'); if (!function_exists('htmlspecialcharsbx')) { function htmlspecialcharsbx($string, $flags=ENT_COMPAT) { return htmlspecialchars($string, $flags, (defined('BX_UTF')? 'UTF-8' : 'ISO-8859-1')); } } if ($POST_RIGHT >= 'R'): IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/options.php'); IncludeModuleLangFile(__FILE__); $arAllOptions = array( array('use_proxy', GetMessage('OPT_USE_PROXY').':', array('checkbox'), ''), array('percent', GetMessage('OPT_PERCENT').':', array('text', 7), GetMessage('OPT_PERCENT_HINT')), ); $tabControl = new CAdmintabControl('tabControl', array( array('DIV' => 'edit1', 'TAB' => GetMessage('MAIN_TAB_SET'), 'ICON' => ''), // array('DIV' => 'edit2', 'TAB' => GetMessage('MAIN_TAB_RIGHTS'), 'ICON' => '', 'TITLE' => GetMessage('MAIN_TAB_TITLE_RIGHTS')) )); if (ToUpper($REQUEST_METHOD) == 'POST' && strlen($Update.$Apply.$RestoreDefaults)>0 && ($POST_RIGHT=='W' || $POST_RIGHT=='X') && check_bitrix_sessid()) { $bRedirect = true; if (strlen($RestoreDefaults)>0) { COption::RemoveOption($module_id); $z = CGroup::GetList($v1='id',$v2='asc', array('ACTIVE' => 'Y', 'ADMIN' => 'N')); while ($zr = $z->Fetch()) { $APPLICATION->DelGroupRight($module_id, array($zr['ID'])); } } else { foreach ($arAllOptions as $arOption) { $name = $arOption[0]; if ($arOption[2][0]=='text-list') { $val = ''; for ($j=0; $j<count($$name); $j++) if (strlen(trim(${$name}[$j])) > 0) $val .= ($val <> ''? ',':'').trim(${$name}[$j]); } elseif ($arOption[2][0]=='selectbox' || $arOption[2][0]=='selectboxtree') { $val = ''; for ($j=0; $j<count($$name); $j++) if (strlen(trim(${$name}[$j])) > 0) $val .= ($val <> ''? ',':'').trim(${$name}[$j]); } else { $val = $$name ?? null; } if ($arOption[2][0] == 'checkbox' && $val<>'Y') { $val = 'N'; } COption::SetOptionString($module_id, $name, $val); } } $Update = $Update.$Apply; /*ob_start(); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/admin/group_rights.php'); ob_end_clean();*/ if ($bRedirect) { if (strlen($Update)>0 && strlen($_REQUEST['back_url_settings'])>0) { LocalRedirect($_REQUEST['back_url_settings']); } else { LocalRedirect($APPLICATION->GetCurPage().'?mid='.urlencode($mid).'&lang='.urlencode(LANGUAGE_ID).'&back_url_settings='.urlencode($_REQUEST['back_url_settings']).'&'.$tabControl->ActiveTabParam()); } } } ?><form method="post" action="<?echo $APPLICATION->GetCurPage()?>?mid=<?=urlencode($mid)?>&lang=<?=LANGUAGE_ID?>"><? $tabControl->Begin(); $tabControl->BeginNextTab(); foreach($arAllOptions as $Option): $type = $Option[2]; $hint = $Option[3]; $val = COption::GetOptionString($module_id, $Option[0]); ?><tr> <td valign="top" width="30%"><? if (strlen($hint)) { ShowJSHint($hint); echo ' '; } if ($type[0]=='checkbox') { echo '<label for="'.htmlspecialcharsbx($Option[0]).'">'.$Option[1].'</label>'; } else { echo $Option[1]; } ?></td><td valign="middle" width="70%"><? if ($type[0] == 'text'): ?><input type="text" size="<?echo $type[1]?>" maxlength="255" value="<?echo htmlspecialcharsbx($val)?>" name="<?echo htmlspecialcharsbx($Option[0])?>" /><? elseif($type[0]=="checkbox"): ?><input type="checkbox" name="<?echo htmlspecialcharsbx($Option[0])?>" id="<?echo htmlspecialcharsbx($Option[0])?>" value="Y"<?if($val=="Y")echo" checked";?> /><? endif; ?></td></tr><? endforeach; //$tabControl->BeginNextTab(); //require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/admin/group_rights.php'); $tabControl->Buttons(); ?><input <?if ($POST_RIGHT < 'W') echo 'disabled="disabled"' ?> type="submit" name="Update" value="<?=GetMessage('MAIN_SAVE')?>" title="<?=GetMessage('MAIN_OPT_SAVE_TITLE')?>" /> <input <?if ($POST_RIGHT < 'W') echo 'disabled="disabled"' ?> type="submit" name="Apply" value="<?=GetMessage('MAIN_OPT_APPLY')?>" title="<?=GetMessage('MAIN_OPT_APPLY_TITLE')?>" /><? if (strlen($_REQUEST["back_url_settings"]) > 0): ?><input <?if ($POST_RIGHT < 'W') echo 'disabled="disabled"' ?> type="button" name="Cancel" value="<?=GetMessage('MAIN_OPT_CANCEL')?>" title="<?=GetMessage('MAIN_OPT_CANCEL_TITLE')?>" onclick="window.location='<?echo htmlspecialcharsbx(CUtil::addslashes($_REQUEST['back_url_settings']))?>'" /> <input type="hidden" name="back_url_settings" value="<?=htmlspecialcharsbx($_REQUEST["back_url_settings"])?>" /><? endif; ?><input <?if ($POST_RIGHT < 'W') echo 'disabled="disabled"' ?> type="submit" name="RestoreDefaults" title="<?echo GetMessage("MAIN_HINT_RESTORE_DEFAULTS")?>" onclick="confirm('<?echo AddSlashes(GetMessage('MAIN_HINT_RESTORE_DEFAULTS_WARNING'))?>')" value="<?echo GetMessage('MAIN_RESTORE_DEFAULTS')?>" /> <?=bitrix_sessid_post(); $tabControl->End(); ?></form><? endif; lang/en/options.php 0000644 00000000311 15132502545 0010270 0 ustar 00 <?php $MESS['OPT_USE_PROXY'] = 'Использовать российский прокси-сервер'; $MESS['OPT_PERCENT'] = 'Наценка в процентах'; $MESS['OPT_PERCENT_HINT'] = ''; lang/en/include.php 0000644 00000000236 15132502545 0010226 0 ustar 00 <?php $MESS ['ASD_ACTION_GET'] = 'Запросить'; $MESS ['ASD_ACTION_GET_TITLE'] = 'Запросить курс валют на текущий день'; lang/en/install/install.php 0000644 00000001176 15132502545 0011723 0 ustar 00 <?php $MESS ['ASD_MODULE_CRT_NAME'] = 'Валюты, запрос курса'; $MESS ['ASD_MODULE_CRT_DESCRIPTION'] = 'Модуль позволяет в автоматическом режиме обновлять курс валют на сайте.'; $MESS ['ASD_PARTNER_NAME'] = 'Долганин Антон'; $MESS ['ASD_NEED_RIGHT_VER'] = 'Для установки данного решения необходима версия главного модуля #NEED# или выше.'; $MESS ['ASD_NEED_MODULES'] = 'Для установки данного решения необходимо наличие модуля #MODULE#.'; lang/ru/options.php 0000644 00000000311 15132502545 0010314 0 ustar 00 <?php $MESS['OPT_USE_PROXY'] = 'Использовать российский прокси-сервер'; $MESS['OPT_PERCENT'] = 'Наценка в процентах'; $MESS['OPT_PERCENT_HINT'] = ''; lang/ru/include.php 0000644 00000000236 15132502545 0010252 0 ustar 00 <?php $MESS ['ASD_ACTION_GET'] = 'Запросить'; $MESS ['ASD_ACTION_GET_TITLE'] = 'Запросить курс валют на текущий день'; lang/ru/install/install.php 0000644 00000001176 15132502545 0011747 0 ustar 00 <?php $MESS ['ASD_MODULE_CRT_NAME'] = 'Валюты, запрос курса'; $MESS ['ASD_MODULE_CRT_DESCRIPTION'] = 'Модуль позволяет в автоматическом режиме обновлять курс валют на сайте.'; $MESS ['ASD_PARTNER_NAME'] = 'Долганин Антон'; $MESS ['ASD_NEED_RIGHT_VER'] = 'Для установки данного решения необходима версия главного модуля #NEED# или выше.'; $MESS ['ASD_NEED_MODULES'] = 'Для установки данного решения необходимо наличие модуля #MODULE#.'; include.php 0000644 00000005713 15132502545 0006710 0 ustar 00 <?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();'; } } } install/version.php 0000644 00000000142 15132502545 0010407 0 ustar 00 <? $arModuleVersion = array( "VERSION" => "1.2.0", "VERSION_DATE" => "2023-03-30 05:37:11" ); ?>