Beispiel #1
0
 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;
 }