static_rocket_468x60.jpg

Топ комментаторов

топ комментаторов

Началось всё с того, что я решил провести конкурс среди читателей сайта webonlife. Как понятно из названия статьи чтобы победить в конкурсе нужно активно комментировать статьи сайта. Про условия конкурса я уже писал в рассылке. Сейчас поговорим о технической стороне. Что сложного в том чтобы сделать топ комментаторов? Поставил модуль, настроил и вперёд. На самом деле всё не так просто. Модуль есть, но он только под шестёрку. Топ 10 Гоши и Яши навевали тоску. Поиск по drupal.ru окончательно убедил в том что просто и быстро не получиться. В итоге, уже в который раз, выручил модуль Views.

Создаём представление в котором будет показывать комментарии. Да именно комментарии. Можно выбрать пользователей(мой первый опыт) или контент. И потом наладить связи. Мы сделаем всё с минимумом движений. Итак создаём блок который будет выводить комменты. Формат отображения не важен главное чтобы выводились поля.новое представление, выводим комменты, показываем поля

Нам понадобиться только одно поле но два раза. Прежде чем его добавить в расширенных настройках включаем агрегацию. При первом добавлении поля "Комментарий: Автор" выбираем тип агрегации "группировать результаты". А второй раз добавив это же поле тип агрегации выбираем "счётчик". Таким образом мы сперва сгруппировали все комменты автора, а потом их подсчитали. В критериях сортировки также выбираем счётчик для поля "Комментарий: Автор" и сортируем по убыванию.

Пришел черёд фильтров. После создание представления у нас уже есть пара фильтров. Первый фильтрует только одобренные комментарии, второй комменты только для опубликованного содержимого. Что из этого оставить решать вам. Я оставил только первый. На этом можно было бы закончить, но посмотрев на результат я обнаружил что я лидирую в топе с большим отрывом. Топ комментаторов задумывался для посетителей сайта, а не для моего ЧСВ. Нужно отфильтровать зарегистрированных пользователей, тем более что я здесь один такой. Прежде чем перейти к фильтрам добавим связь "Комментарий: Автор". Теперь добавляем фильтр "Пользователь:Роли".
Убираем из вывода зарегистрированных на сайте пользователей

Финальный скрин представления

вьювса для вывода лучших комментаторов в блок

оценить статью: 
Средняя: 4.3 (3 оценок)

Комментарии

3
Аватар пользователя Антон Дышлюк

Антон Дышлюк вс, 03/30/2014 - 21:31

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

Аватар пользователя Oleg

Oleg вс, 03/30/2014 - 21:52

Всё зависит от уровня подготовки и прямоты рук. Про Wordprees ничего не могу сказать. Я так и не собрался его попробовать.
Что касается Drupal нагрузку не замерял но не думаю что она сильно увеличиться потому что есть в Drupal кэширование.
Теперь о модуле при помощи которого был сделан топ комментаторов. Views - это один из тех модулей которые делают Drupal самым крутым движком. Благодаря ему можно отправлять запросы к базе данных просто нажимая кнопочки. Начиная с восьмой версии движок из коробки идёт с этим модулем, так что можно его считать не доп модулем, а модулем ядра.
Кстати слайдшоу на главной и и блок новостей справа и изменённый вывод главной страницы - Всё это сделано при помощи модуля Views.

Аватар пользователя Антон Дышлюк

Антон Дышлюк вс, 03/30/2014 - 22:11

Как я понял, это универсальный модуль, в котором много функций, так как ты с помощью его сколько сделал полезных дел.(Топ кометаторов, слайдшоу, блок новостей).

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