Гостевое голосование за топик, коммент, блог.

Доброго времени суток.

Необходимо реализовать на проекте анонимное голосование за топик, коммент и блог.

Готов оплатить сию работу. Бюджет оговаривается.

Что должен уметь плагин:

1. Защита от накруток (проверки по IP или кукам достаточно)
2. При плюсовании коммента карма должна прибавляться к топику, а карма топика соответственно в блог. (Пропорции кармы вынести в конфиг)
3. Реализовать возможность голосовать за топик как на Пикабу. Если поставил минус, то можно поменять его на плюс.

Используется плагин компании. LS 1.0.x Если есть вопросы можно в ЛС или тут же в комменты.

13 комментариев

avatar
Неужели это невозможно?
  • O3OH
  • 0
avatar
Так озвучьте бюджет, может быть тогда разрабы нарисуются )
Очередная плюшечка? Поможет ли?
avatar
Чему поможет? :) Все эти голосовалки вообще убирать на фиг надо. Хочет что сказать, пусть коммент пишет, а то взяли моду, на лайки нажимать и молча убегать :)
avatar
Я сейчас ставлю эксперемент на сайте где не жалко контент (на случай кражи), закрыл вчера почти всё, доступны только анонсы статей )
ИМХО хороший контент скоро станет для пользователя платным. Или плати или сиди во вконтактике замызганные старые демотиваторы рассматривай )
avatar
Как его озвучить? Я не знаю сколько это может стоить… а тот кто может это реализовать и должен цену указать. Все ведь зависит от сложности. И это не плюшечка, а необходимый функционал сайта. Специфика проекта так сказать…
avatar
Озвучьте бюджет, сколько Вы бы отдали за эту плюшку, а так ажиотажа не будет (
необходимый функционал сайта. Специфика проекта так сказать…
Гони «гостей» взашей! )))

Вот почитайте на досуге это до конца. Пишут и пишут, но не уходят и посещалка только растет. На юзера надо плевать и почаще, тогда он потянется к вам. Делайте короче уже выводы на счёт плюшек.
avatar
Я уважаю Ваше мнение, но мне действительно нужна именно такая «плюшка».

Я занимаюсь сайтом на уровне обывателя, как хобби оно у меня. У меня достаточно финансов, что бы иногда прикупить плагин. Делаю я этот проект так, как хочу и как вижу его. Но я не знаю стоимости такой работы. Поэтому и не могу озвучить бюджет. Это как прийти в незнакомый бар и сказать бармену — Выпью у вас пива за 50 центов!
avatar
И спросить то не у кого, кроме сообщества…
  • O3OH
  • +1
avatar
Скажите знатоки? Я тут копаю???

/**
	 * Голосование за комментарий
	 *
	 */
	protected function EventVoteComment() {
		/**
		 * Пользователь авторизован?
		 */
		if (!$this->oUserCurrent) {
			$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
			return;
		}
		/**
		 * Комментарий существует?
		 */
		if (!($oComment=$this->Comment_GetCommentById(getRequest('idComment',null,'post')))) {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error_noexists'),$this->Lang_Get('error'));
			return;
		}
		/**
		 * Голосует автор комментария?
		 */
		if ($oComment->getUserId()==$this->oUserCurrent->getId()) {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error_self'),$this->Lang_Get('attention'));
			return;
		}
		/**
		 * Пользователь уже голосовал?
		 */
		if ($oTopicCommentVote=$this->Vote_GetVote($oComment->getId(),'comment',$this->oUserCurrent->getId())) {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error_already'),$this->Lang_Get('attention'));
			return;
		}
		/**
		 * Время голосования истекло?
		 */
		if (strtotime($oComment->getDate())<=time()-Config::Get('acl.vote.comment.limit_time')) {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error_time'),$this->Lang_Get('attention'));
			return;
		}
		/**
		 * Пользователь имеет право голоса?
		 */
		if (!$this->ACL_CanVoteComment($this->oUserCurrent,$oComment)) {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error_acl'),$this->Lang_Get('attention'));
			return;
		}
		/**
		 * Как именно голосует пользователь
		 */
		$iValue=getRequest('value',null,'post');
		if (!in_array($iValue,array('1','-1'))) {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error_value'),$this->Lang_Get('attention'));
			return;
		}
		/**
		 * Голосуем
		 */
		$oTopicCommentVote=Engine::GetEntity('Vote');
		$oTopicCommentVote->setTargetId($oComment->getId());
		$oTopicCommentVote->setTargetType('comment');
		$oTopicCommentVote->setVoterId($this->oUserCurrent->getId());
		$oTopicCommentVote->setDirection($iValue);
		$oTopicCommentVote->setDate(date("Y-m-d H:i:s"));
		$iVal=(float)$this->Rating_VoteComment($this->oUserCurrent,$oComment,$iValue);
		$oTopicCommentVote->setValue($iVal);

		$oComment->setCountVote($oComment->getCountVote()+1);
		if ($this->Vote_AddVote($oTopicCommentVote) and $this->Comment_UpdateComment($oComment)) {
			$this->Message_AddNoticeSingle($this->Lang_Get('comment_vote_ok'),$this->Lang_Get('attention'));
			$this->Viewer_AssignAjax('iRating',$oComment->getRating());
			/**
			 * Добавляем событие в ленту
			 */
			$this->Stream_write($oTopicCommentVote->getVoterId(), 'vote_comment', $oComment->getId());
		} else {
			$this->Message_AddErrorSingle($this->Lang_Get('comment_vote_error'),$this->Lang_Get('error'));
			return;
		}
	}
  • O3OH
  • 0
avatar
Не парься. Возьми бесплатный плагин admvote и присвой гостям id=1. И будут они у тебя голосовать, пока мышка не сломается :)
  • aex
  • 0
avatar
Не выходит…
avatar
Как именно не выходит?
avatar
Плачу 20$ за реализацию этого плагина.
  • O3OH
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.