Достаточно часто появляются вопросы из серии «Как посмотреть дату последнего появления пользователя?» или «Как посмотреть, кто онлайн?»
Увидев очередной такой вопрос, мы решили создать простенький компонент, который не только ответит на такие вопросы, но и полностью их решит.

Возможности
  1. Фиксирует дату крайнего появления каждого пользователя (во всех контекстах)
  2. Выводит список пользователей онлайн на сайте
  3. Сбрасывает авторизацию отключенных и заблокированных пользователей

Фиксация даты появления пользователя

Для этого используется объект UserOnline, в котором фиксируется:

  • ID пользователя
  • Текущий контекст
  • Дата и время появления
Появление пользователя в контексте mgr тоже фиксируется. Чтобы это отключить, выставьте системную настройку usersonline_mgr_check в «Нет».

Вывод списка пользователей онлайн

Для этой задачи используется сниппет getOnlineUsers, который является оберткой над pdoUsers. Соответственно, оформлением результатов занимается pdoUsers, которому передаются все параметры вызова.

Параметры сниппета getOnlineUsers:

Название: &contexts
По умолчанию: Пустое значение (проверка во всех контекстах)
Описание: Список контекстов через запятую, в которых проверяются пользователи

Название: &timeInterval
По умолчанию: -1 (взять значение из системной настройки usersonline_time_span)
Описание: Время в секундах, в течение которого пользователь считается находящимся на сайте

Системная настройка компонента:

Название: usersonline_time_span
По умолчанию: 900
Описание: Время в секундах, в течение которого пользователь считается находящимся на сайте

Сброс авторизации заблокированным пользователям

По умолчанию в MODX, после блокировки пользователь может делать на сайте все, что угодно, пока жива его сессия. Плагин UsersOnline проверяет, активен ли текущий пользователь. Если он заблокирован или отключен, будет запущен автоматический выход из системы и перенаправление на главную страницу, после чего беззаботная жизнь нарушителя закончится.

Пакет доступен в магазине и официальном репозитории modx.com.
Автор: Роман Садоян