Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/currency/ |
Upload File : |
<?php /** @global CMain $APPLICATION */ use Bitrix\Main\Config\Option; use Bitrix\Main\Context; use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Text\HtmlFilter; use Bitrix\Main\Type\DateTime; use Bitrix\Currency; $module_id = 'currency'; $moduleAccessLevel = $APPLICATION->GetGroupRight($module_id); if ($moduleAccessLevel >= 'R') { Loader::includeModule('currency'); $settingsUrl = $APPLICATION->GetCurPage() . '?lang=' . LANGUAGE_ID . '&mid=' . $module_id; $request = Context::getCurrent()->getRequest(); $aTabs = [ [ 'DIV' => 'edit0', 'TAB' => Loc::getMessage('CURRENCY_SETTINGS'), 'ICON' => 'currency_settings', 'TITLE' => Loc::getMessage('CURRENCY_SETTINGS_TITLE'), ], [ 'DIV' => 'edit1', 'TAB' => Loc::getMessage('CO_TAB_RIGHTS'), 'ICON' => 'currency_settings', 'TITLE' => Loc::getMessage('CO_TAB_RIGHTS_TITLE'), ], ]; $tabControl = new CAdminTabControl('currencyTabControl', $aTabs, true, true); $systemTabs = [ [ 'DIV' => 'proc_edit0', 'TAB' => Loc::getMessage('CURRENCY_BASE_RATE'), 'ICON' => '', 'TITLE' => Loc::getMessage('CURRENCY_BASE_RATE_TITLE'), ], [ 'DIV' => 'proc_edit1', 'TAB' => Loc::getMessage('CURRENCY_AGENTS'), 'ICON' => '', 'TITLE' => Loc::getMessage('CURRENCY_AGENTS_TITLE'), ], ]; $systemTabControl = new CAdminTabControl('currencyProcTabControl', $systemTabs, true, true); if ( $request->getRequestMethod() === 'GET' && $request->get('RestoreDefaults') !== null && $moduleAccessLevel === 'W' && check_bitrix_sessid() ) { Option::delete('currency'); $userGroupIds = []; $iterator = CGroup::GetList( 'id', 'asc', [ 'ACTIVE' => 'Y', 'ADMIN' => 'N', ] ); while ($row = $iterator->Fetch()) { $userGroupIds[] = (int)$row['ID']; } unset($row, $iterator); if (!empty($userGroupIds)) { $APPLICATION->DelGroupRight($module_id, $userGroupIds); } unset($userGroupIds); LocalRedirect($settingsUrl); } if ( $request->isPost() && $moduleAccessLevel === 'W' && check_bitrix_sessid() ) { if ($request->getPost('Update') === 'Y') { $newBaseCurrency = $request->getPost('BASE_CURRENCY'); if (!is_string($newBaseCurrency)) { $newBaseCurrency = null; } $newBaseCurrency = trim((string)$newBaseCurrency); if ($newBaseCurrency !== '') { $res = CCurrency::SetBaseCurrency($newBaseCurrency); } ob_start(); require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/admin/group_rights.php'; ob_end_clean(); LocalRedirect($settingsUrl . '&' . $tabControl->ActiveTabParam()); } if ($request->getPost('procedures') === 'Y' && $request->getPost('action') === 'recalc') { Currency\CurrencyManager::updateBaseRates(); LocalRedirect($settingsUrl . '&' . $systemTabControl->ActiveTabParam()); } if ($request->getPost('agents') === 'Y' && !empty($_POST['action'])) { $action = $request->getPost('action'); if (!is_string($action)) { $action = null; } $action = trim((string)$action); if ($action !== '') { switch ($action) { case 'activate': case 'deactivate': $agentIterator = CAgent::GetList( [], [ 'MODULE_ID' => 'currency', '=NAME' => '\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();', ] ); $currencyAgent = $agentIterator->Fetch(); unset($agentIterator); if (!empty($currencyAgent)) { $active = ($action === 'activate' ? 'Y' : 'N'); CAgent::Update( $currencyAgent['ID'], [ 'ACTIVE' => $active, ] ); } break; case 'create': $checkDate = DateTime::createFromTimestamp(strtotime('tomorrow 00:01:00')); CAgent::AddAgent( '\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();', 'currency', 'Y', 86400, '', 'Y', $checkDate->toString(), 100, false, false ); break; } LocalRedirect($settingsUrl . '&' . $systemTabControl->ActiveTabParam()); } } } $baseCurrency = Currency\CurrencyManager::getBaseCurrency(); $tabControl->Begin(); ?> <form method="POST" action="<?= $APPLICATION->GetCurPage(); ?>?lang=<?= LANGUAGE_ID; ?>&mid=<?= $module_id; ?>" name="currency_settings"> <?= bitrix_sessid_post(); $tabControl->BeginNextTab(); ?><tr> <td style="width: 40%;"><?= HtmlFilter::encode(Loc::getMessage('BASE_CURRENCY')); ?></td> <td><select name="BASE_CURRENCY"><?php $currencyList = Currency\CurrencyManager::getCurrencyList(); if (!empty($currencyList)) { foreach ($currencyList as $currency => $title) { ?><option value="<?= HtmlFilter::encode($currency); ?>"<?= ($currency === $baseCurrency ? ' selected' : ''); ?>><?php echo HtmlFilter::encode($title); ?></option><?php } unset($title, $currency); } unset($currencyList); ?></select></td> </tr> <?php $tabControl->BeginNextTab(); require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/admin/group_rights.php'; $tabControl->Buttons();?> <script> function RestoreDefaults() { if (confirm('<?= CUtil::JSEscape(Loc::getMessage("CUR_OPTIONS_BTN_HINT_RESTORE_DEFAULT_WARNING")); ?>')) { window.location = "<?= $APPLICATION->GetCurPage(); ?>?lang=<?= LANGUAGE_ID; ?>&mid=<?= $module_id; ?>&RestoreDefaults=Y&<?= bitrix_sessid_get()?>"; } } </script> <input type="submit"<?= ($moduleAccessLevel < 'W' ? ' disabled' : ''); ?> name="Update" class="adm-btn-save" value="<?= HtmlFilter::encode(Loc::getMessage('CUR_OPTIONS_BTN_SAVE')); ?>" title="<?= HtmlFilter::encode(Loc::getMessage('CUR_OPTIONS_BTN_SAVE_TITLE')); ?>" > <input type="hidden" name="Update" value="Y"> <input type="reset" name="reset" value="<?= HtmlFilter::encode(Loc::getMessage('CUR_OPTIONS_BTN_RESET')); ?>" title="<?= HtmlFilter::encode(Loc::getMessage('CUR_OPTIONS_BTN_RESET_TITLE')); ?>" > <input type="button"<?= ($moduleAccessLevel < 'W' ? ' disabled' : ''); ?> value="<?= HtmlFilter::encode(Loc::getMessage('CUR_OPTIONS_BTN_RESTORE_DEFAULT')); ?>" title="<?= HtmlFilter::encode(Loc::getMessage('CUR_OPTIONS_BTN_HINT_RESTORE_DEFAULT')); ?>" onclick="RestoreDefaults();" > </form> <?php $tabControl->End(); ?><h2><?= Loc::getMessage('CURRENCY_PROCEDURES'); ?></h2><?php $systemTabControl->Begin(); $systemTabControl->BeginNextTab(); ?><form method="POST" action="<?= $APPLICATION->GetCurPage(); ?>?lang=<?= LANGUAGE_ID; ?>&mid=<?= $module_id; ?>" name="currency_procedures"><?php echo bitrix_sessid_post(); ?> <input type="hidden" name="action" value="recalc"> <input type="submit"<?= ($moduleAccessLevel < "W" || $baseCurrency === '' ? ' disabled' : ''); ?> name="recalc" value="<?= HtmlFilter::encode(Loc::getMessage('CUR_PROCEDURES_BTN_RECALC')); ?>" > <input type="hidden" name="procedures" value="Y"> </form><?php $systemTabControl->BeginNextTab(); ?><form method="POST" action="<?= $APPLICATION->GetCurPage(); ?>?lang=<?= LANGUAGE_ID; ?>&mid=<?= $module_id; ?>" name="currency_agents"><?php echo bitrix_sessid_post(); ?><h4><?= Loc::getMessage('CURRENCY_BASE_RATE_AGENT'); ?></h4><?php $currencyAgent = false; $agentIterator = CAgent::GetList( [], [ 'MODULE_ID' => 'currency', '=NAME' => '\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();', ] ); if ($agentIterator) { $currencyAgent = $agentIterator->Fetch(); } if (!empty($currencyAgent)) { $currencyAgent['LAST_EXEC'] = (string)$currencyAgent['LAST_EXEC']; $currencyAgent['NEXT_EXEC'] = (string)$currencyAgent['NEXT_EXEC']; ?><b><?= Loc::getMessage('CURRENCY_BASE_RATE_AGENT_ACTIVE'); ?>:</b> <?= ( $currencyAgent['ACTIVE'] === 'Y' ? Loc::getMessage('CURRENCY_AGENTS_ACTIVE_YES') : Loc::getMessage('CURRENCY_AGENTS_ACTIVE_NO') );?><br><?php if ($currencyAgent['LAST_EXEC']) { ?><b><?= Loc::getMessage('CURRENCY_AGENTS_LAST_EXEC'); ?>:</b> <?= $currencyAgent['LAST_EXEC']; ?><br><?php if ($currencyAgent['ACTIVE'] === 'Y') { ?><b><?= Loc::getMessage('CURRENCY_AGENTS_NEXT_EXEC');?>:</b> <?= $currencyAgent['NEXT_EXEC']; ?><br><?php } } elseif ($currencyAgent['ACTIVE'] === 'Y') { ?><b><?= Loc::getMessage('CURRENCY_AGENTS_PLANNED_NEXT_EXEC') ?>:</b> <?= $currencyAgent['NEXT_EXEC']; ?><br><?php } if ($currencyAgent['ACTIVE'] !== 'Y') { ?><br><input type="hidden" name="action" value="activate"> <input type="submit" name="activate" value="<?= HtmlFilter::encode(Loc::getMessage('CURRENCY_AGENTS_ACTIVATE')); ?>"><?php } else { ?><br><input type="hidden" name="action" value="deactivate"> <input type="submit" name="deactivate" value="<?= HtmlFilter::encode(Loc::getMessage('CURRENCY_AGENTS_DEACTIVATE')); ?>"><?php } } else { ?><b><?= Loc::getMessage('CURRENCY_BASE_RATE_AGENT_ABSENT'); ?></b><br><br> <input type="hidden" name="action" value="create"> <input type="submit" name="startagent" value="<?= HtmlFilter::encode(Loc::getMessage('CURRENCY_AGENTS_CREATE_AGENT')); ?>"> <?php } ?><input type="hidden" name="agents" value="Y"> </form><?php $systemTabControl->End(); }