/** * Bitrix Framework * @package bitrix * @subpackage main * @copyright 2001-2013 Bitrix */ /** * Bitrix vars * @global CUser $USER * @global CMain $APPLICATION */ use Bitrix\Main\Text\HtmlFilter; use Bitrix\Main\Localization\Loc; require_once(__DIR__."/../include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/prolog.php"); define("HELP_FILE", "settings/lang_edit.php"); if(!$USER->CanDoOperation('edit_other_settings') && !$USER->CanDoOperation('view_other_settings')) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $isAdmin = $USER->CanDoOperation('edit_other_settings'); Loc::loadMessages(__FILE__); $aTabs = array( array("DIV" => "edit1", "TAB" => Loc::getMessage("MAIN_PARAM"), "ICON" => "lang_edit", "TITLE" => Loc::getMessage("MAIN_PARAM_TITLE")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $message = null; $bVarsFromForm = false; $ID = intval($_REQUEST['ID'] ?? 0); if($_SERVER["REQUEST_METHOD"] == "POST" && (!empty($_POST['save']) || !empty($_POST['apply'])) && $isAdmin && check_bitrix_sessid()) { $arFields = array( "ACTIVE" => $_POST['ACTIVE'], "SORT" => $_POST['SORT'], "DEF" => $_POST['DEF'], "NAME" => $_POST['NAME'], "CODE" => $_POST['CODE'], "CULTURE_ID" => $_POST['CULTURE_ID'], ); if($ID <= 0) $arFields["LID"] = $_POST["LID"]; $langs = new CLanguage; if($ID > 0) { $res = $langs->Update($_POST["LID"], $arFields); } else { $res = ($langs->Add($arFields) <> ''); } if(!$res) { $bVarsFromForm = true; } else { if (!empty($_POST["save"])) LocalRedirect(BX_ROOT."/admin/lang_admin.php?lang=".LANGUAGE_ID); else LocalRedirect(BX_ROOT."/admin/lang_edit.php?lang=".LANGUAGE_ID."&LID=".$_POST["LID"]."&".$tabControl->ActiveTabParam()); } } if($bVarsFromForm == false) { $ID = 0; $language = false; if (!empty($_REQUEST["COPY_ID"])) { $lng = CLanguage::GetByID($_REQUEST["COPY_ID"]); $language = $lng->Fetch(); } elseif (!empty($_REQUEST["LID"])) { $lng = CLanguage::GetByID($_REQUEST["LID"]); if(($language = $lng->Fetch())) $ID = 1; } if($language === false) { $language = array( "ACTIVE" => "Y", ); } } else { $language = $_POST; } $langField = array(); foreach($language as $key => $val) $langField[$key] = HtmlFilter::encode($val); $strTitle = ($ID > 0? Loc::getMessage("EDIT_LANG_TITLE", array("#ID#" => $langField["LID"])) : Loc::getMessage("NEW_LANG_TITLE")); $APPLICATION->SetTitle($strTitle); require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT" => Loc::getMessage("RECORD_LIST"), "LINK" => "/bitrix/admin/lang_admin.php?lang=".LANGUAGE_ID, "TITLE" => Loc::getMessage("RECORD_LIST_TITLE"), "ICON" => "btn_list" ) ); if ($ID>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => Loc::getMessage("MAIN_NEW_RECORD"), "LINK" => "/bitrix/admin/lang_edit.php?lang=".LANGUAGE_ID, "TITLE" => Loc::getMessage("MAIN_NEW_RECORD_TITLE"), "ICON" => "btn_new" ); if($isAdmin) { $aMenu[] = array( "TEXT" => Loc::getMessage("MAIN_COPY_RECORD"), "LINK" => "/bitrix/admin/lang_edit.php?lang=".LANGUAGE_ID."©_ID=".urlencode($language["LID"]), "TITLE" => Loc::getMessage("MAIN_COPY_RECORD_TITLE"), "ICON" => "btn_copy" ); $aMenu[] = array( "TEXT" => Loc::getMessage("MAIN_DELETE_RECORD"), "LINK" => "javascript:if(confirm('".Loc::getMessage("MAIN_DELETE_RECORD_CONF")."')) window.location='/bitrix/admin/lang_admin.php?ID=".urlencode(urlencode($language["LID"]))."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."&action=delete';", "TITLE" => Loc::getMessage("MAIN_DELETE_RECORD_TITLE"), "ICON" => "btn_delete" ); } } $context = new CAdminContextMenu($aMenu); $context->Show(); if ($e = $APPLICATION->GetException()) $message = new CAdminMessage(Loc::getMessage("MAIN_ERROR_SAVING"), $e); if($message) echo $message->Show(); ?>