} $arGroups = CForumGroup::GetByLang(LANGUAGE_ID); array_unshift($arGroups, array("ID" => 0, "NAME" => "...")); if ((strlen($save) > 0 || strlen($apply) > 0) && $REQUEST_METHOD == "POST" && $forumPermissions == "W" && check_bitrix_sessid()) { $arFields = array("SORT" => intVal(intVal($SORT) <= 0 ? 150 : $SORT), "PARENT_ID" => $_REQUEST["FORUM_GROUP"]["PARENT_ID"]); for ($i = 0; $i < count($arSysLangs); $i++) { $arFields["LANG"][] = array("LID" => $arSysLangs[$i], "NAME" => $_REQUEST["FORUM_GROUP"]["LANG"][$arSysLangs[$i]]["NAME"], "DESCRIPTION" => $_REQUEST["FORUM_GROUP"]["LANG"][$arSysLangs[$i]]["DESCRIPTION"]); } if (!CForumGroup::CheckFields($ID > 0 ? "UPDATE" : "ADD", $arFields, $ID > 0 ? $ID : false)) { $arError[] = array("code" => "error_checkfields", "title" => GetMessage("ERROR_ADD_GROUP_BAD_FIELDS")); } else { if ($ID > 0) { if (!CForumGroup::CanUserUpdateGroup($ID, $USER->GetUserGroupArray())) { $arError[] = array("code" => "not_right_for_edit", "title" => GetMessage("ERROR_EDIT_GROUP_NOT_RIGHT")); } else { $ID1 = CForumGroup::Update($ID, $arFields); if (IntVal($ID1) <= 0) { $arError[] = array("code" => "not_edit", "title" => GetMessage("ERROR_EDIT_GROUP")); } } } else { if (!CForumGroup::CanUserAddGroup($USER->GetUserGroupArray())) { $arError[] = array("code" => "not_right_for_add", "title" => GetMessage("ERROR_ADD_GROUP_NOT_RIGHT")); } else { $ID = CForumGroup::Add($arFields); if (IntVal($ID) <= 0) { $arError[] = array("code" => "not_add", "title" => GetMessage("ERROR_ADD_GROUP")); } } } }
$sTableID = "tbl_forum_group"; $oSort = new CAdminSorting($sTableID, "ID", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); $arFilterFields = array(); $lAdmin->InitFilter($arFilterFields); $arFilter = array(); if ($lAdmin->EditAction() && $forumModulePermissions >= "W") { foreach ($FIELDS as $ID => $arFields) { if ($ID <= 0) { continue; } if (!$lAdmin->IsUpdated($ID)) { continue; } if (CForumGroup::CanUserUpdateGroup($ID, $USER->GetUserGroupArray())) { if (CForumGroup::Update($ID, $arFields)) { BXClearCache(true, "bitrix/forum/group/"); } } } } if (($arID = $lAdmin->GroupAction()) && $forumModulePermissions >= "W") { if ($_REQUEST['action_target'] == 'selected') { $arID = array(); $dbResultList = CForumGroup::GetList(array($by => $order), $arFilter); while ($arResult = $dbResultList->Fetch()) { $arID[] = $arResult['ID']; } } foreach ($arID as $ID) { if (strlen($ID) <= 0) {
$fields["LANG"][$lid] = array("LID" => $lid, "NAME" => "", "DESCRIPTION" => ""); } } if ((array_key_exists("save", $_POST) || array_key_exists("apply", $_POST)) && $forumPermissions == "W" && check_bitrix_sessid()) { $fields["SORT"] = intval($_POST["SORT"]); $fields["PARENT_ID"] = intval($_REQUEST["FORUM_GROUP"]["PARENT_ID"]); foreach ($fields["LANG"] as $lid => $name) { $fields["LANG"][$lid] = array("LID" => $lid, "NAME" => $_REQUEST["FORUM_GROUP"]["LANG"][$lid]["NAME"], "DESCRIPTION" => $_REQUEST["FORUM_GROUP"]["LANG"][$lid]["DESCRIPTION"]); } if (!CForumGroup::CheckFields($ID > 0 ? "UPDATE" : "ADD", $fields, $ID > 0 ? $ID : false)) { $arError[] = array("code" => "error_checkfields", "title" => GetMessage("ERROR_ADD_GROUP_BAD_FIELDS")); } else { if ($ID > 0 && !CForumGroup::CanUserUpdateGroup($ID, $USER->GetUserGroupArray())) { $arError[] = array("code" => "not_right_for_edit", "title" => GetMessage("ERROR_EDIT_GROUP_NOT_RIGHT")); } else { if ($ID > 0 && CForumGroup::Update($ID, $fields) != $ID) { $arError[] = array("code" => "not_edit", "title" => GetMessage("ERROR_EDIT_GROUP")); } else { if ($ID <= 0 && !CForumGroup::CanUserAddGroup($USER->GetUserGroupArray())) { $arError[] = array("code" => "not_right_for_add", "title" => GetMessage("ERROR_ADD_GROUP_NOT_RIGHT")); } else { if ($ID <= 0 && ($ID = intval(CForumGroup::Add($fields))) && $ID <= 0) { $arError[] = array("code" => "not_add", "title" => GetMessage("ERROR_ADD_GROUP")); } else { BXClearCache(true, "bitrix/forum/group/"); LocalRedirect((array_key_exists("save", $_POST) ? "forum_group.php?" : "forum_group_edit.php?ID=" . $ID . "&") . "lang=" . LANG . GetFilterParams("filter_", false)); } } } } }
* @var $APPLICATION CMain */ $forumModulePermissions = $APPLICATION->GetGroupRight("forum"); if ($forumModulePermissions == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } IncludeModuleLangFile(__FILE__); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/forum/prolog.php"; $sTableID = "tbl_forum_group"; $oSort = new CAdminSorting($sTableID, "LEFT_MARGIN", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); $arFilter = array(); if ($forumModulePermissions >= "W") { if ($lAdmin->EditAction()) { foreach ($_POST["FIELDS"] as $ID => $arFields) { if ($ID > 0 && $lAdmin->IsUpdated($ID) && CForumGroup::CanUserUpdateGroup($ID, $USER->GetUserGroupArray()) && CForumGroup::Update($ID, $arFields)) { BXClearCache(true, "bitrix/forum/group/"); } } } else { if ($arID = $lAdmin->GroupAction()) { if ($_REQUEST['action_target'] == 'selected') { $arID = array(); $dbResultList = CForumGroup::GetList(array($by => $order), $arFilter); while ($arResult = $dbResultList->Fetch()) { $arID[] = $arResult['ID']; } } foreach ($arID as $ID) { if ($ID > 0) { switch ($_REQUEST['action']) {