Drupal → Модули для "лайков" содержимого

28.09.2013

Назрела необходимость выбрать модуль для лайков материалов и комментариев в Drupal 7. Поиск показал наличие как минимум 4-х:

  1. Flag
  2. Rate
  3. Vote Up/Down
  4. Plus 1

Сводная таблица возможностей:

Flag Rate 1 / Rate 2 Vote Up/Down Plus 1
Лайк любой сущности + - (ноды, комментарии) / + + (модуль Vote Up/Down field) - (ноды, комментарии, термины)
Ограничение по ролям + + + +
Лайк анонимными пользователями с помощью Session API + + +
Запретить лайкать свои сущности + + - -
Вывод виджета в ссылках (рядом с "read more") + - - -
Вывод виджета в качестве псевдо-поля + - (только в начале либо в конце ноды) / + + (с помощью Vote Up/Down field) -
Вывод числа лайков в виджете + (с помощью токена) + + +
Вывод числа лайков при отсутствии прав ставить лайк - (легко вывести с помощью api) + + +
Вывод списка лайкнувших - - - -
Интеграция с Views + + (на уровне Voting API) + (на уровне Voting API) + (на уровне Voting API)
Интеграция с Rules + (модуль Flag actions) с помощью Voting Rules с помощью Voting Rules с помощью Voting Rules
Хуки на установку/снятие лайка + + (на уровне Voting API) + (на уровне Voting API) + (на уровне Voting API)
Число установок модуля 34270 9021 2889 913

Flag очень приятный модуль, но по умолчанию нет возможности выводить число лайкнувших если у пользователя нет прав лайкать. Решается парой строчек кода в template.php. Пока остановился на нём.

Rate 1.x цепляется только к нодам и комментам. Rate 2.x в дремучей разработке.

Vote Up/Down под семёрку нестабилен, сыпет ошибками.

Plus 1 очень простой, но отпугивает малое число установок.

Добавлено 28.10.2013

Нашёл ещё два модуля для лайков:

1. Like Button — использует внешний сервис likebtn.com. За бесплатно дают возможность поставить только одну кнопку на странице. За интеграцию с Views придётся купить Pro аккаунт. Неприемлемо.

2. Like Dislike Buttons — пока напрочь отсутствуют любые настройки. Неприемлемо.

Написанное актуально для
Drupal 7
Похожие записи

Комментарии

singleton
28.09.2013, 16:20

Решается парой строчек кода в template.php.
____________________________________________
а не могли бы рассказать по этому поводу поподробнее

например для нод, флаг с именем node_like:

/**
 * Preprocess function for node.tpl.php.
 */
function THEMENAME_preprocess_node(&$vars) {
  if (!isset($vars['content']['flag_node_like'])) {
    $flag_counters = flag_get_counts('node', $vars['nid']);
    $vars['content']['flag_node_like']['#markup'] = isset($flag_counters['node_like']) ? $flag_counters['node_like'] : 0;
  }
}

флаг должен выводиться с помощью псевдо-поля

singleton
28.09.2013, 17:01

флагом не получится сделать две кнопки up-down с количеством и положительных и отрицательных оценок

singleton
28.09.2013, 17:35

ну логика лайка в 2-х бальной оценке - либо лайк либо дизлайк
хотя в Vote Up/Down вроде тоже есть такой виджет

singleton
28.09.2013, 17:38

а как эти модули работают с количеством лайков для анонимных юзеров на закешированных страницах
есть ли возможность сброса кеша после лайка , чтобы колво обновлялось

логика лайка - в однобальной системе
у Vote Up/Down есть соответствующий виджет

singleton
29.09.2013, 18:00

"Вывод виджета в ссылках (рядом с "read more")"
так ведь опять таки можно в препроцессе подредактировать links

Подскажите, с помощью какого модуля можно выставить кол-во голосов в сутки. Ставил Voting up/down, extra voting forms - не нашел ничего подобного. Голос ставится один раз за все время, а мне нужно чтоб пользователь мог голосовать каждый день, но по 1 разу.

В http://xandeadx.ru/blog/drupal/668#comment-9052 недоработка закралась.
Флаг определил как псевдо-поле и только для одного типа ноды, сделал THEMENAME_preprocess_node() - всё работает для этой ноды. Но! В других нодах выводится просто "0", хотя этот флаг к ним не привязан и этого поля нет совсем. Оно и понятно - в приведённом коде никак это не отслеживается.

