• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/classes/general/forum_new.php
  • Класс: CAllForumGroup
  • Вызов: CAllForumGroup::CheckFields
static 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("sort", "asc", ["ACTIVE" => "Y"]);
		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;
}