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; }