Exemplo n.º 1
0
 /**
  * Обновляет блог в БД
  *
  * @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;
 }
Exemplo n.º 2
0
 /**
  * Расчет рейтинга и силы при голосовании за блог
  *
  * @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;
 }
Exemplo n.º 3
0
 /**
  * Расчет рейтинга и силы при голосовании за блог
  *
  * @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');
 }
Exemplo n.º 4
0
 /**
  * Расчет рейтинга и силы при голосовании за блог
  *
  * @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;
 }
Exemplo n.º 5
0
 /**
  * Обновляет блог в БД
  *
  * @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;
 }
Exemplo n.º 6
0
 /**
  * Расчет рейтинга и силы при голосовании за блог
  *
  * @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;
 }