Увидев очередной такой вопрос, мы решили создать простенький компонент, который не только ответит на такие вопросы, но и полностью их решит.
Возможности
- Фиксирует дату крайнего появления каждого пользователя (во всех контекстах)
- Выводит список пользователей онлайн на сайте
- Сбрасывает авторизацию отключенных и заблокированных пользователей
Фиксация даты появления пользователя
Для этого используется объект UserOnline, в котором фиксируется:
- ID пользователя
- Текущий контекст
- Дата и время появления
Вывод списка пользователей онлайн
Для этой задачи используется сниппет getOnlineUsers, который является оберткой над pdoUsers. Соответственно, оформлением результатов занимается pdoUsers, которому передаются все параметры вызова.
Параметры сниппета getOnlineUsers:
Название: &contexts
По умолчанию: Пустое значение (проверка во всех контекстах)
Описание: Список контекстов через запятую, в которых проверяются пользователи
Название: &timeInterval
По умолчанию: -1 (взять значение из системной настройки usersonline_time_span)
Описание: Время в секундах, в течение которого пользователь считается находящимся на сайте
Системная настройка компонента:
Название: usersonline_time_span
По умолчанию: 900
Описание: Время в секундах, в течение которого пользователь считается находящимся на сайте
Сброс авторизации заблокированным пользователям
По умолчанию в MODX, после блокировки пользователь может делать на сайте все, что угодно, пока жива его сессия. Плагин UsersOnline проверяет, активен ли текущий пользователь. Если он заблокирован или отключен, будет запущен автоматический выход из системы и перенаправление на главную страницу, после чего беззаботная жизнь нарушителя закончится.
Пакет доступен в магазине и официальном репозитории modx.com.
Автор: Роман Садоян
Комментарии (0)