[siteStatistics] ip, referer и user-agent
В новой версии сделаны небольшие, но приятные доработки. Начнём по порядку.
Поля ip, referer и user-agent
В таблице пользователей появились эти три поля. Лично мне особенно интересно поле referer. Видно откуда человек пришёл. Остальные два поля тоже пригодятся. По ним, например, можно вычислить дубли. Иногда, почему-то они появляются. У меня на сайте, если открыть главную страницу в хроме, то статистика почему-то задваивается. В других браузерах такой странности не наблюдается.
Другие доработки
Ещё для фильтрации пользователей добавлено 2 системные настройки:
- stat.not_allowed_ip — список ip адресов через запятую, для которых статистика учитываться не будет.
- stat.not_allowed_user_agents — то же, что и предыдущая настройка, только для юзер-агентов. Например, для отсечения ботов можно указать «bot,spider,slurp». Поиск идет через
preg_match()
.
Я первую настройку использую для отсечения запросов с h3.modhost.pro (мой провайдер), который каждые 10 минут стучится на главную страницу для проверки статуса сайта.
В списке пользователей теперь есть возможность их удаления. При удалении будет предложено 2 варианта:
- Удалить пользователя и статистику его просмотров.
- Удалить пользователя, а статистику оставить.
В сниппете siteOnlineUsers добавлено 2 свойства:
- fullMode — режим вывода информации о текущих пользователях — короткий (false) или полный (true).
- tplItem — шаблон для вывода списка текущих пользователей (для полного режима). По-умолчанию,
<p>[[+stat.fullname]]</p>
Короткий режим —
В полном режиме выводится поименный список пользователей. Имена берутся из поля fullname профиля.
Сортировка статей по количеству просмотров
Ну и напоследок приведу пример сортировки статей по количеству просмотров с использованием сниппета pdoResource из библиотеки pdoTools.
[[!pdoResources? &parents=`0` &limit=`0` &loadModels=`sitestatistics` &tpl=`@INLINE [[+id]]. [[+pagetitle]] - [[+views]]` &leftJoin=`{ "Statistics": { "class": "PageStatistics", "on": "modResource.id = Statistics.rid" } }` &select=`{ "modResource": "*", "Statistics": "IFNULL(SUM(views),0) as views" }` &groupby=`modResource.id` &sortby=`views` ]]
Тоже самое, только для фильтра mFilter2.
[[!mFilter2? &class=`msProduct` &element=`msProducts` &loadModels=`sitestatistics` &leftJoin=`{ "Statistics":{"class":"PageStatistics","on":"msProduct.id=Statistics.rid"} }` &select=`{ "msProduct":"*", "Statistics":"IFNULL(SUM(views),0) as views" }` &groupby=`msProduct.id` &sortby=`views` ]]
Комментарии ()
Вы должны авторизоваться, чтобы оставлять комментарии.
Подскажите, пожалуйста, почему у некоторых посетителей сайта пустое значение в $_SESSION['siteStatistics']?
при этом виджет «Сейчас на сайте» не выводится, если ставлю &fullMode=`0`, то виджет показывается но количество гостей/пользователей всегда показывает = 0.
Версия MODX Revolution 2.7.1
PHP version 7.1.33
Все сделал строго по инструкции, в системных настройках siteStatistics — включен учет посещений пользователей.
Сергей подскажи пожалуйста в какую сторону копать??? Уж очень понравилось это дополнение, хочется чтобы все работало
В логе пусто, никаких ошибок по дополнению нету