/** * Обновляет блог в БД * * @param ModuleBlog_EntityBlog $oBlog Объект блога * @return bool */ public function UpdateBlog(ModuleBlog_EntityBlog $oBlog) { $sql = "UPDATE " . Config::Get('db.table.blog') . " \n\t\t\tSET \n\t\t\t\tblog_title= ?,\n\t\t\t\tblog_description= ?,\n\t\t\t\tblog_type= ?,\n\t\t\t\tblog_date_edit= ?,\n\t\t\t\tblog_rating= ?f,\n\t\t\t\tblog_count_vote = ?d,\n\t\t\t\tblog_count_user= ?d,\n\t\t\t\tblog_count_topic= ?d,\n\t\t\t\tblog_limit_rating_topic= ?f ,\n\t\t\t\tblog_url= ?,\n\t\t\t\tblog_avatar= ?\n\t\t\tWHERE\n\t\t\t\tblog_id = ?d\n\t\t"; if ($this->oDb->query($sql, $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateEdit(), $oBlog->getRating(), $oBlog->getCountVote(), $oBlog->getCountUser(), $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar(), $oBlog->getId())) { return true; } return false; }
/** * Расчет рейтинга и силы при голосовании за блог * * @param ModuleUser_EntityUser $oUser Объект пользователя, который голосует * @param ModuleBlog_EntityBlog $oBlog Объект блога * @param int $iValue * * @return int */ public function VoteBlog($oUser, $oBlog, $iValue) { if (!C::Get('plugin.rating.blog.vote')) { return 0; } if (!C::Get('plugin.rating.blog.dislike') && $iValue < 0) { return 0; } /** * Устанавливаем рейтинг блога, используя логарифмическое распределение */ $skill = $oUser->getSkill(); $iMinSize = C::Get('plugin.rating.blog.min_change'); //1.13; $iMaxSize = C::Get('plugin.rating.blog.max_change'); //15; $iSizeRange = $iMaxSize - $iMinSize; $iMinCount = log(0 + 1); $iMaxCount = log(C::Get('plugin.rating.blog.max_rating') + 1); //500 $iCountRange = $iMaxCount - $iMinCount; if ($iCountRange == 0) { $iCountRange = 1; } if ($skill > C::Get('plugin.rating.blog.left_border') and $skill < C::Get('plugin.rating.blog.right_border')) { //50-200 $skill_new = $skill / C::Get('plugin.rating.blog.mid_divider'); //20; } elseif ($skill >= C::Get('plugin.rating.blog.right_border')) { //200 $skill_new = $skill / C::Get('plugin.rating.blog.right_divider'); //10; } else { $skill_new = $skill / C::Get('plugin.rating.blog.left_divider'); //50; } $iDelta = $iMinSize + (log($skill_new + 1) - $iMinCount) * ($iSizeRange / $iCountRange); /** * Сохраняем рейтинг */ $oBlog->setRating($oBlog->getRating() + $iValue * $iDelta); return $iValue * $iDelta; }
/** * Расчет рейтинга и силы при голосовании за блог * * @param ModuleUser_EntityUser $oUser Объект пользователя, который голосует * @param ModuleBlog_EntityBlog $oBlog Объект блога * @param int $iValue * * @return int */ public function VoteBlog($oUser, $oBlog, $iValue) { if (!C::Get('plugin.simplerating.blog.vote')) { return 0; } if (!C::Get('plugin.simplerating.blog.dislike') && $iValue < 0) { return 0; } /** * Устанавливаем рейтинг блога */ $oBlog->setRating((double) $oBlog->getRating() + $iValue * (double) C::Get('plugin.simplerating.blog.add')); /** * Убавляем рейтинг голосующего, если нужно */ if (C::Get('plugin.simplerating.blog_user_remove')) { $oUser->setRating((double) $oUser->getRating() + (double) C::Get('plugin.simplerating.blog.user_remove')); $this->User_Update($oUser); } return (double) C::Get('plugin.simplerating.blog.add'); }
/** * Расчет рейтинга и силы при голосовании за блог * * @param ModuleUser_EntityUser $oUser Объект пользователя, который голосует * @param ModuleBlog_EntityBlog $oBlog Объект блога * @param int $iValue * @return int */ public function VoteBlog(ModuleUser_EntityUser $oUser, ModuleBlog_EntityBlog $oBlog, $iValue) { /** * Устанавливаем рейтинг блога, используя логарифмическое распределение */ $skill = $oUser->getSkill(); $iMinSize = 1.13; $iMaxSize = 15; $iSizeRange = $iMaxSize - $iMinSize; $iMinCount = log(0 + 1); $iMaxCount = log(500 + 1); $iCountRange = $iMaxCount - $iMinCount; if ($iCountRange == 0) { $iCountRange = 1; } if ($skill > 50 and $skill < 200) { $skill_new = $skill / 20; } elseif ($skill >= 200) { $skill_new = $skill / 10; } else { $skill_new = $skill / 50; } $iDelta = $iMinSize + (log($skill_new + 1) - $iMinCount) * ($iSizeRange / $iCountRange); /** * Сохраняем рейтинг */ $oBlog->setRating($oBlog->getRating() + $iValue * $iDelta); return $iValue * $iDelta; }
/** * Обновляет блог в БД * * @param ModuleBlog_EntityBlog $oBlog Объект блога * * @return bool */ public function UpdateBlog($oBlog) { $sql = "\n UPDATE ?_blog\n SET\n blog_title = ?,\n blog_description = ?,\n blog_type = ?,\n blog_date_edit = ?,\n blog_rating = ?f,\n blog_count_vote = ?d,\n blog_count_user = ?d,\n blog_count_topic = ?d,\n blog_limit_rating_topic = ?f ,\n blog_url = ?,\n blog_avatar = ?\n WHERE\n blog_id = ?d\n "; $bResult = $this->oDb->query($sql, $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateEdit(), $oBlog->getRating(), $oBlog->getCountVote(), $oBlog->getCountUser(), $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar(), $oBlog->getId()); return $bResult !== false; }
/** * Расчет рейтинга и силы при голосовании за блог * * @param ModuleUser_EntityUser $oUser Объект пользователя, который голосует * @param ModuleBlog_EntityBlog $oBlog Объект блога * @param int $iValue * @return int */ public function VoteBlog(ModuleUser_EntityUser $oUser, ModuleBlog_EntityBlog $oBlog, $iValue) { $oBlog->setRating($oBlog->getRating() + $iValue); return $iValue; }