[REVO] LikeDislike гибкое голосования для MODX Revolution

LikeDislike
LikeDislike — гибкое голосования для MODX Revolution. Что позволяет посетителям голосовать за все, что угодно на вашем сайте. Админ панель управлениям результатами голосования и шесть шаблонов включены по умолчанию.

Особенности

Гибкие шаблоны
Когда вы добавляете LikeDislike элемент на вашу страницу, вы можете выбрать шаблон (стиль) на ваш выбор для каждого элемента. Этот шаблон может быть изменен в любое время, при этом сохраняя результаты голосования. Вот список всех шаблонов.
Гибкий формат вывода
LikeDislike содержит систему форматирования результата, которая дает вам много контроля над тем, что вы хотите, чтобы отобразить в результате голосования.
IP и ID пользователя
Чтобы избежать двойного голоса, LikeDislike использует куки. У вас есть возможность также ограничить голосование по IP. И куки и IP имеют в настройках системы время жизни. Кроме того, LikeDislike также позволяет интеграцию с системой пользователя. Вы можете указать в настройках проверять пользователя по ID, (или даже заставить пользователей войти в систему для голосования)
Администрирование
LikeDislike имеет простой и понятный модуль администрирования в панели управления сайтом MODX Revolution. В одной таблице расположенны результаты голосования, в другой таблице — список IP адресов, которые нужно заблокировать
Кэширования
LikeDislike сохраняет в кэш обращение к Базе Данных, и обновляет его, после того как пользователь на сайте проголосовал заново за объект.
Документация
На странице помощь вам будут предоставлена информация от установки LikeDislike, до гибких настроек

Домашняя страничка
Проект на github
На MODX в Репо

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

avatar
Хороший сниплет очень понравилась возможность, что бы голосовали только авторизованные люди и сразу возникла проблема не знаю с чем это связанно, но пишит так что как будто человек не авторизован, хотя он сто-пудова авторизован у меня пару кодов которые работают только тогда когда человек авторизован, естественно если под аккаунтом администратора, то видит меня что я авторизован
avatar
обновил до версии LikeDislike 1.0.3-rc1, теперь проблем с контекстами не должно быть, т.е. можете голосовать с любого контекста
avatar
Спасибо, всё заработало
avatar
Последний вопрос как сделать что бы, если человек уже голосовал и нажал опять голосовать, выводилось в alert('Вы уже голосовали')
avatar
выставите в настройках likeDislike куки, это самый примитивный способ, затем можете выставить проверку по IP, ну и если нужно, чтобы голосовали только авторизированные пользователи, добавить проверку id пользователя.
avatar
любопытный сниппет! только один вопрос. если на странице несколько лайков (например, под фото), то можно ли сделать так, чтобы посетитель голосовал только за одну фотку?
avatar
а на демо страничке like.artdevue.com/ru/, вы голосуете сразу за все? :)
Конечно можно.
avatar
вроде да — joxi.ru/8oEqVP3JTJABTKiCYoI повторно не могу голосовать только в «документации». интересует, чтобы лайки 1,2,3,4 блокировались после клика по любому из них
avatar
Здравствуйте!
У меня ест каталог компаний, я прикрутил ваш замечательный рейтинг. Но есть один нюанс, когда сортирую все компании по рейтингу, то компании с отрицательным рейтингом идут выше тех, которые без голосов, то есть с рейтингом 0. Подскажите, пожалуйста, как можно выйти из этой ситуации?
  • ciao
  • 0
avatar
провела голосование на сайте используя LikeDislike и Hybridauth
Во время хода голосования частенько приходили сообщения, что люди не могут проголосовать, а именно, в первый раз авторизировавшись и не успев нажать на кнопку голосования сообщал LikeDislike, что их голос учтен. Причем, на разных страницах в одном и том же каталоге часть страниц позволяла проголосовать, часть нет. В записях LIkedislike_Votes голосов от пользователя не значилось. Изначально приняла за данность, что это ошибка пользователей: их куки, браузеры, повторные регистрации и т.п. Пока сама не авторизировавшись под новым аккаунтом не попала в такую же ситуацию.

Из 16 страниц на половине лайк поставить невозможно.
Код на всех страницах идентичен. Pagetitle не повторяются. Страницы однотипные. К кому обратиться?

[[likeCssjs]]

[[!LikeDislike? 
&name=`[[*pagetitle]]`  
&tpl=`likedislike.tpl` 
&format=`{TOTAL}` 
&rating=`type=1,output=votes_up` 
&likeId=`[[*id]]`   
&resRat=`[[*id]]`
]]


likedislike.tpl
<form method="post" id="likedislike_[[+like.id]]" class="likedislike likedislik_up [[+like.class]]" name="likedislik_up">
    <input type="hidden" name="likedislike_id" value="[[+like.id]]" />
	<input type="hidden" name="likedislike_format" value="[[+like.format]]" />
    <input type="hidden" name="likedislike_round" value="[[+like.round]]" />
   <input type="hidden" name="likedislike_rating" value="[[+like.rating]]" />

	<strong class="result1 error[[+like.squeeze]]" style="color:#009999;">[[+like.result_up]]</strong>

        <strong class="likename" style="color:red;">голосов</strong>   

	<input type="submit" name="likedislike_vote" value="+1" [[+like.disabled]] />
    
    <strong class="likeclose">[[%likedislike.voting_closed]]</strong>
    <strong class="likethanks" style="color:#0099ff;">[[%likedislike.thanks_vote]]</strong>
</form>
Комментарий отредактирован 2017-03-21 01:51:13 пользователем kgb3000
avatar
все страницы некэшируемые с включенной очисткой кэша.

Хэш имена не совпадают

никакой закономерности для этой ошибки найти не могу :(
на данный момент зарегистрировались для голосования 9129 пользователей
Суммарно на 16 страницах 9040 голосов.
При том, что многие голосовали на нескольких страницах, а некоторые на всех, количество непроголосовавших еще больше :(
Самое странное, что не для всех аккаунтов эта ошибка имела место. у меня выскочила на одном из трех :(
Комментарий отредактирован 2017-03-21 02:35:46 пользователем kgb3000
avatar
Как сделать чтобы можно было вывести количество лайков и количество дизлайков данного поста на странице списка постов?
avatar
avatar
Не понял. Это вроде как не из той оперы. Мне нужно вывести результаты голосования конкретного поста по его id на странице родителя постов.
Если нет простого решения, тогда уж лучше через запись в TV, как написано в руководстве компонента.
avatar
Ну так там в примере джойнится таблица, а дальше можно выводить всё что угодно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.