function CheckFields($ACTION, &$arFields, $ID = false) { $aMsg = array(); if (is_set($arFields, "LANG") || $ACTION == "ADD") { $res = is_array($arFields["LANG"]) ? $arFields["LANG"] : array(); foreach ($res as $i => $val) { if (empty($res[$i]["LID"]) || empty($res[$i]["NAME"])) { unset($res[$i]); } } $db_lang = CLanguage::GetList($b = "sort", $o = "asc"); while ($arLang = $db_lang->Fetch()) { $bFound = false; foreach ($res as $i => $val) { if ($res[$i]["LID"] == $arLang["LID"] && trim($res[$i]["NAME"]) !== "") { $bFound = true; } } if (!$bFound) { $aMsg[] = array("id" => 'FORUM_GROUP[LANG][' . $arLang["LID"] . '][NAME]', "text" => GetMessage("FG_ERROR_EMPTY_LID", array("#LID#" => $arLang["LID"], "#LID_NAME#" => $arLang["NAME"]))); } } } if ((is_set($arFields, "SORT") || $ACTION == "ADD") && intVal($arFields["SORT"]) <= 0) { $arFields["SORT"] = 150; } if (is_set($arFields, "PARENT_ID") || $ACTION == "ADD") { $arFields["PARENT_ID"] = intVal($arFields["PARENT_ID"]) > 0 ? intVal($arFields["PARENT_ID"]) : false; } if ($arFields["PARENT_ID"]) { if ($ACTION != "ADD" && $ID == $arFields["PARENT_ID"]) { $aMsg[] = array("id" => 'FORUM_GROUP[PARENT_ID]', "text" => GetMessage("FG_ERROR_SELF_PARENT_ID")); } else { $res = CForumGroup::GetByID($arFields["PARENT_ID"]); if (!$res) { $aMsg[] = array("id" => 'FORUM_GROUP[PARENT_ID]', "text" => GetMessage("FG_ERROR_EMPTY_PARENT_ID")); } elseif ($ACTION != "ADD") { $res1 = CForumGroup::GetByID($ID); if ($res1["LEFT_MARGIN"] < $res["LEFT_MARGIN"] && $res["RIGHT_MARGIN"] < $res1["RIGHT_MARGIN"]) { $aMsg[] = array("id" => 'FORUM_GROUP[PARENT_ID]', "text" => GetMessage("FG_ERROR_PARENT_ID_IS_CHILD")); } } } } if (!empty($aMsg)) { $e = new CAdminException(array_reverse($aMsg)); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; }