Как это можно исправить?

А подскажите, пожалуйста, есть способ ограничить кол-во голосов анонимных пользователей в голосовании при помощи rate + voting api? Заренее спасибо

Владимир
20.01.2014, 17:11

Xandeadx, а как возможно вывести сколько анонимный пользователь пометил флагом нод? Пробовал через views связями, как-то не выходит.

Владимир
20.01.2014, 17:36

Вот только нюанс в том, что "разделить" для конкретного анонима никак. Почему-то поле sid (где я так понимаю должен быть id сессии) равно 0. Стоит модуль sessions api.

Владимир
20.01.2014, 17:46

P.S. Стояла галочка "Глобальный тег". Спасибо за подсказку, полез в базу и сразу нашел косяк.

Не подскажите как выводить популярные (по количеству проголосовавших) материалы на главную, использую модули voting api и rate. В настройках views нет нужного фильтра (

Странно но там тоже нет даже намека на сортировку по кол-ву проголосовавших

Прошел год и ничего в лучшую сторону не изменилось.
Подбираю себе модуль по "Я здесь был!", "Хочу это видеть" ...
Rate - отличный удобный и функциональный модуль, но не работает с таксономией и похоже не будет работать, т.к. Рате2 заглох . Да и минус что полем не оформляется
Vote up/down - похоже в еще более глубоком деве стал
Plus1 - что-то сильно резаное.
Flag - ну а тут пилить и пилить походу

грустно...

Вывод вероятно, реакцию для анонимов с редиректом на регистрацию, да и предчувствие, что не только это...
возможно ошибаюсь щас только пробовать буду

а, ну и на сайте не только флажки нужны, но и +\-, и звездочки. Рейт потенциально все вопросы закрывал бы...

Попробовал Rate 2. Для таксономии работает, в виде поля работает, но настройки не понятны и все графические плюшки не доделаны. Да и как 5 звезд сделать стало не понятно...

Александр
22.10.2014, 19:10

Вопрос по модулю Flag. Подскажите пожалуйста, возможно ли вывести счетчик флагов ноды не за всё время, а за какой-либо период времени? Т.е. у меня есть вьюха которая выводит список нод со счетчиками (флагов), но эти счетчики за всё время, а как вывести список нод со счетчиками (флагов), например за последнюю неделю.

делайте запрос к таблице flagging или flag_counts

как же сделать лайк и дизлайк для ноды и комментов?
поставил модуль rate но, количество проголосовавших показывает 0, если нажать на лайк, то показывает реальное количество, перезагружаемся и опять ноль, что за бред?
поставил флаг, создал два флага, все вроде ок, но эти два флага должны работать в связке, либо один отмечени, либо второй, может это как -то можно сделать не сложно?
спасибо

Flag, думаю самый лучший!
Большой функционал, удобно темизировать. Ссылку "Мне нравится" даже можно в отдельный шаблон flag.tpl.php темы засунуть.

Код в template.php подходит для обычных ссылок
При использовании js-ссылок, количество не будет обновляться.
Я поступил другим путем, в шаблоне флага "flag--{myflag}.tpl.php"
Добавил небольшой код
<?php
$flag_counters = flag_get_counts('node', $entity_id);
$link_text = isset($flag_counters['node_flag_like']) ? $flag_counters['node_flag_like'] : 0;
?>

Гость1
16.03.2016, 23:37

Вывести список лайкнувших модуем Флаг - через вьюз релейшн флага - user flagged если флаг - global

Денис
07.02.2017, 11:29

Я знаю что выставлять модуль Rate для анонимных пользователей нельзя, по кнопкам сразу начинают ползать боты и голосовать даже если поставить на ссылки ноиндекс и нофолов. А как дела обстоят у модуля Флаг если дать голосовать анонимам?

Анонимные лайки это сама по себе плохая идея.

Гость
17.06.2019, 16:58

Поторопился делиться. Установил. При нажатии на кнопку лайк или дизлайк открывается страница с php кодом данного модуля. С моим уровнем программирования, точно не полезу "лечить" модуль.

Добавить комментарий