- Модуль: 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;
}