public static function Add($arFields) { global $DB; if (!CForumUserPoints::CheckFields("ADD", $arFields)) { return false; } $arInsert = $DB->PrepareInsert("b_forum_user_points", $arFields); $strDatePostField = ""; $strDatePostValue = ""; if (!is_set($arFields, "DATE_UPDATE")) { $strDatePostField .= ", DATE_UPDATE"; $strDatePostValue .= ", " . $DB->GetNowFunction() . ""; } $strSql = "INSERT INTO b_forum_user_points(" . $arInsert[0] . $strDatePostField . ") VALUES(" . $arInsert[1] . $strDatePostValue . ")"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); // Recount user points if (intVal($arFields["TO_USER_ID"]) > 0) { $arUserFields = array("POINTS" => CForumUser::CountUserPoints($arFields["TO_USER_ID"])); $arUser = CForumUser::GetByUSER_ID($arFields["TO_USER_ID"]); if ($arUser) { CForumUser::Update(intVal($arUser["ID"]), $arUserFields); } else { $arUserFields["USER_ID"] = $arFields["TO_USER_ID"]; $ID_tmp = CForumUser::Add($arUserFields); } } return true; }
/** * <p>Изменяет параметры голосования пользователя с кодом FROM_USER_ID за пользователя с кодом TO_USER_ID на значения, указанные в массиве arFields.</p> * * * * * @param int $FROM_USER_ID Пользователь, который голосовал. * * * * @param int $TO_USER_ID Пользователь, за которого голосовали. * * * * @param array $arFields Массив новых значений параметров голосования. * * * * @return bool <p>Возвращает True в случае успешного изменения параметров * голосования и False - в противном случае.</p><a name="examples"></a> * * * <h4>Example</h4> * <pre> * <? * // Изменим количество голосов, отданных текущим пользователем * // за пользователя с кодом $UID на 53 * $arFields = array("POINTS" => 53); * if (CForumUserPoints::Update($USER->GetID(), $UID, $arFields)) * echo "Голосования успешно изменено"; * else * echo "Ошибка изменения голосования"; * ?> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/forum/developer/cforumuserpoints/cforumuserpoints__update.b9422e8b.php * @author Bitrix */ public static function Update($FROM_USER_ID, $TO_USER_ID, $arFields) { global $DB; $FROM_USER_ID = IntVal($FROM_USER_ID); if ($FROM_USER_ID<=0) return False; $TO_USER_ID = IntVal($TO_USER_ID); if ($TO_USER_ID<=0) return False; if (!CForumUserPoints::CheckFields("UPDATE", $arFields)) return false; $strUpdate = $DB->PrepareUpdate("b_forum_user_points", $arFields); $strDatePostValue = ""; if (!is_set($arFields, "DATE_UPDATE")) { $strDatePostValue .= ", DATE_UPDATE = ".$DB->GetNowFunction()." "; } $strSql = "UPDATE b_forum_user_points SET ".$strUpdate.$strDatePostValue." WHERE FROM_USER_ID = ".$FROM_USER_ID." AND TO_USER_ID = ".$TO_USER_ID; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); // Recount user points. $arUserFields = array(); $arUserFields["POINTS"] = CForumUser::CountUserPoints($TO_USER_ID); $arUser = CForumUser::GetByUSER_ID($TO_USER_ID); if ($arUser) { CForumUser::Update($arUser["ID"], $arUserFields); } else { $arUserFields["USER_ID"] = $TO_USER_ID; $ID_tmp = CForumUser::Add($arUserFields); } return true; }