%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/controller/admin/ |
Current File : /home/bitrix/www/bitrix/modules/controller/admin/controller_group_edit.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); /** @global CMain $APPLICATION */ /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CUserTypeManager $USER_FIELD_MANAGER */ if (!$USER->CanDoOperation("controller_group_view") || !CModule::IncludeModule("controller")) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/controller/prolog.php"); IncludeModuleLangFile(__FILE__); $subordinate_id = COperation::GetIDByName('edit_subordinate_users'); $arMainSubordinateTask = array(); $db_task = CTask::GetList(array("MODULE_ID" => "asc", "LETTER" => "asc"), array("BINDING" => 'module')); while ($ar_task = $db_task->GetNext()) { if (!isset($arTasksModules[$ar_task['MODULE_ID']])) { $arTasksModules[$ar_task['MODULE_ID']] = array("reference" => array(), "reference_id" => array()); } $arTasksModules[$ar_task['MODULE_ID']]["reference"][] = '['.($ar_task['LETTER']? $ar_task['LETTER']: '..').'] '.CTask::GetLangTitle($ar_task['NAME'], $ar_task['MODULE_ID']); $arTasksModules[$ar_task['MODULE_ID']]["reference_id"][] = $ar_task['NAME']; if ($ar_task['MODULE_ID'] == 'main') { $arOpInTask = CTask::GetOperations($ar_task['ID']); if (in_array($subordinate_id, $arOpInTask)) $arMainSubordinateTask[] = $ar_task['NAME']; } } $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("CTRLR_GR_ED_TAB1"), "ICON" => "controller_group_edit", "TITLE" => "", ), array( "DIV" => "edit2", "TAB" => GetMessage("CTRLR_GR_ED_TAB2"), "ICON" => "controller_group_edit_2", "TITLE" => GetMessage("CTRLR_GR_ED_TAB2_TITLE"), ), array( "DIV" => "edit3", "TAB" => GetMessage("CTRLR_GR_ED_TAB3"), "ICON" => "controller_group_edit_3", "TITLE" => GetMessage("CTRLR_GR_ED_TAB3"), ), array( "DIV" => "edit4", "TAB" => GetMessage("CTRLR_GR_ED_TAB4"), "ICON" => "controller_group_edit_4", "TITLE" => GetMessage("CTRLR_GR_ED_TAB4_TITLE"), ), array( "DIV" => "edit5", "TAB" => GetMessage("CTRL_GR_ED_TAB5"), "ICON" => "controller_group_edit_5", "TITLE" => GetMessage("CTRL_GR_ED_TAB5_TITLE"), ), ); $opt_cnt = 6; $arThirdSettings = CControllerGroupSettings::Get3rdPartyOptions(); foreach ($arThirdSettings as $obOption) { /** @var IControllerGroupOption $obOption */ $aTabs[] = array( "DIV" => "edit".$opt_cnt, "TAB" => $obOption->GetName(), "ICON" => $obOption->GetIcon(), "TITLE" => $obOption->GetTitle(), ); $opt_cnt++; } $aTabs[] = array( "DIV" => "edit0", "TAB" => GetMessage("CTRLR_GR_ED_TAB5"), "ICON" => "controller_group_edit_0", "TITLE" => GetMessage("CTRLR_GR_ED_TAB5_TITLE"), ); if ( (count($USER_FIELD_MANAGER->GetUserFields($ENTITY_ID)) > 0) || ($USER_FIELD_MANAGER->GetRights($ENTITY_ID) >= "W") ) { $aTabs[] = $USER_FIELD_MANAGER->EditFormTab($ENTITY_ID); } $tabControl = new CAdminTabControl("tabControl", $aTabs); $strError = ""; $ID = intval($_REQUEST['ID']); $copy_id = intval($_REQUEST['copy_id']); $ENTITY_ID = "CONTROLLER_GROUP"; $message = null; $bVarsFromForm = false; if ( $_SERVER['REQUEST_METHOD'] == "POST" && ( strlen($_REQUEST['save']) > 0 || strlen($_REQUEST['apply']) > 0 ) && check_bitrix_sessid() && $USER->CanDoOperation("controller_group_manage") ) { $arSettings = array(); $arOptions = $_REQUEST['OPTIONS']; $arSettings["default"] = array(); $arDefaultOptions = $arOptions['default']; if (isset($arDefaultOptions["modules"])) { if (!is_array($arDefaultOptions["modules"])) $arDefaultOptions["modules"] = array($arDefaultOptions["modules"]); $arSettings["default"]["modules"] = array(); $arModules = CControllerGroupSettings::GetModules(); foreach ($arModules as $module_id => $name) { if ($module_id == "main") continue; if (in_array($module_id, $arDefaultOptions["modules"])) $arSettings["default"]["modules"][] = $module_id; } } $arSettings["default"]["options"] = array(); $arModuleOptions = CControllerGroupSettings::GetData(); foreach ($arModuleOptions as $id => $info) { if (!is_array($info["options"]) || count($info["options"]) <= 0) continue; $arSettings["default"]["options"][$id] = array(); foreach ($info["options"] as $option_id => $option_ar) if (isset($arDefaultOptions[$option_id])) $arSettings["default"]["options"][$id][$option_id] = $arDefaultOptions[$option_id]; } if (isset($arDefaultOptions["security"])) { if (!is_array($arDefaultOptions["security"])) $arDefaultOptions["security"] = array($arDefaultOptions["security"]); $arSettings["default"]["security"] = array(); if ($arDefaultOptions["security"]["limit_admin"] == "Y") $arSettings["default"]["security"]["limit_admin"] = "Y"; } $arSettings["default"]["security"]["groups"] = array(); foreach ($_REQUEST['SECURITY'] as $i => $arSec) { if (strlen($arSec["GROUP"]) > 0) { $arSettings["default"]["security"]["groups"][$arSec["GROUP"]] = $arSec["RIGHTS"]; if (isset($_REQUEST['SUB_SECURITY'][$i]) && in_array($arSec["RIGHTS"]['main'], $arMainSubordinateTask)) $arSettings["default"]["security"]["subord_groups"][$arSec["GROUP"]] = $_REQUEST['SUB_SECURITY'][$i]; } } foreach ($arThirdSettings as $obOtherOption) { /** @var IControllerGroupOption $obOtherOption */ $arSettings[$obOtherOption->id] = array(); $arOtherOptions = $obOtherOption->GetOptionArray(); foreach ($arOtherOptions as $option_id => $arOptionParams) { if (isset($arOptions[$obOtherOption->id][$option_id])) $arSettings[$obOtherOption->id][$option_id] = $arOptions[$obOtherOption->id][$option_id]; } } $COUNTER_UPDATE_PERIOD = intval($_REQUEST['COUNTER_UPDATE_PERIOD']); if (isset($_REQUEST['COUNTER_UPDATE_PERIOD_TYPE'])) { if ($_REQUEST['COUNTER_UPDATE_PERIOD_TYPE'] == 'H') $COUNTER_UPDATE_PERIOD *= 60; elseif ($_REQUEST['COUNTER_UPDATE_PERIOD_TYPE'] == 'D') $COUNTER_UPDATE_PERIOD *= 60 * 24; elseif ($_REQUEST['COUNTER_UPDATE_PERIOD_TYPE'] == 'W') $COUNTER_UPDATE_PERIOD *= 60 * 24 * 7; elseif ($_REQUEST['COUNTER_UPDATE_PERIOD_TYPE'] == 'N') $COUNTER_UPDATE_PERIOD *= 60 * 24 * 30; } $INSTALL_INFO = serialize($arSettings); $arFields = array( "NAME" => $_REQUEST['NAME'], "DESCRIPTION" => $_REQUEST['DESCRIPTION'], "INSTALL_PHP" => $_REQUEST['INSTALL_PHP'], "UPDATE_PERIOD" => $_REQUEST['UPDATE_PERIOD'], "TRIAL_PERIOD" => $_REQUEST['TRIAL_PERIOD'], "UNINSTALL_PHP" => $_REQUEST['UNINSTALL_PHP'], "INSTALL_INFO" => $INSTALL_INFO, "CHECK_COUNTER_FREE_SPACE" => $_REQUEST['CHECK_COUNTER_FREE_SPACE'], "CHECK_COUNTER_SITES" => $_REQUEST['CHECK_COUNTER_SITES'], "CHECK_COUNTER_USERS" => $_REQUEST['CHECK_COUNTER_USERS'], "CHECK_COUNTER_LAST_AUTH" => $_REQUEST['CHECK_COUNTER_LAST_AUTH'], "COUNTER_UPDATE_PERIOD" => $COUNTER_UPDATE_PERIOD, ); $USER_FIELD_MANAGER->EditFormAddFields($ENTITY_ID, $arFields); if ($ID > 0) { $res = CControllerGroup::Update($ID, $arFields); if ($_REQUEST["UPDATE_NOW"] == "Y") CControllerGroup::SetGroupSettings($ID); } else { $ID = CControllerGroup::Add($arFields); $res = ($ID > 0); } if (!$res) { if ($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("CTRLR_GR_ED_ER1"), $e); $bVarsFromForm = true; } else { CControllerCounter::SetGroupCounters($ID, $_POST["CONTROLLER_COUNTER_ID"]); if (strlen($save) > 0) LocalRedirect("controller_group_admin.php?lang=".LANG); else LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANG."&ID=".$ID."&".$tabControl->ActiveTabParam()); } } if ($bVarsFromForm) { $mb = false; } elseif ($copy_id > 0) { $mb = CControllerGroup::GetByID($copy_id); } elseif ($ID > 0) { $mb = CControllerGroup::GetByID($ID); } else { $mb = false; } $arGroupFields = $mb? $mb->Fetch(): false; if ($bVarsFromForm) { $arGroupFields = array( "NAME" => $_REQUEST["NAME"], "DESCRIPTION" => $_REQUEST["DESCRIPTION"], "UPDATE_PERIOD" => $_REQUEST["UPDATE_PERIOD"], "COUNTER_UPDATE_PERIOD" => $_REQUEST["COUNTER_UPDATE_PERIOD"], "CHECK_COUNTER_FREE_SPACE" => $_REQUEST["CHECK_COUNTER_FREE_SPACE"], "CHECK_COUNTER_SITES" => $_REQUEST["CHECK_COUNTER_SITES"], "CHECK_COUNTER_USERS" => $_REQUEST["CHECK_COUNTER_USERS"], "CHECK_COUNTER_LAST_AUTH" => $_REQUEST["CHECK_COUNTER_LAST_AUTH"], "INSTALL_PHP" => $_REQUEST["INSTALL_PHP"], "UNINSTALL_PHP" => $_REQUEST["UNINSTALL_PHP"], ); $COUNTER_UPDATE_PERIOD_TYPE = $_REQUEST["COUNTER_UPDATE_PERIOD_TYPE"]; } elseif (!$arGroupFields) { $arGroupFields = array( "UPDATE_PERIOD" => 0, "COUNTER_UPDATE_PERIOD" => 1440, ); } $sDocTitle = ($ID > 0)? preg_replace("'#ID#'i", $ID, GetMessage("CTRLR_GR_ED_TITLE_1")): GetMessage("CTRLR_GR_ED_TITLE_2"); $APPLICATION->SetTitle($sDocTitle); /*************************************************************************** * HTML form ****************************************************************************/ require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "ICON" => "btn_list", "TEXT" => GetMessage("CTRLR_GR_ED_LINK_BACK"), "LINK" => "controller_group_admin.php?lang=".LANGUAGE_ID, ), ); if ($ID > 0 && $USER->CanDoOperation("controller_group_manage")) { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array( "ICON" => "btn_copy", "TEXT" => GetMessage("CTRLR_GR_ED_LINK_COPY"), "LINK" => "controller_group_edit.php?lang=".LANGUAGE_ID."©_id=".$ID, ); $aMenu[] = array( "ICON" => "btn_new", "TEXT" => GetMessage("CTRLR_GR_ED_LINK_NEW"), "LINK" => "controller_group_edit.php?lang=".LANGUAGE_ID, ); $aMenu[] = array( "TEXT" => GetMessage("CTRLR_GR_ED_LINK_DEL"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('".GetMessage("CTRLR_GR_ED_LINK_DEL_CONFIRM")."'))window.location='controller_group_admin.php?action=delete&ID=".$ID."&lang=".LANG."&".bitrix_sessid_get()."';", ); } $context = new CAdminContextMenu($aMenu); $context->Show(); if ($message) echo $message->Show(); echo $USER_FIELD_MANAGER->ShowScript(); ?> <form method="POST" action="<? echo $APPLICATION->GetCurPage() ?>?lang=<?=LANG?>&ID=<?=$ID?>" name="form1"> <?=bitrix_sessid_post()?> <? echo GetFilterHiddens("find_"); ?> <? $tabControl->Begin(); ?> <? $tabControl->BeginNextTab(); ?> <? if ($ID > 0): ?> <tr> <td><? echo GetMessage("CTRLR_GR_ED_ID") ?></td> <td><? echo $ID ?></td> </tr> <? endif ?> <? if (!$copy_id): ?> <tr> <td><? echo GetMessage("CTRLR_GR_ED_CREATED") ?></td> <td><? echo htmlspecialcharsEx($arGroupFields['DATE_CREATE']) ?><? if ($arGroupFields['CREATED_BY_LOGIN'] <> '') echo htmlspecialcharsEx(' ('.$arGroupFields['CREATED_BY_LOGIN'].') '.$arGroupFields['CREATED_BY_NAME'].' '.$arGroupFields['CREATED_BY_LAST_NAME']); ?></td> </tr> <? endif; ?> <? if (!$copy_id): ?> <tr> <td><? echo GetMessage("CTRLR_GR_ED_MODIFIED") ?></td> <td><? echo htmlspecialcharsEx($arGroupFields['TIMESTAMP_X']) ?><? if ($arGroupFields['MODIFIED_BY_LOGIN'] <> '') echo htmlspecialcharsEx(' ('.$arGroupFields['MODIFIED_BY_LOGIN'].') '.$arGroupFields['MODIFIED_BY_NAME'].' '.$arGroupFields['MODIFIED_BY_LAST_NAME']); ?></td> </tr> <? endif; ?> <tr class="adm-detail-required-field"> <td width="40%"><label for="NAME"><? echo GetMessage("CTRLR_GR_ED_NAME") ?></label></td> <td width="60%"><input type="text" name="NAME" id="NAME" size="53" maxlength="255" value="<?=htmlspecialcharsbx($arGroupFields['NAME'])?>"></td> </tr> <tr> <td class="adm-detail-valign-top"><label for="DESCRIPTION"><? echo GetMessage("CTRLR_GR_ED_DESC") ?></label></td> <td><textarea name="DESCRIPTION" id="DESCRIPTION" cols="40" rows="5"><? echo htmlspecialcharsbx($arGroupFields['DESCRIPTION']) ?></textarea></td> </tr> <tr class="heading"> <td colspan="2"><? echo GetMessage("CTRLR_GR_ED_UPD") ?></td> </tr> <tr> <td><label for="UPDATE_PERIOD"><? echo GetMessage("CTRLR_GR_ED_AUTOUPD") ?></label><br/> <? echo GetMessage("CTRLR_GR_ED_AUTOUPD_HELP") ?></td> <td> <input type="text" name="UPDATE_PERIOD" id="UPDATE_PERIOD" size="6" maxlength="6" value="<?=($arGroupFields['UPDATE_PERIOD'] < 0 || trim($arGroupFields['UPDATE_PERIOD']) == ''? '': htmlspecialcharsbx($arGroupFields['UPDATE_PERIOD']))?>"> </td> </tr> <? if ($ID > 0): ?> <tr> <td> <label for="UPDATE_NOW"><? echo GetMessage("CTRLR_GR_ED_UPD_NOW") ?></label> </td> <td> <input type="checkbox" name="UPDATE_NOW" id="UPDATE_NOW" value="Y" title="<? echo GetMessage("CTRLR_GR_ED_TO_TASKS") ?>"> </td> </tr> <? endif ?> <? $tabControl->BeginNextTab(); ?> <? if ($bVarsFromForm) { $arGroupOptions = array(); if (is_array($_REQUEST['OPTIONS'])) foreach ($_REQUEST['OPTIONS'] as $ns => $val) { if ($ns == 'default') { $arGroupOptions[$ns]["modules"] = $val["modules"]; $arGroupOptions[$ns]["security"] = $val["security"]; $arGroupOptions[$ns]["security"]["groups"] = array(); foreach ($_REQUEST['SECURITY'] as $i => $arSec) { if (strlen($arSec["GROUP"]) > 0) { $arGroupOptions[$ns]["security"]["groups"][$arSec["GROUP"]] = $arSec["RIGHTS"]; if (isset($_REQUEST['SUB_SECURITY'][$i])) $arGroupOptions[$ns]["security"]["subord_groups"][$arSec["GROUP"]] = $_REQUEST['SUB_SECURITY'][$i]; } } $arModuleOptions = CControllerGroupSettings::GetData(); foreach ($arModuleOptions as $module_id => $info) { if (!is_array($info["options"]) || count($info["options"]) <= 0) continue; $arOptions = $info["options"]; foreach ($arOptions as $id => $arOptionParams) { if (isset($val[$id])) $arGroupOptions[$ns]["options"][$module_id][$id] = $val[$id]; } } } else { $arGroupOptions[$ns] = $val; } } } else { $arGroupOptions = unserialize($arGroupFields["INSTALL_INFO"]); } $arDefGroupOptions = $arGroupOptions["default"]; ?> <tr> <td width="40%" class="adm-detail-valign-top"><label for="modules"><? echo GetMessage("CTRLR_GR_ED_INSTALLED") ?></label></td> <td width="60%"> <input type="checkbox" <? if (isset($arDefGroupOptions["modules"])) echo "checked"; ?> name="OPTIONS[default][modules]" id="ACT_modules" value="Y" onclick="document.getElementById('modules').disabled=!this.checked;" title="<? echo GetMessage("CTRLR_GR_ED_CHCKBOX") ?>"><br> <? $arModules = CControllerGroupSettings::GetModules(); ?> <select name="OPTIONS[default][modules][]" size="24" multiple="multiple" id="modules" <? if (!isset($arDefGroupOptions["modules"])) echo " disabled"; ?> > <? foreach ($arModules as $module_id => $name): if ($module_id == "main") continue; ?> <option value="<?=htmlspecialcharsbx($module_id)?>"<? if (is_array($arDefGroupOptions["modules"]) && in_array($module_id, $arDefGroupOptions["modules"])) echo ' selected'; ?>><?=htmlspecialcharsbx($name)?></option> <? endforeach; ?> </select> </td> </tr> <? $tabControl->BeginNextTab(); ?> <? $arModuleOptions = CControllerGroupSettings::GetData(); foreach ($arModuleOptions as $module_id => $info): if (!is_array($info["options"]) || count($info["options"]) <= 0) continue; ?> <tr class="heading"> <td colspan="2"><?=htmlspecialcharsEx($info["name"])?></td> </tr> <? $arOptions = $info["options"]; foreach ($arOptions as $id => $arOptionParams): if (substr($id, 0, 2) == "__"): ?> <tr> <td colspan="2" align="center"><?=htmlspecialcharsEx($arOptionParams)?>:</td> </tr> <? else: if (isset($arDefGroupOptions["options"][$module_id][$id])) $OptionValue = $arDefGroupOptions["options"][$module_id][$id]; else $OptionValue = false; ?> <tr> <td width="40%"> <label for="ACT_<?=htmlspecialcharsbx($id)?>"><?=htmlspecialcharsEx($arOptionParams[0])?> :</label></td> <td width="60%"><?=CControllerGroupSettings::GenerateInput($id, $arOptionParams, $OptionValue)?></td> </tr> <? endif; ?> <? endforeach; ?> <? endforeach; ?> <? $tabControl->BeginNextTab(); $security = $arDefGroupOptions["security"]; $arModuleRights = array(); $arModules = CControllerGroupSettings::GetModules(); foreach ($arModules as $module_id => $name) { if ($module_id != 'main') { if (!file_exists($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/".$module_id."/install/index.php")) continue; include_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/".$module_id."/install/index.php"); if (!class_exists($module_id)) continue; $module = new $module_id; if ($module->MODULE_GROUP_RIGHTS != "Y") continue; } if (isset($arTasksModules[$module_id])) $arModuleRights[$module_id] = $arTasksModules[$module_id]; else { if (method_exists($module, "GetModuleRightList")) $arModuleRights[$module_id] = call_user_func(array($module_id, "GetModuleRightList")); else $arModuleRights[$module_id] = $APPLICATION->GetDefaultRightList(); } } // prepare portion of html to use in js ob_start(); ?> <br> <table class="internal"> <tr> <td colspan="2"><label for="SECURITY_#I#_GROUP"><? echo GetMessage("CTRLR_GR_ED_GROUP") ?></label>: <input type="text" name="SECURITY[#I#][GROUP]" id="SECURITY_#I#_GROUP" size="15" value="#GROUP_NAME#"></td> </tr> <tr> <td align="center"><? echo GetMessage("CTRLR_GR_ED_MODULE") ?></td> <td align="center"><? echo GetMessage("CTRLR_GR_ED_LEVEL") ?></td> </tr> <? foreach ($arModuleRights as $module_id => $permissions): $fieldName = 'SECURITY[#I#][RIGHTS]['.$module_id.']'; ?> <tr> <td><label for="<?=htmlspecialcharsbx('ACT_'.$fieldName)?>"><?=htmlspecialcharsbx($arModules[$module_id])?> : </label></td> <td nowrap> <input type="checkbox" name="<?=htmlspecialcharsbx($fieldName)?>" id="<?=htmlspecialcharsbx("ACT_".$fieldName)?>" value="Y" title="<? echo GetMessage("CTRLR_GR_ED_CHCKBOX") ?>" onclick="BX('<?=CUtil::JSEscape('E_'.$fieldName)?>').disabled=!this.checked;if(this.checked)BX('<?=CUtil::JSEscape('E_'.$fieldName)?>').focus();" /> <select name="<?=htmlspecialcharsbx($fieldName)?>" <? if ($module_id == 'main'): ?>onchange="BX('<?=CUtil::JSEscape('SUB_'.$fieldName)?>').style.display = (!__CheckTaskSubord(this.value)?'none':'inline');" <? endif ?> id="<?=htmlspecialcharsbx('E_'.$fieldName)?>" disabled="disabled" title="" > <option value=""><?=GetMessage("CTRLR_GR_ED_LEVEL_DEF")?></option> <? foreach ($permissions["reference"] as $j => $reference): ?> <option value="<?=$permissions["reference_id"][$j]?>"><?=htmlspecialcharsEx($reference)?></option> <? endforeach ?> </select> <? if ($module_id == 'main'): ?> <br> <textarea name="SUB_SECURITY[#I#]" title="<? echo GetMessage("CTRLR_GR_ED_SUBORD") ?>" rows="3" cols="40" id="SUB_<?=$fieldName?>" style="display:none;"></textarea> <? endif ?> </td> </tr> <? endforeach; ?> </table> <? $content = ob_get_contents(); ob_end_clean(); ?> <script> function __CheckNewAdmin() { var i, el, new_i = document.getElementById('SECURITY_COUNT').value; for (i = 0; i <= new_i; i++) { el = document.getElementById('SECURITY[' + i + '][GROUP]'); if (el && el.value.toLowerCase() == 'administrators') return true; } return false; } function __NewSecGroup(group_name, to_begin) { var link_from = document.getElementById('security_add_link'); if (to_begin) link_from = document.getElementById('begin_p'); var oDiv = document.createElement('DIV'); link_from.parentNode.insertBefore(oDiv, link_from); var new_i = document.getElementById('SECURITY_COUNT').value; new_i++; document.getElementById('SECURITY_COUNT').value = new_i; var html = '<?=CUtil::JSEscape($content)?>'; html = html.replace(new RegExp("#I#", "g"), new_i); html = html.replace(new RegExp("#GROUP_NAME#", "g"), group_name); oDiv.innerHTML = html; setTimeout(function () { var r = BX.findChildren(oDiv, {tag: /^(input|select|textarea)$/i}, true); if (r && r.length > 0) { for (var i = 0, l = r.length; i < l; i++) { if (r[i].form && r[i].form.BXAUTOSAVE) r[i].form.BXAUTOSAVE.RegisterInput(r[i]); else break; } } }, 10); } function __CheckTaskSubord(task_id) { var tasks = <?=CUtil::PhpToJSObject($arMainSubordinateTask)?>; if (tasks) { for (var i = 0; i < tasks.length; i++) { if (task_id == tasks[i]) return true; } } return false; } BX.ready(function () { BX.addCustomEvent(document.forms.form1, 'onAutoSaveRestore', function (ob, data) { while (data['SECURITY[' + BX('SECURITY_COUNT').value + '][GROUP]']) __NewSecGroup(''); }) }); </script> <tr> <td width="40%"><label for="OPTIONS_default_security_limit_admin"><? echo GetMessage("CTRLR_GR_ED_NOADMIN") ?></label></td> <td width="60%"> <input onclick="if(this.checked && !__CheckNewAdmin())__NewSecGroup('Administrators', true);" type="checkbox" name="OPTIONS[default][security][limit_admin]" id="OPTIONS_default_security_limit_admin" value="Y" <? if ($security["limit_admin"] == "Y") echo ' checked'; ?> > </td> </tr> <tr> <td class="adm-detail-valign-top"><? echo GetMessage("CTRLR_GR_ED_PERM") ?></td> <td> <? $arSecurityGroups = $arDefGroupOptions["security"]["groups"]; $arSecuritySubordGroups = $arDefGroupOptions["security"]["subord_groups"]; $arSecurityGroups["__Group_ID__"] = array(); $i = -1; foreach ($arSecurityGroups as $group_id => $arSecOptions): $i++; ?> <input type="hidden" id="begin_p"> <table class="internal"> <tr> <td colspan="2"><label for="SECURITY_<?=$i?>_GROUP"><? echo GetMessage("CTRLR_GR_ED_GROUP") ?></label>: <input type="text" name="SECURITY[<?=$i?>][GROUP]" id="SECURITY_<?=$i?>_GROUP" size="15" value="<?=($group_id == '__Group_ID__'? '': htmlspecialcharsbx($group_id))?>" > </td> </tr> <tr> <td align="center"><? echo GetMessage("CTRLR_GR_ED_MODULE") ?></td> <td align="center"><? echo GetMessage("CTRLR_GR_ED_LEVEL") ?></td> </tr> <? foreach ($arModuleRights as $module_id => $permissions): $fieldName = 'SECURITY['.$i.'][RIGHTS]['.$module_id.']'; ?> <tr> <td> <label for="<?=htmlspecialcharsbx('ACT_'.$fieldName)?>"><?=htmlspecialcharsbx($arModules[$module_id])?> : </label></td> <td nowrap> <input type="checkbox" name="<?=htmlspecialcharsbx($fieldName)?>" id="<?=htmlspecialcharsbx('ACT_'.$fieldName)?>" value="Y" title="<? echo GetMessage("CTRLR_GR_ED_CHCKBOX") ?>" onclick="BX('<?=CUtil::JSEscape('E_'.$fieldName)?>').disabled=!this.checked;if(this.checked)BX('<?=CUtil::JSEscape('E_'.$fieldName)?>').focus();" <? if (isset($arSecOptions[$module_id])) echo 'checked="checked"'; ?> /> <select name="<?=htmlspecialcharsbx($fieldName)?>" <? if ($module_id == 'main'): ?>onchange="BX('<?=CUtil::JSEscape('SUB_'.$fieldName)?>').style.display = (!__CheckTaskSubord(this.value)?'none':'inline');" <? endif ?> id="<?=htmlspecialcharsbx('E_'.$fieldName)?>" title="" <? if (!isset($arSecOptions[$module_id])) echo 'disabled="disabled"'; ?> > <option value=""><?=GetMessage("CTRLR_GR_ED_LEVEL_DEF")?></option> <? foreach ($permissions["reference_id"] as $j => $reference_id): ?> <option value="<?=$reference_id?>" <? if ($arSecOptions[$module_id] == $reference_id) echo "selected"; ?>><?=htmlspecialcharsEx($permissions["reference"][$j])?></option> <? endforeach ?> </select> <? if ($module_id == 'main'): ?> <br> <textarea name="SUB_SECURITY[<?=$i?>]" title="<? echo GetMessage("CTRLR_GR_ED_SUBORD") ?>" rows="3" cols="40" id="<?=htmlspecialcharsbx('SUB_'.$fieldName)?>" <? if (!in_array($arSecOptions[$module_id], $arMainSubordinateTask)): ?> style="display:none;"<? endif ?> ><?=htmlspecialcharsbx($arSecuritySubordGroups[$group_id])?></textarea> <? endif ?> </td> </tr> <? endforeach; ?> </table> <? endforeach; ?> <a href="javascript:__NewSecGroup('')" id="security_add_link"><? echo GetMessage("CTRLR_GR_ED_GROUP_MORE") ?></a> <input type="hidden" name="SECURITY_COUNT" id="SECURITY_COUNT" value="<?=$i?>"> </td> </tr> <? $tabControl->BeginNextTab(); ?> <? $COUNTER_UPDATE_PERIOD = intval($arGroupFields['COUNTER_UPDATE_PERIOD']); if ($COUNTER_UPDATE_PERIOD % (60 * 24 * 30) == 0) { $COUNTER_UPDATE_PERIOD_TYPE = "N"; $COUNTER_UPDATE_PERIOD /= (60 * 24 * 30); } elseif ($COUNTER_UPDATE_PERIOD % (60 * 24 * 7) == 0) { $COUNTER_UPDATE_PERIOD_TYPE = "W"; $COUNTER_UPDATE_PERIOD /= (60 * 24 * 7); } elseif ($COUNTER_UPDATE_PERIOD % (60 * 24) == 0) { $COUNTER_UPDATE_PERIOD_TYPE = "D"; $COUNTER_UPDATE_PERIOD /= (60 * 24); } elseif ($COUNTER_UPDATE_PERIOD % 60 == 0) { $COUNTER_UPDATE_PERIOD_TYPE = "H"; $COUNTER_UPDATE_PERIOD /= (60); } else { $COUNTER_UPDATE_PERIOD_TYPE = "M"; } ?> <tr> <td width="40%"><label for="COUNTER_UPDATE_PERIOD"><? echo GetMessage("CTRL_GR_ED_COUNTERS_REF") ?></label></td> <td width="60%"> <input type="text" name="COUNTER_UPDATE_PERIOD" id="COUNTER_UPDATE_PERIOD" size="5" value="<? echo $COUNTER_UPDATE_PERIOD ?>"> <select name="COUNTER_UPDATE_PERIOD_TYPE" title=""> <option value="M"<? if ($COUNTER_UPDATE_PERIOD_TYPE == "M") echo ' selected' ?>><? echo GetMessage("CTRL_GR_ED_COUNTERS_REF_MI") ?></option> <option value="H"<? if ($COUNTER_UPDATE_PERIOD_TYPE == "H") echo ' selected' ?>><? echo GetMessage("CTRL_GR_ED_COUNTERS_REF_HO") ?></option> <option value="D"<? if ($COUNTER_UPDATE_PERIOD_TYPE == "D") echo ' selected' ?>><? echo GetMessage("CTRL_GR_ED_COUNTERS_REF_DA") ?></option> <option value="W"<? if ($COUNTER_UPDATE_PERIOD_TYPE == "W") echo ' selected' ?>><? echo GetMessage("CTRL_GR_ED_COUNTERS_REF_WE") ?></option> <option value="N"<? if ($COUNTER_UPDATE_PERIOD_TYPE == "N") echo ' selected' ?>><? echo GetMessage("CTRL_GR_ED_COUNTERS_REF_MO") ?></option> </select> </td> </tr> <tr class="heading"> <td colspan="2"><? echo GetMessage("CTRL_GR_ED_COUNTERS_TITLE") ?></td> </tr> <tr> <td><label for="COUNTER_FREE_SPACE"><? echo GetMessage("CTRL_GR_ED_COUNTERS_FREE") ?></label></td> <td> <input type="checkbox" id="COUNTER_FREE_SPACE" name="CHECK_COUNTER_FREE_SPACE" value="Y" <? if ($arGroupFields['CHECK_COUNTER_FREE_SPACE'] == "Y") echo ' checked' ?> > </td> </tr> <tr> <td><label for="COUNTER_SITES"><? echo GetMessage("CTRL_GR_ED_COUNTERS_SITES") ?></label></td> <td> <input type="checkbox" id="COUNTER_SITES" name="CHECK_COUNTER_SITES" value="Y" <? if ($arGroupFields['CHECK_COUNTER_SITES'] == "Y") echo ' checked' ?> > </td> </tr> <tr> <td><label for="COUNTER_USERS"><? echo GetMessage("CTRL_GR_ED_COUNTERS_USERS") ?></label></td> <td> <input type="checkbox" id="COUNTER_USERS" name="CHECK_COUNTER_USERS" value="Y" <? if ($arGroupFields['CHECK_COUNTER_USERS'] == "Y") echo ' checked' ?> > </td> </tr> <tr> <td><label for="COUNTER_LAST_AUTH"><? echo GetMessage("CTRL_GR_ED_COUNTERS_LAST_AU") ?></label></td> <td> <input type="checkbox" id="COUNTER_LAST_AUTH" name="CHECK_COUNTER_LAST_AUTH" value="Y" <? if ($arGroupFields['CHECK_COUNTER_LAST_AUTH'] == "Y") echo ' checked' ?> > </td> </tr> <? $arGroupCounters = array(); if ($bVarsFromForm) { if (is_array($_REQUEST["CONTROLLER_COUNTER_ID"])) { foreach ($_REQUEST["CONTROLLER_COUNTER_ID"] as $counterId) { $counterId = intval($counterId); $arGroupCounters[$counterId] = $counterId; } } } elseif ($copy_id || $ID) { $rsCounters = CControllerCounter::GetList(array(), array( "CONTROLLER_GROUP_ID" => $copy_id? $copy_id: $ID, )); while ($arCounter = $rsCounters->Fetch()) { $arGroupCounters[$arCounter["ID"]] = $arCounter["ID"]; } } $rsCounters = CControllerCounter::GetList(array("NAME" => "ASC"), array()); while ($arCounter = $rsCounters->Fetch()) { ?> <tr> <td> <label for="COUNTER_<? echo $arCounter["ID"] ?>"><? echo htmlspecialcharsEx($arCounter["NAME"]) ?> :</label></td> <td> <input type="checkbox" id="COUNTER_<? echo $arCounter["ID"] ?>" name="CONTROLLER_COUNTER_ID[]" value="<? echo $arCounter["ID"] ?>" <? if (array_key_exists($arCounter["ID"], $arGroupCounters)) echo ' checked' ?> > </td> </tr> <? } ?> <? foreach ($arThirdSettings as $obOption): /** @var IControllerGroupOption $obOption */ $tabControl->BeginNextTab(); $arOptions = $obOption->GetOptionArray(); foreach ($arOptions as $id => $arOptionParams): if (substr($id, 0, 2) == "__"): ?> <tr> <td colspan="2" align="center"><?=htmlspecialcharsEx($arOptionParams)?>:</td> </tr> <? else: $OptionValue = $arGroupOptions[$obOption->id][$id]; ?> <tr> <td width="40%"> <label for="ACT_<?=htmlspecialcharsbx($id)?>"><?=htmlspecialcharsEx($arOptionParams[0])?> :</label></td> <td width="60%"><?=CControllerGroupSettings::GenerateInput($id, $arOptionParams, $OptionValue, $obOption->id)?></td> </tr> <? endif; ?> <? endforeach; ?> <? endforeach; ?> <? $tabControl->BeginNextTab(); ?> <tr> <td><? echo GetMessage("CTRLR_GR_ED_PHP_INST") ?></td> </tr> <tr> <td> <textarea style="width:100%; white-space: nowrap; overflow: auto;" rows="15" name="INSTALL_PHP" id="INSTALL_PHP" title="" ><? echo htmlspecialcharsbx($arGroupFields['INSTALL_PHP']) ?></textarea> </td> </tr> <tr> <td><? echo GetMessage("CTRLR_GR_ED_PHP_UNINST") ?></td> </tr> <tr> <td> <textarea style="width:100%; white-space: nowrap; overflow: auto;" rows="15" name="UNINSTALL_PHP" id="UNINSTALL_PHP" title="" ><? echo htmlspecialcharsbx($arGroupFields['UNINSTALL_PHP']) ?></textarea> </td> </tr> <? if ( (count($USER_FIELD_MANAGER->GetUserFields($ENTITY_ID)) > 0) || ($USER_FIELD_MANAGER->GetRights($ENTITY_ID) >= "W") ) { $tabControl->BeginNextTab(); if ($USER_FIELD_MANAGER->GetRights($ENTITY_ID) >= "W") { echo "<tr "."colspan=\"2\"><td align=\"left\"><a href=\"/bitrix/admin/userfield_edit.php?lang=".LANGUAGE_ID."&ENTITY_ID=".urlencode($ENTITY_ID)."&back_url=".urlencode($APPLICATION->GetCurPageParam("", array("bxpublic"))."&tabControl_active_tab=user_fields_tab")."\">".GetMessage("USER_TYPE_EDIT_TAB_HREF")."</a></td></tr>"; } $arUserFields = $USER_FIELD_MANAGER->GetUserFields($ENTITY_ID, ($copy_id? $copy_id: $ID), LANGUAGE_ID); if (count($arUserFields) > 0) { foreach ($arUserFields as $FIELD_NAME => $arUserField) { $arUserField["VALUE_ID"] = intval($ID); echo $USER_FIELD_MANAGER->GetEditFormHTML(is_object($message), $GLOBALS[$FIELD_NAME], $arUserField); } } } $tabControl->EndTab(); ?> <? $tabControl->Buttons(array( "back_url" => "controller_group_admin.php?lang=".LANGUAGE_ID, "disabled" => !$USER->CanDoOperation("controller_group_manage"), )); ?> <? $tabControl->End(); ?> <input type="hidden" value="Y" name="apply"> </form> <? if (COption::GetOptionString('fileman', "use_code_editor", "Y") == "Y" && CModule::IncludeModule('fileman')) { CCodeEditor::Show(array( 'textareaId' => 'INSTALL_PHP', 'height' => 250, 'forceSyntax' => 'php', )); CCodeEditor::Show(array( 'textareaId' => 'UNINSTALL_PHP', 'height' => 250, 'forceSyntax' => 'php', )); } ?> <? $tabControl->ShowWarnings("form1", $message); ?> <? require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php"); ?>