Активность пользователей сайта
Одним из самых развиваемых направлений сайтостроения в последние годы являются социальные сети, главная задача такого сайта дать большему количеству людей площадку для общения. Количество пользователей сайта возрастает и уследить изменения которые они делают ставится все сложнее. Для удобного наблюдения за активностью сайта или пользователя существуют специальные модули, которые мы сейчас и рассмотрим.
Цель рассматриваемых модулей отследить действия пользователя и вывести в удобном виде. Чем больше действий модуль может фиксировать тем лучше. Другой важный показатель — интеграция с другими модулями и наличие развитого API.
Логика работы всех рассматриваемых модулей одинакова. Отслеживаем необходимый хук (hook) и записываем событие в свою таблицу базы данных. Все рассматриваемые модули работают в связке с Views, поэтому вывод результатов не вызывает сложностей — создается обычный вид и при необходимости его темизируем в своем модуле или теме.
Activity
http://drupal.org/project/activity
Актуальная ветка модуля 6.x-2.x (6.x-1.x более не поддерживается и нет возможности апгрейда к ветке 2.х). Зависит от модулей Token и Trigger. В комплекте с модулем есть под модуль Activity comments с помощью которого любое зафиксированное действие можно комментировать.
Готовые интеграции с другими модулями:
- Comment, Node, User — реализовано в самом модуле;
- Flag, Organic groups — реализовано в этих модулях.
Модуль позволяет фиксировать такие действия пользователей:
Comment Triggers:
- insert: После сохранения нового комментария
- update: После обновления комментария
Nodeapi Triggers:
- delete: После удаления материала
- insert: После создания материала
- update: После обновления материала
- view: При просмотре материала зарегистрированным пользователем
User Triggers:
- insert: После регистрации пользователя
- update: После обновления учетной записи пользователя
- login: После входа в учетную запись
- logout: После выходя пользователя из учетной записи
- view: При просмотре профиля пользователя
Flag Triggers:
- flag: Когда содержимое отмечается
- unflag: При удаление метки содержимого
Og Triggers:
- user insert: Присоединение пользователя к группе
- user update: Пользователь изменил подписки на группы
- user delete: Пользователь удалил подписки на группы
- user approve: Пользователя приняли в группу
- user deny: Пользователю отказано в участие группы
- user request: Пользователь запросил участие в группе
- admin new: Пользователь назначен администратором группы
Модуль имеем качественный код и API, есть описание реализованных хуков и документация по использованию. В качестве примера можно рассмотреть уже готовые реализации для интеграции модулей. Модуль позволяет гибко настраивать права доступа к регистрации активности и просмотру.
Также в модулей есть интернационализация и поэтому все действия легко реализовать на необходимом языке сайта.
Данные хранятся в 4х таблицах:
- activity — все события активности
- activity_targets — связь между сообщением, языком и событием.
- activity_messages — сообщения
- activity_access — связь между событиями и модулями дающими права на событие.
Heartbeat
http://drupal.org/project/heartbeat
Достаточно мощный модуль в состав которого включено еще 10 под модулей: Flag heartbeat, friendlist activity, Heartbeat comments, Heartbeat displays, Heartbeat example module, Heartbeat rules, Heartbeat test helper, Heartbeat views, organic group activity, Shouts. Здесь полный набор от интеграции с другими модулям до тестов и модуля примера.
Интеграция с модулями: comment, node, user, flag, OG, system, taxonomy, flag_friend, friendlist, User relationships, выводит результаты через Views, связан с модулем Rule.
Этот модуль как выглядит мощно, так же мощно и реализован, почти для всего есть фиксация событий. Например, можно через админ страницы реализовать проверку на сколько процентов заполнен профиль пользователя и соответственно выводить сообщение: профиль создан; профиль заполнен на 30%, профиль заполнен полностью или сделать проверку заполнения обязательных полей и дополнительных.
Все данные записываются в таблицы:
- heartbeat_activity — таблица с сообщениями о активности, каждое сообщение; сохраняется сразу на всех включенных языках сайта;
- heartbeat_tags — теги для сообщений модуля;
- heartbeat_mt — связь тегов и сообщений;
- heartbeat_translations — связь таблиц переводов и активности;
- heartbeat_messages — таблица сообщений для событий.
Есть поддержка многоязычности и сообщения записываются сразу на нескольких языках. К сожалению сам модуль не переведен на русский и украинский языки, примерно 10% перевода в наличии, но это легко исправимая ситуация. Несмотря на интеграцию с большим количеством модулей, есть мощное и гибкое API c необходимой документацией для разработчика и модуль уже поддерживает Drupal 7.х.
Message
http://drupal.org/project/message
Несмотря на то что разработчики на странице модуля написали что модуль аналогичен activity и привели список отличий, на самом деле отличий намного больше, часть из которых необходимо записать в минус. Проблемы начали еще во время настройки появилась ошибка отсутствие функции i18nstrings_update() в модуле i18, как выяснилось позже эта функция добавлена в последних версиях i18, поэтому для начала необходимо обновиться.
В продолжение казусов у нас есть документация — видео, где показано как настроить модуль через подмодуль UI, но в новых версиях этого подмодуля уже нет, а сам модуль это API и из подмодулей есть в наличии Message example и Message follow.
По статистике drupal.org модулем пользуется около 20 человек.
Из интеграции есть связь с flag. Также модуль работает вместе с i18, Views, ctools, rule.
Сообщения хранятся в таблицах:
- message — шаблоны сообщений;
- message_instance — сообщения;
- message_realm — сфера действия сообщений (пользователь, нода, органик групп).
Для разработчика есть пример, модуля с использованием API, документации практически нет.
Итог
Из представленных модулей только первые 2 можно принимать к рассмотрению, message сыроват и ему не хватает поддержи разработчиков и сообщества (без наличия сопровождающей документации поддержка появится не скоро).
API первых двух модулей схож и с его помощью можно реализовать фиксацию любых действий пользователей или сайта.
По статистике использования модуль activity успел покорить 2000 человек против 1000 у heartbeat, хотя это скорее из-за рождения первого в ветке 5.x Друпала.
Если сравнивать удобство управления из админки, то модуль heartbeat на порядок сделан удобнее и функциональние, по остальным параметрам модули идут рядом друг с другом.
Комментарии
26 ноября, 2010
Первый имхо удобнее с точки зрения кодеров, второй больше для любителей UI
Значительно интереснее сравнить данные модули с точки зрения оказываемой нагрузке, интеграцией с features
http://drupal.org/project/usage/activity
Week 5.x 6.x Total
November 14th 95 2,077 2,172
http://drupal.org/project/usage/heartbeat
Week 6.x 7.x Total
November 14th 1,170 4 1,174
Хотите что-то добавить?