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
