GetGroupRight("currency"); if ($CURRENCY_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); CModule::IncludeModule('currency'); IncludeModuleLangFile(__FILE__); $errorMessage = array(); $ID = ''; if (isset($_REQUEST['ID'])) $ID = trim((string)$_REQUEST['ID']); $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("currency_curr"), "ICON"=>"", "TITLE"=>GetMessage("currency_curr_settings")), array("DIV" => "edit2", "TAB" => GetMessage("BT_CURRENCY_EDIT_TAB_NAME_LANGUAGE"), "ICON"=>"", "TITLE"=>GetMessage("BT_CURRENCY_EDIT_TAB_TITLE_LANGUAGE")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $arTemplates = CCurrencyLang::GetFormatTemplates(); $separatorList = CCurrencyLang::GetSeparatorTypes(true); $langList = array(); $langID = array(); $langIterator = CLangAdmin::GetList(); while ($oneLang = $langIterator->Fetch()) { $langID[] = $oneLang['LID']; $langList[$oneLang['LID']] = $oneLang['NAME']; } unset($oneLang, $langIterator); $arFields = array(); if ($_SERVER['REQUEST_METHOD'] == 'POST' && $CURRENCY_RIGHT=="W" && !empty($_POST['Update']) && check_bitrix_sessid()) { if (!isset($_POST['BASE']) || $_POST['BASE'] != 'Y') { $arFields = array( 'AMOUNT' => ($_POST['AMOUNT'] ?? ''), 'AMOUNT_CNT' => ($_POST['AMOUNT_CNT'] ?? ''), 'SORT' => ($_POST['SORT'] ?? ''), 'NUMCODE' => ($_POST['NUMCODE'] ?? '') ); } else { $arFields = array( 'AMOUNT' => 1, 'AMOUNT_CNT' => 1, 'SORT' => ($_POST['SORT'] ?? ''), 'NUMCODE' => ($_POST['NUMCODE'] ?? '') ); } if (!$ID && isset($_POST['CURRENCY'])) { $arFields['CURRENCY'] = $_POST['CURRENCY']; } $strAction = ($ID ? 'UPDATE' : 'ADD'); $langSettings = array(); foreach ($langID as $oneLang) { if (isset($_POST['LANG_'.$oneLang])) $langSettings[$oneLang] = $_POST['LANG_'.$oneLang]; } unset($oneLang); $arFields['LANG'] = $langSettings; unset($langSettings); $DB->StartTransaction(); if ($ID) { $res = CCurrency::Update($ID, $arFields); } else { $ID = (string)CCurrency::Add($arFields); $res = ($ID !== ''); } if (!$res) { $DB->Rollback(); if ($ex = $APPLICATION->GetException()) $errorMessage[] = $ex->GetString(); else $errorMessage[] = ($ID ? str_replace('#ID#', $ID, GetMessage('BT_CURRENCY_EDIT_ERR_UPDATE')) : GetMessage('BT_CURRENCY_EDIT_ERR_ADD'))."
"; } else { $DB->Commit(); if (empty($_POST['apply'])) LocalRedirect('/bitrix/admin/currencies.php?lang='.LANGUAGE_ID); LocalRedirect('/bitrix/admin/currency_edit.php?ID='.$ID.'&lang='.LANGUAGE_ID.'&'.$tabControl->ActiveTabParam()); } } $defaultValues = array( 'CURRENCY' => '', 'AMOUNT_CNT' => 1, 'AMOUNT' => 1, 'SORT' => 100, 'NUMCODE' => '', 'BASE' => 'N' ); $defaultLangValues = array( 'FULL_NAME' => '', 'FORMAT_STRING' => '#', 'DEC_POINT' => '.', 'THOUSANDS_SEP' => '', 'DECIMALS' => 2, 'THOUSANDS_VARIANT' => CCurrencyLang::SEP_SPACE, 'HIDE_ZERO' => 'Y' ); if ($ID != '') $APPLICATION->SetTitle(GetMessage("CURRENCY_EDIT_TITLE")); else $APPLICATION->SetTitle(GetMessage("CURRENCY_NEW_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $currency = $defaultValues; $currencyLangs = array_fill_keys($langID, $defaultLangValues); if ($ID != '') { $currency = CCurrency::GetByID($ID); if (empty($currency)) { $ID = ''; $currency = $defaultValues; } else { $langIterator = CCurrencyLang::GetList('currency', 'asc', $ID); while ($language = $langIterator->Fetch()) { $language['THOUSANDS_SEP'] = (string)$language['THOUSANDS_SEP']; $language['THOUSANDS_VARIANT'] = (string)$language['THOUSANDS_VARIANT']; $language['FULL_NAME'] = (string)$language['FULL_NAME']; if ($language['FULL_NAME'] === '') $language['FULL_NAME'] = $ID; $currencyLangs[$language['LID']] = $language; } unset($language, $langIterator); } } if (!empty($errorMessage)) { $currency = $arFields; if (!isset($currency['CURRENCY'])) $currency['CURRENCY'] = ''; $currencyLangs = $arFields['LANG']; } $aContext = array( array( "ICON" => "btn_list", "TEXT" => GetMessage("MAIN_ADMIN_MENU_LIST"), "LINK" => "currencies.php?lang=".LANGUAGE_ID, "TITLE" => GetMessage("MAIN_ADMIN_MENU_LIST") ), ); if ($ID != '') { $aContext[] = array( "ICON" => "btn_new", "TEXT" => GetMessage("MAIN_ADMIN_MENU_CREATE"), "LINK" => "currency_edit.php?lang=".LANGUAGE_ID, "TITLE" => GetMessage("MAIN_ADMIN_MENU_CREATE") ); if ($CURRENCY_RIGHT == "W" && $currency['BASE'] != 'Y') { $aContext[] = array( "ICON" => "btn_delete", "TEXT" => GetMessage("MAIN_ADMIN_MENU_DELETE"), "ONCLICK" => "javascript:if(confirm('".GetMessageJS("CONFIRM_DEL_MESSAGE")."'))window.location='currencies.php?action=delete&ID[]=".CUtil::JSEscape($ID)."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); } } $context = new CAdminContextMenu($aContext); $context->Show(); if (!empty($errorMessage)) CAdminMessage::ShowMessage(implode('
', $errorMessage)); ?>