PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/main/admin/user_settings.php

https://gitlab.com/alexprowars/bitrix
PHP | 302 lines | 277 code | 19 blank | 6 comment | 76 complexity | af259ad161e249549b5e23bb9cf96fbe MD5 | raw file
  1. <?
  2. /**
  3. * @global CMain $APPLICATION
  4. * @global CUser $USER
  5. * */
  6. require_once(dirname(__FILE__)."/../include/prolog_admin_before.php");
  7. define("HELP_FILE", "settings/user_settings.php");
  8. $editable = ($USER->CanDoOperation('edit_own_profile') || $USER->CanDoOperation('edit_other_settings'));
  9. if (!$USER->CanDoOperation('view_other_settings') && !$editable)
  10. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  11. IncludeModuleLangFile(__FILE__);
  12. $aTabs = array(
  13. array("DIV" => "edit1", "TAB" => GetMessage("user_sett_tab"), "ICON"=>"", "TITLE"=>GetMessage("user_sett_tab_title")),
  14. array("DIV" => "edit2", "TAB" => GetMessage("user_sett_del"), "ICON"=>"", "TITLE"=>GetMessage("user_sett_del_title")),
  15. );
  16. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  17. $bFormValues = false;
  18. $sSuccessMsg = "";
  19. if($_REQUEST["action"] <> "" && $editable && check_bitrix_sessid())
  20. {
  21. if($_REQUEST["action"] == "clear")
  22. {
  23. CUserOptions::DeleteUsersOptions($USER->GetID());
  24. $sSuccessMsg .= GetMessage("user_sett_mess_del")."<br>";
  25. }
  26. if($_REQUEST["action"] == "clear_links")
  27. {
  28. CUserOptions::DeleteOption("start_menu", "recent");
  29. $sSuccessMsg .= GetMessage("user_sett_mess_links")."<br>";
  30. }
  31. if($_REQUEST["action"] == "clear_all" && $USER->CanDoOperation('edit_other_settings'))
  32. {
  33. CUserOptions::DeleteCommonOptions();
  34. $sSuccessMsg .= GetMessage("user_sett_mess_del_common")."<br>";
  35. }
  36. if($_REQUEST["action"] == "clear_all_user" && $USER->CanDoOperation('edit_other_settings'))
  37. {
  38. CUserOptions::DeleteUsersOptions();
  39. $sSuccessMsg .= GetMessage("user_sett_mess_del_user")."<br>";
  40. }
  41. if($sSuccessMsg <> "")
  42. {
  43. \Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"] = $sSuccessMsg;
  44. LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANGUAGE_ID."&".$tabControl->ActiveTabParam());
  45. }
  46. }
  47. if($_SERVER["REQUEST_METHOD"]=="POST" && $_REQUEST["Update"]=="Y" && $editable && check_bitrix_sessid())
  48. {
  49. $aMsg = array();
  50. if(empty($aMsg))
  51. {
  52. $aFields = array(
  53. "context_menu" => ($_REQUEST["context_menu"] == "Y"? "Y":"N"),
  54. "context_ctrl" => ($_REQUEST["context_ctrl"] == "Y"? "Y":"N"),
  55. "autosave" => ($_REQUEST["autosave"] == "Y"? "Y":"N"),
  56. "start_menu_links" => intval($_REQUEST["start_menu_links"]),
  57. "start_menu_preload" => ($_REQUEST["start_menu_preload"] == "Y"? "Y":"N"),
  58. "start_menu_title" => ($_REQUEST["start_menu_title"] == "Y"? "Y":"N"),
  59. "panel_dynamic_mode" => ($_REQUEST["panel_dynamic_mode"] == "Y"? "Y":"N"),
  60. "page_edit_control_enable" => ($_REQUEST["page_edit_control_enable"] == "Y"? "Y":"N"),
  61. "messages" => array(
  62. "support"=>($_REQUEST["messages_support"] == "Y"? "Y":"N"),
  63. "security"=>($_REQUEST["messages_security"] == "Y"? "Y":"N"),
  64. "perfmon"=>($_REQUEST["messages_perfmon"] == "Y"? "Y":"N"),
  65. ),
  66. "sound" => ($_REQUEST["sound"] == "Y"? "Y":"N"),
  67. "sound_login" => $_REQUEST["sound_login"],
  68. );
  69. //common default
  70. if($USER->CanDoOperation('edit_other_settings') && $_REQUEST["default"] == "Y")
  71. {
  72. CUserOptions::SetOption("global", "settings", $aFields, true);
  73. $sSuccessMsg .= GetMessage("user_sett_mess_save")."<br>";
  74. }
  75. //personal
  76. CUserOptions::SetOption("global", "settings", $aFields);
  77. $sSuccessMsg .= GetMessage("user_sett_mess_save1")."<br>";
  78. \Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"] = $sSuccessMsg;
  79. LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANGUAGE_ID);
  80. }
  81. else
  82. {
  83. $bFormValues = true;
  84. $APPLICATION->ThrowException(new CAdminException($aMsg));
  85. }
  86. }
  87. $APPLICATION->SetTitle(GetMessage("user_sett_title"));
  88. require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
  89. if($bFormValues)
  90. {
  91. $aUserOpt = array(
  92. "context_menu"=>$_REQUEST["context_menu"],
  93. "context_ctrl"=>$_REQUEST["context_ctrl"],
  94. "autosave"=>$_REQUEST["autosave"],
  95. "start_menu_links"=>$_REQUEST["start_menu_links"],
  96. "start_menu_preload"=>$_REQUEST["start_menu_preload"],
  97. "start_menu_title"=>$_REQUEST["start_menu_title"],
  98. "panel_dynamic_mode"=>$_REQUEST["panel_dynamic_mode"],
  99. "page_edit_control_enable" => $_REQUEST['page_edit_control_enable'],
  100. "messages" => array(
  101. "support"=>$_REQUEST["messages_support"],
  102. "security"=>$_REQUEST["messages_security"],
  103. "perfmon"=>$_REQUEST["messages_perfmon"],
  104. ),
  105. "sound" => $_REQUEST["sound"],
  106. "sound_login" => $_REQUEST["sound_login"],
  107. );
  108. }
  109. else
  110. {
  111. $aUserOpt = CUserOptions::GetOption("global", "settings");
  112. if($aUserOpt["context_menu"] == "") $aUserOpt["context_menu"] = "Y";
  113. if($aUserOpt["context_ctrl"] == "") $aUserOpt["context_ctrl"] = "N";
  114. if($aUserOpt["autosave"] == "") $aUserOpt["autosave"] = "Y";
  115. if($aUserOpt["start_menu_links"] == "") $aUserOpt["start_menu_links"] = "5";
  116. if($aUserOpt["start_menu_preload"] == "") $aUserOpt["start_menu_preload"] = "N";
  117. if($aUserOpt["start_menu_title"] == "") $aUserOpt["start_menu_title"] = "Y";
  118. if($aUserOpt["panel_dynamic_mode"] == "") $aUserOpt["panel_dynamic_mode"] = "N";
  119. if($aUserOpt["page_edit_control_enable"] == "") $aUserOpt["page_edit_control_enable"] = "Y";
  120. if($aUserOpt["messages"]["support"] == "") $aUserOpt["messages"]["support"] = "Y";
  121. if($aUserOpt["messages"]["security"] == "") $aUserOpt["messages"]["security"] = "Y";
  122. if($aUserOpt["messages"]["perfmon"] == "") $aUserOpt["messages"]["perfmon"] = "Y";
  123. if($aUserOpt["sound"] == "") $aUserOpt["sound"] = "N";
  124. if($aUserOpt["sound_login"] == "") $aUserOpt["sound_login"] = "/bitrix/sounds/main/bitrix_tune.mp3";
  125. }
  126. $message = null;
  127. if($e = $APPLICATION->GetException())
  128. {
  129. $message = new CAdminMessage(GetMessage("user_sett_err_title"), $e);
  130. echo $message->Show();
  131. }
  132. if(!empty(\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"]))
  133. {
  134. CAdminMessage::ShowMessage(array("MESSAGE"=>GetMessage("user_sett_mess_title"), "TYPE"=>"OK", "DETAILS"=>\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"], "HTML"=>true));
  135. unset(\Bitrix\Main\Application::getInstance()->getSession()["ADMIN"]["USER_SETTINGS_MSG"]);
  136. }
  137. ?>
  138. <form method="POST" name="form1" action="<?echo $APPLICATION->GetCurPage()?>">
  139. <?=bitrix_sessid_post()?>
  140. <input type="hidden" name="Update" value="Y">
  141. <input type="hidden" name="lang" value="<?echo LANG?>">
  142. <?
  143. $tabControl->Begin();
  144. $tabControl->BeginNextTab();
  145. ?>
  146. <tr class="heading">
  147. <td colspan="2"><?echo GetMessage("user_sett_personal")?></td>
  148. </tr>
  149. <tr>
  150. <td width="40%"><?echo GetMessage("user_sett_context")?></td>
  151. <td width="60%"><input type="checkbox" name="context_menu" value="Y"<?if($aUserOpt["context_menu"] == "Y") echo " checked"?> onclick="this.form.context_ctrl[0].disabled = this.form.context_ctrl[1].disabled = !this.checked"></td>
  152. </tr>
  153. <tr>
  154. <td class="adm-detail-valign-top"><?echo GetMessage("user_sett_context_ctrl")?></td>
  155. <td>
  156. <input type="radio" name="context_ctrl" id="context_ctrl_N" value="N"<?if($aUserOpt["context_ctrl"] <> "Y") echo " checked"?><?if($aUserOpt["context_menu"] <> "Y") echo " disabled"?>><label for="context_ctrl_N"><?echo GetMessage("user_sett_context_ctrl_val1")?></label><br>
  157. <input type="radio" name="context_ctrl" id="context_ctrl_Y" value="Y"<?if($aUserOpt["context_ctrl"] == "Y") echo " checked"?><?if($aUserOpt["context_menu"] <> "Y") echo " disabled"?>><label for="context_ctrl_Y"><?echo GetMessage("user_sett_context_ctrl_val2")?></label><br>
  158. </td>
  159. </tr>
  160. <tr>
  161. <td><?echo GetMessage("user_sett_autosave")?></td>
  162. <td><input type="checkbox" name="autosave" value="Y"<?if($aUserOpt["autosave"] == "Y") echo " checked=\"checked\""?> /></td>
  163. </tr>
  164. <tr class="heading">
  165. <td colspan="2"><?echo GetMessage("user_sett_panel")?></td>
  166. </tr>
  167. <tr>
  168. <td><?echo GetMessage("MAIN_OPTION_DYN_EDIT")?></td>
  169. <td><input type="checkbox" name="panel_dynamic_mode" value="Y"<?if($aUserOpt["panel_dynamic_mode"] == "Y") echo " checked"?>></td>
  170. </tr>
  171. <tr>
  172. <td><?echo GetMessage("MAIN_OPTION_PAGE_EDIT_ENABLE")?></td>
  173. <td><input type="checkbox" name="page_edit_control_enable" value="Y"<?if($aUserOpt["page_edit_control_enable"] != "N") echo " checked"?>></td>
  174. </tr>
  175. <tr class="heading">
  176. <td colspan="2"><?echo GetMessage("user_sett_start")?></td>
  177. </tr>
  178. <tr>
  179. <td><?echo GetMessage("user_sett_start_preload")?></td>
  180. <td><input type="checkbox" name="start_menu_preload" value="Y"<?if($aUserOpt["start_menu_preload"] == "Y") echo " checked"?>></td>
  181. </tr>
  182. <tr>
  183. <td><?echo GetMessage("user_sett_titles")?></td>
  184. <td><input type="checkbox" name="start_menu_title" value="Y"<?if($aUserOpt["start_menu_title"] == "Y") echo " checked"?>></td>
  185. </tr>
  186. <tr>
  187. <td><?echo GetMessage("user_sett_start_links")?></td>
  188. <td>
  189. <input type="text" name="start_menu_links" value="<?echo htmlspecialcharsbx($aUserOpt["start_menu_links"])?>" size="10">
  190. <a href="javascript:if(confirm('<?echo CUtil::addslashes(GetMessage("user_sett_del_links_conf"))?>'))window.location='user_settings.php?action=clear_links&lang=<?echo LANG?>&<?echo bitrix_sessid_get()?>';"><?echo GetMessage("user_sett_del_links")?></a>
  191. </td>
  192. </tr>
  193. <tr class="heading">
  194. <td colspan="2"><?echo GetMessage("user_sett_sounds")?></td>
  195. </tr>
  196. <tr>
  197. <td><?echo GetMessage("user_sett_sounds_play")?></td>
  198. <td><input type="checkbox" name="sound" value="Y"<?if($aUserOpt["sound"] == "Y") echo " checked"?>></td>
  199. </tr>
  200. <tr>
  201. <td><?echo GetMessage("user_sett_sounds_login")?></td>
  202. <td>
  203. <?
  204. CAdminFileDialog::ShowScript(
  205. Array
  206. (
  207. "event" => "OpenFileBrowserWindFile",
  208. "arResultDest" => Array("FORM_NAME" => "form1", "FORM_ELEMENT_NAME" => "sound_login"),
  209. "arPath" => Array('PATH' => '/bitrix/sounds/main/'),
  210. "select" => 'F',// F - file only, D - folder only
  211. "operation" => 'O',// O - open, S - save
  212. "showUploadTab" => true,
  213. "fileFilter" => 'wma,mp3,aac',
  214. "allowAllFiles" => true,
  215. "SaveConfig" => true
  216. )
  217. );
  218. ?>
  219. <input type="text" name="sound_login" value="<?echo htmlspecialcharsbx($aUserOpt["sound_login"])?>" size="40">
  220. <input type="button" value="..." title="<?echo GetMessage("user_sett_sounds_button_title")?>" onclick="OpenFileBrowserWindFile()">
  221. </td>
  222. </tr>
  223. <tr class="heading">
  224. <td colspan="2"><?echo GetMessage("user_sett_mess_head")?></td>
  225. </tr>
  226. <tr>
  227. <td class="adm-detail-valign-top"><?echo GetMessage("user_sett_mess")?></td>
  228. <td>
  229. <div class="adm-list">
  230. <div class="adm-list-item">
  231. <div class="adm-list-control"><input type="checkbox" name="messages_support" value="Y" id="messages_support"<?if($aUserOpt['messages']['support'] == 'Y') echo " checked"?>></div>
  232. <div class="adm-list-label"><label for="messages_support"><?echo GetMessage("user_sett_mess_support")?></label></div>
  233. </div>
  234. <?if(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/security/install/index.php")):?>
  235. <div class="adm-list-item">
  236. <div class="adm-list-control"><input type="checkbox" name="messages_security" value="Y" id="messages_security"<?if($aUserOpt['messages']['security'] == 'Y') echo " checked"?>></div>
  237. <div class="adm-list-label"><label for="messages_security"><?echo GetMessage("user_sett_mess_security")?></label></div>
  238. </div>
  239. <?endif;?>
  240. <?if(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/perfmon/install/index.php")):?>
  241. <div class="adm-list-item">
  242. <div class="adm-list-control"><input type="checkbox" name="messages_perfmon" value="Y" id="messages_perfmon"<?if($aUserOpt['messages']['perfmon'] == 'Y') echo " checked"?>></div>
  243. <div class="adm-list-label"><label for="messages_perfmon"><?echo GetMessage("user_sett_mess_perfmon")?></label></div>
  244. </div>
  245. <?endif;?>
  246. </div>
  247. </td>
  248. </tr>
  249. <?if($USER->CanDoOperation('edit_other_settings')):?>
  250. <tr class="heading">
  251. <td colspan="2"><?echo GetMessage("user_sett_common")?></td>
  252. </tr>
  253. <tr>
  254. <td><?echo GetMessage("user_sett_common_set")?></td>
  255. <td><input type="checkbox" name="default" value="Y"></td>
  256. </tr>
  257. <?endif;?>
  258. <?
  259. $tabControl->BeginNextTab();
  260. ?>
  261. <tr>
  262. <td colspan="2"><a href="javascript:if(confirm('<?echo CUtil::addslashes(GetMessage("user_sett_del_pers_conf"))?>'))window.location='user_settings.php?action=clear&lang=<?echo LANG?>&<?echo bitrix_sessid_get()?>&tabControl_active_tab=edit2';"><?echo GetMessage("user_sett_del_pers1")?></a></td>
  263. </tr>
  264. <?if($USER->CanDoOperation('edit_other_settings')):?>
  265. <tr>
  266. <td colspan="2"><a href="javascript:if(confirm('<?echo CUtil::addslashes(GetMessage("user_sett_del_common_conf"))?>'))window.location='user_settings.php?action=clear_all&lang=<?echo LANG?>&<?echo bitrix_sessid_get()?>&tabControl_active_tab=edit2';"><?echo GetMessage("user_sett_del_common1")?></a></td>
  267. </tr>
  268. <tr>
  269. <td colspan="2"><a href="javascript:if(confirm('<?echo CUtil::addslashes(GetMessage("user_sett_del_user_conf"))?>'))window.location='user_settings.php?action=clear_all_user&lang=<?echo LANG?>&<?echo bitrix_sessid_get()?>&tabControl_active_tab=edit2';"><?echo GetMessage("user_sett_del_user1")?></a></td>
  270. </tr>
  271. <?endif;?>
  272. <?
  273. $tabControl->Buttons();
  274. ?>
  275. <input<?if(!$editable) echo " disabled"?> type="submit" name="apply" value="<?echo GetMessage("admin_lib_edit_apply")?>" title="<?echo GetMessage("admin_lib_edit_apply_title")?>" class="adm-btn-save">
  276. <?
  277. $tabControl->End();
  278. $tabControl->ShowWarnings("form1", $message);
  279. ?>
  280. </form>
  281. <?
  282. require_once ($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");
  283. ?>