PageRenderTime 37ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/fileman/admin/fileman_stickers_admin.php

https://gitlab.com/alexprowars/bitrix
PHP | 239 lines | 199 code | 35 blank | 5 comment | 26 complexity | 0f5142ddf1b83c5036f02a1e0f6c5c3e MD5 | raw file
  1. <?
  2. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  3. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/prolog.php");
  4. IncludeModuleLangFile(__FILE__);
  5. CModule::IncludeModule("fileman");
  6. $APPLICATION->SetTitle(GetMessage('FM_ST_ACCESS_TITLE'));
  7. if (!$USER->CanDoOperation('fileman_edit_all_settings'))
  8. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  9. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/classes/general/sticker.php");
  10. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
  11. // Get stickers tasks with names
  12. $arTasks = CSticker::GetTasks();
  13. //Fetch user groups
  14. $arGroups = array();
  15. $db_groups = CGroup::GetList("sort", "asc", array("ACTIVE" => "Y", "ADMIN" => "N"));
  16. while($arRes = $db_groups->Fetch())
  17. $arGroups[] = $arRes;
  18. $defaultAccess = COption::GetOptionString('fileman', 'stickers_default_access', false);
  19. if ($defaultAccess === false)
  20. foreach ($arTasks as $id => $task)
  21. {
  22. if ($task['letter'] == 'D')
  23. {
  24. $defaultAccess = $id;
  25. break;
  26. }
  27. }
  28. if($REQUEST_METHOD=="POST" && $_POST['saveperm'] == 'Y' && check_bitrix_sessid())
  29. {
  30. //Clear all
  31. if ($_REQUEST['clear_all'] == "Y")
  32. CSticker::DeleteAll();
  33. // Settings
  34. COption::SetOptionString("fileman", "stickers_hide_bottom", $_REQUEST['set_hide_bottom'] == "Y" ? "Y" : "N");
  35. COption::SetOptionString("fileman", "stickers_start_sizes", $_REQUEST['set_sizes']);
  36. COption::SetOptionString("fileman", "stickers_use_hotkeys", $_REQUEST['use_hotkeys'] == "Y" ? "Y" : "N");
  37. // Access
  38. $arTaskPerm = Array();
  39. foreach ($arGroups as $group)
  40. {
  41. $tid = ${"TASKS_".$group["ID"]};
  42. if ($tid)
  43. $arTaskPerm[$group["ID"]] = intval($tid);
  44. }
  45. CSticker::SaveAccessPermissions($arTaskPerm);
  46. COption::SetOptionString('fileman', 'stickers_default_access', intval($_REQUEST['st_default_access']));
  47. $defaultAccess = intval($_REQUEST['st_default_access']);
  48. }
  49. $arTaskPerm = CSticker::GetAccessPermissions();
  50. $strTaskOpt = "";
  51. foreach ($arTasks as $id => $task)
  52. $strTaskOpt .= '<option value="'.$id.'">'.($task['letter'] <> '' ? '['.$task['letter'].'] ' : '').$task['title'].'</option>';
  53. $strGroupsOpt = '<option value="">('.GetMessage('FM_ST_SELECT_GROUP').')</option>';
  54. $arGroupIndex = array();
  55. foreach ($arGroups as $group)
  56. {
  57. $arGroupIndex[$group['ID']] = $group['NAME'];
  58. $strGroupsOpt .= '<option value="'.$group['ID'].'">'.htmlspecialcharsex($group['NAME']).' ['.intval($group['ID']).']</option>';
  59. }
  60. ?>
  61. <form method="POST" action="<?= $APPLICATION->GetCurPage()?>?lang=<?= LANGUAGE_ID?>" name="st_access_form">
  62. <input type="hidden" name="site" value="<?= htmlspecialcharsbx($site) ?>">
  63. <input type="hidden" name="saveperm" value="Y">
  64. <input type="hidden" id="bxst_clear_all" name="clear_all" value="N">
  65. <input type="hidden" name="lang" value="<?= LANGUAGE_ID?>">
  66. <?= bitrix_sessid_post()?>
  67. <?
  68. $aTabs = array(
  69. array("DIV" => "stickers_settings", "TAB" => GetMessage("FM_ST_SETTINGS"), "ICON" => "fileman", "TITLE" => GetMessage("FM_ST_SETTINGS_TITLE")),
  70. array("DIV" => "stickers_access", "TAB" => GetMessage("FM_ST_ACCESS"), "ICON" => "fileman", "TITLE" => GetMessage("FM_ST_ACCESS_TITLE")),
  71. );
  72. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  73. $tabControl->Begin();
  74. ?>
  75. <?$tabControl->BeginNextTab();?>
  76. <tr>
  77. <td colspan="2">
  78. <table>
  79. <tr>
  80. <td class="adm-detail-content-cell-l" width="40%">
  81. <input type="checkbox" name="set_hide_bottom" id="set_hide_bottom" value="Y" <? if (COption::GetOptionString("fileman", "stickers_hide_bottom", "Y") == "Y") {echo "checked";}?>/>
  82. </td>
  83. <td class="adm-detail-content-cell-r" width="60%"><label for="set_hide_bottom"><?= GetMessage('FM_ST_SET_HIDE_BOTTOM')?></label></td>
  84. </tr>
  85. <tr style="display: none;">
  86. <td class="adm-detail-content-cell-l">
  87. <input type="checkbox" name="set_supafly" id="set_supafly" value="Y"/>
  88. </td>
  89. <td class="adm-detail-content-cell-r"><label for="set_supafly"><?= GetMessage('FM_ST_SET_SUPAFLY')?></label></td>
  90. </tr>
  91. <tr style="display: none;">
  92. <td class="adm-detail-content-cell-l">
  93. <input type="checkbox" name="set_smart_marker" id="set_smart_marker" value="Y" />
  94. </td>
  95. <td class="adm-detail-content-cell-r"><label for="set_smart_marker"><?= GetMessage('FM_ST_SET_SMART_MARKER')?></label></td>
  96. </tr>
  97. <tr>
  98. <td class="adm-detail-content-cell-l">
  99. <input type="checkbox" name="use_hotkeys" id="use_hotkeys" value="Y" <?if(COption::GetOptionString("fileman", "stickers_use_hotkeys", "Y") == "Y"){echo "checked";}?>/>
  100. </td>
  101. <td class="adm-detail-content-cell-r"><label for="use_hotkeys"><?= GetMessage('FM_ST_USE_HOTKEYS')?></label></td>
  102. </tr>
  103. <tr>
  104. <td class="adm-detail-content-cell-l"><label for="set_sizes"><?= GetMessage('FM_ST_SET_SIZES')?>:</label></td>
  105. <td class="adm-detail-content-cell-r">
  106. <?$size = COption::GetOptionString("fileman", "stickers_start_sizes", "350_200");?>
  107. <select name="set_sizes" id="set_sizes">
  108. <option value="280_160" <? if ($size == "280_160") {echo "selected";}?>>280 x 160</option>
  109. <option value="350_200" <? if ($size == "350_200") {echo "selected";}?>>350 x 200</option>
  110. <option value="400_250" <? if ($size == "400_250") {echo "selected";}?>>400 x 250</option>
  111. </select>
  112. </td>
  113. </tr>
  114. <tr>
  115. <td colSpan="2" class="adm-detail-content-cell-r">
  116. <a href="javascript: void('');" onclick="if (confirm('<?= GetMessage('FM_ST_CLEAR_ALL_CONFIRM');?>')) {BX('bxst_clear_all').value='Y'; document.forms.st_access_form.submit(); return false;}"><?= GetMessage('FM_ST_CLEAR_ALL');?></a>
  117. </td>
  118. </tr>
  119. </table>
  120. </td>
  121. </tr>
  122. <?$tabControl->BeginNextTab();?>
  123. <tr>
  124. <td colspan="2">
  125. <script>
  126. function addGroup()
  127. {
  128. var tbl = BX('bxst_access_table');
  129. var r = tbl.insertRow(tbl.rows.length - 2);
  130. var grSel = BX.adjust(r.insertCell(-1), {props: {className: 'field-name', width: '50%'}}).appendChild(BX('bxst_group_sel').cloneNode(true));
  131. grSel.removeAttribute('id');
  132. var taskSel = BX.adjust(r.insertCell(-1), {props: {width: '50%'}}).appendChild(BX('bxst_task_sel').cloneNode(true));
  133. taskSel.removeAttribute('id');
  134. grSel.onchange = function()
  135. {
  136. if (this.value.length > 0)
  137. taskSel.name = "TASKS_" + this.value;
  138. else
  139. taskSel.name = "";
  140. };
  141. }
  142. </script>
  143. <table class="edit-table" id="bxst_access_table">
  144. <tr>
  145. <td class="field-name" width="50%"><label for="st_default_access"><b><?= GetMessage('FM_ST_ACCESS_DEFAULT')?>:</b></label></td>
  146. <td width="50%">
  147. <select name="st_default_access" id="st_default_access">
  148. <?foreach ($arTasks as $id => $task):?>
  149. <option value="<?= $id?>" <? if($id == $defaultAccess){echo 'selected';}?>>
  150. <? echo($task['letter'] <> '' ? '['.$task['letter'].'] ' : '').$task['title']; ?></option>
  151. <?endforeach;?>
  152. </select></td>
  153. </tr>
  154. <?foreach($arTaskPerm as $group_id => $task_id):?>
  155. <tr>
  156. <td class="field-name" width="50%"><label for="TASKS_<?= $group_id?>"><?= htmlspecialcharsex($arGroupIndex[$group_id])." [<a title=\"".GetMessage("FM_ST_EDIT_GROUP_TITLE")."\" href=\"/bitrix/admin/group_edit.php?ID=".$group_id."&amp;lang=".LANGUAGE_ID."\">".$group_id."</a>]"?>:</label></td>
  157. <td width="50%">
  158. <select name="TASKS_<?= $group_id?>" id="TASKS_<?= $group_id?>">
  159. <option value="">&lt; <?= GetMessage('FM_ST_ACCESS_DEFAULT')?> &gt;</option>
  160. <?foreach ($arTasks as $id => $task):?>
  161. <option value="<?= $id?>" <?if ($task_id == $id){ echo" selected";}?>><?= htmlspecialcharsex(($task['letter'] <> '' ? '['.$task['letter'].'] ' : '').$task['title'])?></option>
  162. <?endforeach;?>
  163. </select>
  164. </td>
  165. </tr>
  166. <?endforeach;?>
  167. <tr>
  168. <td class="field-name" width="50%">
  169. </td>
  170. <td width="50%">
  171. </td>
  172. </tr>
  173. <tr>
  174. <td colSpan="2" align="center">
  175. <a href="javascript: void('');" onclick="addGroup(); return false;"><?= GetMessage('FM_ST_ADD_GROUP_TASK')?></a>
  176. </td>
  177. </tr>
  178. </table>
  179. <?= BeginNote();?>
  180. <?= GetMessage("FM_ST_ACCESS_NOTE", array('#LINK_BEGIN#' => '<a href="/bitrix/admin/settings.php?lang='.LANGUAGE_ID.'&mid=fileman&tabControl_active_tab=edit3&'.bitrix_sessid_get().'">', '#LINK_END#' => '</a>'));?>
  181. <?= EndNote();?>
  182. <div style="display: none;">
  183. <select id="bxst_group_sel"><?= $strGroupsOpt?></select>
  184. <select id="bxst_task_sel">
  185. <option value=""><?= '< '.mb_strtolower(GetMessage('FM_ST_ACCESS_DEFAULT')).' >'?></option>
  186. <?= $strTaskOpt?>
  187. </select>
  188. </div>
  189. </td>
  190. </tr>
  191. <?$tabControl->EndTab();?>
  192. <?
  193. $tabControl->Buttons(
  194. array(
  195. "disabled" => false,
  196. "back_url" => "/bitrix/admin/?lang=".LANGUAGE_ID."&".bitrix_sessid_get()
  197. )
  198. );
  199. ?>
  200. <?$tabControl->End();?>
  201. </form>
  202. <?
  203. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
  204. ?>