$arFields = array("MIN_NUM_POSTS" => 1, "POINTS_PER_POST" => "0.5000"); CForumPoints2Post::Add($arFields); $arFields = array("MIN_NUM_POSTS" => 50, "POINTS_PER_POST" => "0.8000"); CForumPoints2Post::Add($arFields); } /* User */ $res = CForumUser::GetByUSER_ID(1); if (empty($res) || !is_array($res)) { $arFields = array("=LAST_VISIT" => $DB->GetNowFunction(), "USER_ID" => 1); $ID = CForumUser::Add($arUserFields); } /* Vote */ $res = CForumUserPoints::GetByID(1, 1); if (!$res) { $arFields = array("POINTS" => 1000, "FROM_USER_ID" => 1, "TO_USER_ID" => 1); $ID = CForumUserPoints::Add($arFields); } // Forum group $arGroup = array("PUBLIC" => 0, "PARTNER" => 0, "COMMENTS" => 0); $db_res = CForumGroup::GetListEx(array(), array("LID" => LANGUAGE_ID)); if ($db_res && ($res = $db_res->Fetch())) { do { if (GetMessage("F_GROUP_PUBLIC") == $res["NAME"]) { $arGroup["PUBLIC"] = intVal($res["ID"]); } elseif (GetMessage("F_GROUP_PARTNER") == $res["NAME"]) { $arGroup["PARTNER"] = intVal($res["ID"]); } elseif (GetMessage("F_GROUP_COMMENTS") == $res["NAME"]) { $arGroup["COMMENTS"] = intVal($res["ID"]); } } while ($res = $db_res->Fetch()); }
function ForumVote4User($UID, $VOTES, $bDelVote, &$strErrorMessage, &$strOKMessage) { global $USER; $arError = array(); $arNote = array(); $UID = IntVal($UID); $VOTES = IntVal($VOTES); $bDelVote = $bDelVote ? true : false; $CurrUserID = 0; if ($UID <= 0) { $arError[] = GetMessage("F_NO_VPERS"); } else { if (!$USER->IsAuthorized()) { $arError[] = GetMessage("FORUM_GV_ERROR_AUTH"); } else { $CurrUserID = IntVal($USER->GetParam("USER_ID")); if ($CurrUserID == $UID && !CForumUser::IsAdmin()) { $arError[] = GetMessage("FORUM_GV_OTHER"); } else { $arUserRank = CForumUser::GetUserRank($CurrUserID); if (IntVal($arUserRank["VOTES"]) <= 0 && !$bDelVote && !CForumUser::IsAdmin()) { $arError[] = GetMessage("FORUM_GV_ERROR_NO_VOTE"); } else { if (!CForumUser::IsAdmin() || $VOTES <= 0) { $VOTES = IntVal($arUserRank["VOTES"]); } if ($VOTES == 0) { $VOTES = 1; } // no ranks configured $arFields = array("POINTS" => $VOTES); $arUserPoints = CForumUserPoints::GetByID($CurrUserID, $UID); if ($arUserPoints) { if ($bDelVote || $VOTES <= 0) { if (CForumUserPoints::Delete($CurrUserID, $UID)) { $arNote[] = GetMessage("FORUM_GV_SUCCESS_UNVOTE"); } else { $arError[] = GetMessage("FORUM_GV_ERROR_VOTE"); } } else { if (IntVal($arUserPoints["POINTS"]) < IntVal($arUserRank["VOTES"]) || CForumUser::IsAdmin()) { if (CForumUserPoints::Update(IntVal($USER->GetParam("USER_ID")), $UID, $arFields)) { $arNote[] = GetMessage("FORUM_GV_SUCCESS_VOTE_UPD"); } else { $arError[] = GetMessage("FORUM_GV_ERROR_VOTE_UPD"); } } else { $arError[] = GetMessage("FORUM_GV_ALREADY_VOTE"); } } } else { if (!$bDelVote && $VOTES > 0) { $arFields["FROM_USER_ID"] = $USER->GetParam("USER_ID"); $arFields["TO_USER_ID"] = $UID; if (CForumUserPoints::Add($arFields)) { $arNote[] = GetMessage("FORUM_GV_SUCCESS_VOTE_ADD"); } else { $arError[] = GetMessage("FORUM_GV_ERROR_VOTE_ADD"); } } else { $arError[] = GetMessage("FORUM_GV_ERROR_A"); } } } } } } if (!empty($arError)) { $strErrorMessage .= implode(".\n", $arError) . ".\n"; } if (!empty($arNote)) { $strOKMessage .= implode(".\n", $arNote) . ".\n"; } if (empty($arError)) { return True; } else { return False; } }