smartSessions
Компонент расширяет стандартный обработчик сессий modSessionHandler
, добавляя следующие колонки в таблицу с сессиями (используется таблица с именем modx_smart_sessions
):
ip
— ip адрес пользователя;user_agent
- User-Agent браузера;user_id
— id пользователя, если он авторизован.
Благодаря этому можно получить расширенную информацию о посетителях на вашем сайте, а также задать различное время хранения сессий для разных посетителей сайта.
Установка
- Установите пакет из репозитория.
- В системной настройке
session_handler_class
поставьте значениеsmartSessionHandler
. - Проверьте, что данные начали собираться в таблицу
modx_smart_sessions
. При этом таблицаmodx_sessions
больше не используется, ее можно очистить.
Удаление
Верните стандартное значение modSessionHandler
в системной настойке session_handler_class
, после чего можете удалить пакет.
Настройки
Для настройки компонента перейдите в раздел "Системные настройки", пространство имен "smartsessions".
smartsessions_bot_signatures
— список сигнатур поисковых ботов, разделенных вертикальной чертой, для поиска (через LIKE) по полюuser_agent
. Добавьте сюда ботов, которые часто посещают ваш сайт.smartsessions_bots_gc_maxlifetime
— время жизни сессий ботов, указанных в настройкеsmartsessions_bot_signatures
. Уменьшая его вы уменьшите срок хранения сессий ботов и сократите размер таблицы с сессиями.smartsessions_empty_user_agent_gc_maxlifetime
— время жизни сессий с пустым User-Agent. Как правило, его можно задать таким же, как и для ботов.smartsessions_authorized_users_gc_maxlifetime
— время жизни сессий авторизованных пользователей. Вы можете увеличить его и сделать значение больше, чем в настройкеsession_gc_maxlifetime
.
Стандартное время жизни сессий по прежнему определяется настройкой session_gc_maxlifetime
.
Пример сценария настройки компонента:
session_gc_maxlifetime
— стандартное значение 604800 (7 дней);smartsessions_bots_gc_maxlifetime
— 10800, сессии ботов хранятся 3 часа и занимают минимум места в базе;smartsessions_empty_user_agent_gc_maxlifetime
— 10800, сессии с пустым User-Agent хранятся 3 часа и занимают минимум места в базе;smartsessions_authorized_users_gc_maxlifetime
— 2592000, сессии авторизованных пользователей хранятся 30 суток, что позволит дольше сохранять авторизацию и список покупок в корзине.
Известные проблемы
Пункт меню "Управление" / "Завершить все сеансы" перестанет работать. Происходит это по той причине, что данное действие работает только со стандартным обработчиком сессий modSessionHandler
, что жестко прописано в коде.
Полезное
SQL запрос для просмотра количества сессий, сгруппированных по user_agent, который позволит найти самые частотные User-Agent в вашей базе:
SELECT `user_agent`, COUNT(*)
FROM `modx_smart_sessions`
GROUP BY `user_agent`
ORDER BY `COUNT(*)` DESC