Beispiel #1
0
    if ($ID > 0) {
        $res = CForumPoints2Post::Update($ID, $arFields);
    } else {
        $res = CForumPoints2Post::Add($arFields);
    }
    if (intVal($res) <= 0 && ($e = $GLOBALS["APPLICATION"]->GetException())) {
        $message = new CAdminMessage($ID > 0 ? GetMessage("FORUM_PPE_EDDOR_UPDATE") : GetMessage("FORUM_PPE_ERROR_ADD"), $e);
        $bInitVars = True;
    } elseif (strlen($save) > 0) {
        LocalRedirect("forum_points2post.php?lang=" . LANG . "&" . GetFilterParams("filter_", false));
    } else {
        $ID = $res;
    }
}
if ($ID > 0) {
    $db_points = CForumPoints2Post::GetList(array(), array("ID" => $ID));
    $db_points->ExtractFields("str_", False);
}
if ($bInitVars) {
    $DB->InitTableVarsForEdit("b_forum_points2post", "", "str_");
}
$sDocTitle = $ID > 0 ? str_replace("#ID#", $ID, GetMessage("FORUM_PPE_TITLE_UPD")) : GetMessage("FORUM_PPE_TITLE_ADD");
$APPLICATION->SetTitle($sDocTitle);
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
/*********************************************************************/
/********************  BODY  *****************************************/
/*********************************************************************/
?>

<?php 
$aMenu = array(array("TEXT" => GetMessage("FPPN_2FLIST"), "LINK" => "/bitrix/admin/forum_points2post.php?lang=" . LANG . "&" . GetFilterParams("filter_", false), "ICON" => "btn_list"));
Beispiel #2
0
 public static function CountUserPoints($USER_ID = 0, $iCnt = false)
 {
     $USER_ID = intVal($USER_ID);
     $iNumUserPosts = intVal($iCnt);
     $iNumUserPoints = 0;
     $fPointsPerPost = 0.0;
     if ($USER_ID <= 0) {
         return 0;
     }
     if ($iCnt === false) {
         $iNumUserPoints = CForumUser::GetUserPoints($USER_ID);
     }
     if ($iNumUserPoints === false || $iCnt != false) {
         $iNumUserPosts = CForumMessage::GetList(array(), array("AUTHOR_ID" => $USER_ID, "APPROVED" => "Y"), true);
         $db_res = CForumPoints2Post::GetList(array("MIN_NUM_POSTS" => "DESC"), array("<=MIN_NUM_POSTS" => $iNumUserPosts));
         if ($ar_res = $db_res->Fetch()) {
             $fPointsPerPost = DoubleVal($ar_res["POINTS_PER_POST"]);
         }
         $iNumUserPoints = floor($fPointsPerPost * $iNumUserPosts);
         $iCnt = CForumUserPoints::CountSumPoints($USER_ID);
         $iNumUserPoints += $iCnt;
     }
     return $iNumUserPoints;
 }
