Назрела необходимость выбрать модуль для лайков материалов и комментариев в Drupal 7. Поиск показал наличие как минимум 4-х:
Сводная таблица возможностей:
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 — пока напрочь отсутствуют любые настройки. Неприемлемо.
- Модуль Auto-Dialog — показываем контент и формы в jQuery диалоге
- Модуль References dialog — расширение возможностей виджета у полей типа entity reference
- Модуль Automatic Nodetitles — автоматическая генерация заголовка материала
- Вывести с помощью Views самое осбуждаемое за последнюю неделю
- Модуль Commentsblock — перемещаем комментарии в блок
Комментарии
Решается парой строчек кода в template.php.
____________________________________________
а не могли бы рассказать по этому поводу поподробнее
например для нод, флаг с именем
node_like
:флаг должен выводиться с помощью псевдо-поля
флагом не получится сделать две кнопки up-down с количеством и положительных и отрицательных оценок
это уже не лайки
ну тогда уж и Vote Up/Down не лайк
почему?
ну логика лайка в 2-х бальной оценке - либо лайк либо дизлайк
хотя в Vote Up/Down вроде тоже есть такой виджет
а как эти модули работают с количеством лайков для анонимных юзеров на закешированных страницах
есть ли возможность сброса кеша после лайка , чтобы колво обновлялось
логика лайка - в однобальной системе
у Vote Up/Down есть соответствующий виджет
Rate самое то для этой задачи
"Вывод виджета в ссылках (рядом с "read more")"
так ведь опять таки можно в препроцессе подредактировать links
Подскажите, с помощью какого модуля можно выставить кол-во голосов в сутки. Ставил Voting up/down, extra voting forms - не нашел ничего подобного. Голос ставится один раз за все время, а мне нужно чтоб пользователь мог голосовать каждый день, но по 1 разу.
В http://xandeadx.ru/blog/drupal/668#comment-9052 недоработка закралась.
Флаг определил как псевдо-поле и только для одного типа ноды, сделал THEMENAME_preprocess_node() - всё работает для этой ноды. Но! В других нодах выводится просто "0", хотя этот флаг к ним не привязан и этого поля нет совсем. Оно и понятно - в приведённом коде никак это не отслеживается.
Как это можно исправить?
проверяйте $vars['type']
Точно! :) Благодарю
А подскажите, пожалуйста, есть способ ограничить кол-во голосов анонимных пользователей в голосовании при помощи rate + voting api? Заренее спасибо
Xandeadx, а как возможно вывести сколько анонимный пользователь пометил флагом нод? Пробовал через views связями, как-то не выходит.
делайте запрос в таблицу
flagging
Вот только нюанс в том, что "разделить" для конкретного анонима никак. Почему-то поле sid (где я так понимаю должен быть id сессии) равно 0. Стоит модуль sessions api.
P.S. Стояла галочка "Глобальный тег". Спасибо за подсказку, полез в базу и сразу нашел косяк.
Не подскажите как выводить популярные (по количеству проголосовавших) материалы на главную, использую модули voting api и rate. В настройках views нет нужного фильтра (
смотрите в сортировке
Странно но там тоже нет даже намека на сортировку по кол-ву проголосовавших
Прошел год и ничего в лучшую сторону не изменилось.
Подбираю себе модуль по "Я здесь был!", "Хочу это видеть" ...
Rate - отличный удобный и функциональный модуль, но не работает с таксономией и похоже не будет работать, т.к. Рате2 заглох . Да и минус что полем не оформляется
Vote up/down - похоже в еще более глубоком деве стал
Plus1 - что-то сильно резаное.
Flag - ну а тут пилить и пилить походу
грустно...
что в флаге пилить?
Вывод вероятно, реакцию для анонимов с редиректом на регистрацию, да и предчувствие, что не только это...
возможно ошибаюсь щас только пробовать буду
а, ну и на сайте не только флажки нужны, но и +\-, и звездочки. Рейт потенциально все вопросы закрывал бы...
Попробовал Rate 2. Для таксономии работает, в виде поля работает, но настройки не понятны и все графические плюшки не доделаны. Да и как 5 звезд сделать стало не понятно...
Вопрос по модулю 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;
?>
Вывести список лайкнувших модуем Флаг - через вьюз релейшн флага - user flagged если флаг - global
Я знаю что выставлять модуль Rate для анонимных пользователей нельзя, по кнопкам сразу начинают ползать боты и голосовать даже если поставить на ссылки ноиндекс и нофолов. А как дела обстоят у модуля Флаг если дать голосовать анонимам?
Анонимные лайки это сама по себе плохая идея.
Нашёл ещё такой: https://www.drupal.org/project/like_dislike . Очень прост в установке и есть готовый стиль CSS для допиливания под себя.
Поторопился делиться. Установил. При нажатии на кнопку лайк или дизлайк открывается страница с php кодом данного модуля. С моим уровнем программирования, точно не полезу "лечить" модуль.
Добавить комментарий