Пример #1
0
 protected function _vote($positive)
 {
     $current = $this->getRating();
     $point = $positive ? 1 : -1;
     $userVotingId = CMA_Thread::getUserVotingId();
     $metaId = add_comment_meta($this->getId(), $positive ? self::META_USER_RATING_POSITIVE : self::META_USER_RATING_NEGATIVE, $userVotingId, $unique = false);
     if ($metaId) {
         add_post_meta($this->getId(), self::META_VOTE_IP . '_' . $metaId, $_SERVER['REMOTE_ADDR']);
         add_post_meta($this->getId(), self::META_VOTE_UA . '_' . $metaId, $_SERVER['HTTP_USER_AGENT']);
         add_post_meta($this->getId(), self::META_VOTE_TIME . '_' . $metaId, time());
         if (!empty($_COOKIE[CMA_Thread::COOKIE_ANONYMOUS_UID])) {
             add_post_meta($this->getId(), self::META_VOTE_COOKIE . '_' . $metaId, $_COOKIE[CMA_Thread::COOKIE_ANONYMOUS_UID]);
         }
         $this->updateRatingCache();
         if (CMA_Settings::getOption(CMA_Settings::OPTION_LOGS_ENABLED)) {
             CMA_AnswerVoteLog::instance()->log($this->getId(), $point);
         }
     } else {
         $point = 0;
     }
     return $current + $point;
 }