Beispiel #3
0
	public static function CheckFields($ACTION, &$arFields, $ID = 0)
	{
		$aMsg = array();
		if (is_set($arFields, "MIN_NUM_POSTS") || $ACTION=="ADD")
		{
			$arFields["MIN_NUM_POSTS"] = trim($arFields["MIN_NUM_POSTS"]);
			if (empty($arFields["MIN_NUM_POSTS"]))
			{
				$aMsg[] = array(
					"id"=>'POINTS2POST[MIN_NUM_POSTS]',
					"text" => GetMessage("FORUM_PE_ERROR_MIN_NUM_POSTS_EMPTY"));
			}
			elseif (strlen($arFields["MIN_NUM_POSTS"]) > 18 || preg_match("/[^0-9]/", $arFields["MIN_NUM_POSTS"]))
			{
				$aMsg[] = array(
					"id"=>'POINTS2POST[MIN_NUM_POSTS]',
					"text" => GetMessage("FORUM_PE_ERROR_MIN_NUM_POSTS_BAD"));
			}
			else
			{
				$arFields["MIN_NUM_POSTS"] = intVal($arFields["MIN_NUM_POSTS"]);
				$db_res = CForumPoints2Post::GetList(array(), array("MIN_NUM_POSTS" => $arFields["MIN_NUM_POSTS"]));
				if ($db_res && $res = $db_res->GetNext())
				{
					if ($ACTION=="ADD" || $ID == 0 || $ID != $res["ID"])
					{
						$aMsg[] = array(
							"id"=>'POINTS2POST[MIN_NUM_POSTS]',
							"text" => GetMessage("FORUM_PE_ERROR_MIN_NUM_POSTS_EXIST"));
					}
				}
			}
		}
		if ((is_set($arFields, "POINTS_PER_POST") || $ACTION=="ADD") && DoubleVal($arFields["POINTS_PER_POST"])<=0)
			$arFields["POINTS_PER_POST"] = 0;
		else {
			$arFields["POINTS_PER_POST"] = round(doubleval($arFields["POINTS_PER_POST"]), 4);
			if (strlen(round($arFields["POINTS_PER_POST"], 0)) > 14 || strlen(strstr($arFields["POINTS_PER_POST"], ".")) > 5 ||
				preg_match("/[^0-9.]/", $arFields["POINTS_PER_POST"]))
				$aMsg[] = array(
					"id" => 'POINTS2POST[POINTS_PER_POST]',
					"text" => GetMessage("FORUM_PE_ERROR_MIN_POINTS_BAD"));
		}

		if(!empty($aMsg))
		{
			$e = new CAdminException(array_reverse($aMsg));
			$GLOBALS["APPLICATION"]->ThrowException($e);
			return false;
		}

		return true;

		return True;
	}
Beispiel #4
0
    $arFieldsG = array(array("MIN_POINTS" => 0, "CODE" => "visitor", "VOTES" => 1, "LANG" => array()), array("MIN_POINTS" => 5, "CODE" => "resident", "VOTES" => 2, "LANG" => array()), array("MIN_POINTS" => 50, "CODE" => "user", "VOTES" => 4, "LANG" => array()), array("MIN_POINTS" => 200, "CODE" => "honored", "VOTES" => 7, "LANG" => array()));
    foreach ($arFieldsG as $arFields) {
        foreach ($arLangs as $lang) {
            $name = GetMessage("F_POINTS_" . strToUpper($arFields["CODE"]));
            if ($lang != LANGUAGE_ID) {
                $arMess[$lang] = __GetMessageArray($lang);
                if (!empty($arMess[$lang]["F_POINTS_" . strToUpper($arFields["CODE"])])) {
                    $name = $arMess[$lang]["F_POINTS_" . strToUpper($arFields["CODE"])];
                }
            }
            $arFields["LANG"][$lang] = array("LID" => $lang, "NAME" => $name);
        }
        $res = CForumPoints::Add($arFields);
    }
}
$db_res = CForumPoints2Post::GetList();
if (!($db_res && ($res = $db_res->Fetch()))) {
    $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) {
Beispiel #5
0
                @set_time_limit(0);
                $DB->StartTransaction();
                if (!CForumPoints2Post::Delete($ID)) {
                    $DB->Rollback();
                    if ($ex = $APPLICATION->GetException()) {
                        $lAdmin->AddGroupError($ex->GetString(), $ID);
                    } else {
                        $lAdmin->AddGroupError(GetMessage("FORUM_PP_ERROR_DELETE"), $ID);
                    }
                }
                $DB->Commit();
                break;
        }
    }
}
$dbResultList = CForumPoints2Post::GetList(array($by => $order), $arFilter);
$dbResultList = new CAdminResult($dbResultList, $sTableID);
$dbResultList->NavStart();
/*******************************************************************/
$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("FORUM_PP_POINTS_PER_MES")));
/*******************************************************************/
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => true), array("id" => "MIN_NUM_POSTS", "content" => GetMessage("FORUM_PP_MIN_MES"), "sort" => "MIN_NUM_POSTS", "default" => true, "align" => "right"), array("id" => "POINTS_PER_POST", "content" => GetMessage('FORUM_PP_POINTS'), "sort" => "POINTS_PER_POST", "default" => true, "align" => "right")));
$arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();
/*******************************************************************/
while ($arForum = $dbResultList->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arForum);
    $row->AddField("ID", $f_ID);
    $row->AddInputField("MIN_NUM_POSTS", array("size" => "10"));
    $row->AddInputField("POINTS_PER_POST", array("size" => "10"));
    $arActions = array();
    if ($forumModulePermissions >= "R") {