/**
* @global CMain $APPLICATION
* @global CUser $USER
* */
require_once(__DIR__."/../include/prolog_admin_before.php");
define("HELP_FILE", "settings/user_settings.php");
$editable = ($USER->CanDoOperation('edit_own_profile') || $USER->CanDoOperation('edit_other_settings'));
if (!$USER->CanDoOperation('view_other_settings') && !$editable)
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
$aTabs = array(
array("DIV" => "edit1", "TAB" => GetMessage("user_sett_tab"), "ICON"=>"", "TITLE"=>GetMessage("user_sett_tab_title")),
array("DIV" => "edit2", "TAB" => GetMessage("user_sett_del"), "ICON"=>"", "TITLE"=>GetMessage("user_sett_del_title")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$bFormValues = false;
$sSuccessMsg = "";
if(!empty($_REQUEST["action"]) && $editable && check_bitrix_sessid())
{
if ($_REQUEST["action"] == "clear")
{
CUserOptions::DeleteUsersOptions($USER->GetID());
$sSuccessMsg .= GetMessage("user_sett_mess_del")."
";
}
if ($_REQUEST["action"] == "clear_links")
{
CUserOptions::DeleteOption("start_menu", "recent");
$sSuccessMsg .= GetMessage("user_sett_mess_links")."
";
}
if($_REQUEST["action"] == "clear_all" && $USER->CanDoOperation('edit_other_settings'))
{
CUserOptions::DeleteCommonOptions();
$sSuccessMsg .= GetMessage("user_sett_mess_del_common")."
";
}
if($_REQUEST["action"] == "clear_all_user" && $USER->CanDoOperation('edit_other_settings'))
{
CUserOptions::DeleteUsersOptions();
$sSuccessMsg .= GetMessage("user_sett_mess_del_user")."
";
}
if($sSuccessMsg <> "")
{
\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"] = $sSuccessMsg;
LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANGUAGE_ID."&".$tabControl->ActiveTabParam());
}
}
if($_SERVER["REQUEST_METHOD"]=="POST" && isset($_REQUEST["Update"]) && $_REQUEST["Update"]=="Y" && $editable && check_bitrix_sessid())
{
$aMsg = array();
if(empty($aMsg))
{
$aFields = [
"context_menu" => isset($_REQUEST["context_menu"]) && $_REQUEST["context_menu"] == "Y"? "Y":"N",
"context_ctrl" => isset($_REQUEST["context_ctrl"]) && $_REQUEST["context_ctrl"] == "Y"? "Y":"N",
"autosave" => isset($_REQUEST["autosave"]) && $_REQUEST["autosave"] == "Y"? "Y":"N",
"start_menu_links" => intval($_REQUEST["start_menu_links"] ?? 0),
"start_menu_preload" => isset($_REQUEST["start_menu_preload"]) && $_REQUEST["start_menu_preload"] == "Y"? "Y":"N",
"start_menu_title" => isset($_REQUEST["start_menu_title"]) && $_REQUEST["start_menu_title"] == "Y"? "Y":"N",
"panel_dynamic_mode" => isset($_REQUEST["panel_dynamic_mode"]) && $_REQUEST["panel_dynamic_mode"] == "Y"? "Y":"N",
"page_edit_control_enable" => isset($_REQUEST["page_edit_control_enable"]) && $_REQUEST["page_edit_control_enable"] == "Y"? "Y":"N",
"messages" => [
"support"=> isset($_REQUEST["messages_support"]) && $_REQUEST["messages_support"] == "Y"? "Y":"N",
"security"=> isset($_REQUEST["messages_security"]) && $_REQUEST["messages_security"] == "Y"? "Y":"N",
"perfmon"=> isset($_REQUEST["messages_perfmon"]) && $_REQUEST["messages_perfmon"] == "Y"? "Y":"N",
],
"sound" => isset($_REQUEST["sound"]) && $_REQUEST["sound"] == "Y"? "Y":"N",
"sound_login" => $_REQUEST["sound_login"] ?? null,
];
//common default
if($USER->CanDoOperation('edit_other_settings') && isset($_REQUEST["default"]) && $_REQUEST["default"] == "Y")
{
CUserOptions::SetOption("global", "settings", $aFields, true);
$sSuccessMsg .= GetMessage("user_sett_mess_save")."
";
}
//personal
CUserOptions::SetOption("global", "settings", $aFields);
$sSuccessMsg .= GetMessage("user_sett_mess_save1")."
";
\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"] = $sSuccessMsg;
LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANGUAGE_ID);
}
else
{
$bFormValues = true;
$APPLICATION->ThrowException(new CAdminException($aMsg));
}
}
$APPLICATION->SetTitle(GetMessage("user_sett_title"));
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
if($bFormValues)
{
$aUserOpt = array(
"context_menu"=>$_REQUEST["context_menu"] ?? null,
"context_ctrl"=>$_REQUEST["context_ctrl"] ?? null,
"autosave"=>$_REQUEST["autosave"] ?? null,
"start_menu_links"=>$_REQUEST["start_menu_links"] ?? null,
"start_menu_preload"=>$_REQUEST["start_menu_preload"] ?? null,
"start_menu_title"=>$_REQUEST["start_menu_title"] ?? null,
"panel_dynamic_mode"=>$_REQUEST["panel_dynamic_mode"] ?? null,
"page_edit_control_enable" => $_REQUEST['page_edit_control_enable'] ?? null,
"messages" => array(
"support"=>$_REQUEST["messages_support"] ?? null,
"security"=>$_REQUEST["messages_security"] ?? null,
"perfmon"=>$_REQUEST["messages_perfmon"] ?? null,
),
"sound" => $_REQUEST["sound"] ?? null,
"sound_login" => $_REQUEST["sound_login"] ?? null,
);
}
else
{
$aUserOpt = CUserOptions::GetOption("global", "settings");
if(!isset($aUserOpt["context_menu"]) || $aUserOpt["context_menu"] == "") $aUserOpt["context_menu"] = "Y";
if(!isset($aUserOpt["context_ctrl"]) || $aUserOpt["context_ctrl"] == "") $aUserOpt["context_ctrl"] = "N";
if(!isset($aUserOpt["autosave"]) || $aUserOpt["autosave"] == "") $aUserOpt["autosave"] = "Y";
if(!isset($aUserOpt["start_menu_links"]) || $aUserOpt["start_menu_links"] == "") $aUserOpt["start_menu_links"] = "5";
if(!isset($aUserOpt["start_menu_preload"]) || $aUserOpt["start_menu_preload"] == "") $aUserOpt["start_menu_preload"] = "N";
if(!isset($aUserOpt["start_menu_title"]) || $aUserOpt["start_menu_title"] == "") $aUserOpt["start_menu_title"] = "Y";
if(!isset($aUserOpt["panel_dynamic_mode"]) || $aUserOpt["panel_dynamic_mode"] == "") $aUserOpt["panel_dynamic_mode"] = "N";
if(!isset($aUserOpt["page_edit_control_enable"]) || $aUserOpt["page_edit_control_enable"] == "") $aUserOpt["page_edit_control_enable"] = "Y";
if(!isset($aUserOpt["messages"]["support"]) || $aUserOpt["messages"]["support"] == "") $aUserOpt["messages"]["support"] = "Y";
if(!isset($aUserOpt["messages"]["security"]) || $aUserOpt["messages"]["security"] == "") $aUserOpt["messages"]["security"] = "Y";
if(!isset($aUserOpt["messages"]["perfmon"]) || $aUserOpt["messages"]["perfmon"] == "") $aUserOpt["messages"]["perfmon"] = "Y";
if(!isset($aUserOpt["sound"]) || $aUserOpt["sound"] == "") $aUserOpt["sound"] = "N";
if(!isset($aUserOpt["sound_login"]) || $aUserOpt["sound_login"] == "") $aUserOpt["sound_login"] = "/bitrix/sounds/main/bitrix_tune.mp3";
}
$message = null;
if($e = $APPLICATION->GetException())
{
$message = new CAdminMessage(GetMessage("user_sett_err_title"), $e);
echo $message->Show();
}
if(!empty(\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"]))
{
CAdminMessage::ShowMessage(array("MESSAGE"=>GetMessage("user_sett_mess_title"), "TYPE"=>"OK", "DETAILS"=>\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"], "HTML"=>true));
unset(\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"]);
}
?>