[siteStatistics] ip, referer и user-agent
В новой версии сделаны небольшие, но приятные доработки. Начнём по порядку.

Реферер и юзер-агент на всегда полностью помещаются в поле. Чтобы не мучиться с размерами колонок посмотреть их можно по двойному клику.
В списке пользователей теперь есть возможность их удаления. При удалении будет предложено 2 варианта:
В сниппете siteOnlineUsers добавлено 2 свойства:

В полном режиме выводится поименный список пользователей. Имена берутся из поля fullname профиля.
Тоже самое, только для фильтра mFilter2.
Полная документация.
П.С. Теперь в списке пользователей периодически наблюдаю попытки подбора адреса админки, так как при переадресации на страницу 404 в поле реферер пишется набранный адрес. Прикольно.
Поля ip, referer и user-agent
В таблице пользователей появились эти три поля. Лично мне особенно интересно поле referer. Видно откуда человек пришёл. Остальные два поля тоже пригодятся. По ним, например, можно вычислить дубли. Иногда, почему-то они появляются. У меня на сайте, если открыть главную страницу в хроме, то статистика почему-то задваивается. В других браузерах такой странности не наблюдается.Реферер и юзер-агент на всегда полностью помещаются в поле. Чтобы не мучиться с размерами колонок посмотреть их можно по двойному клику.
Другие доработки
Ещё для фильтрации пользователей добавлено 2 системные настройки:- stat.not_allowed_ip — список ip адресов через запятую, для которых статистика учитываться не будет.
- stat.not_allowed_user_agents — то же, что и предыдущая настройка, только для юзер-агентов. Например, для отсечения ботов можно указать «bot,spider,slurp». Поиск идет через preg_match().
В списке пользователей теперь есть возможность их удаления. При удалении будет предложено 2 варианта:
- Удалить пользователя и статистику его просмотров.
- Удалить пользователя, а статистику оставить.
В сниппете siteOnlineUsers добавлено 2 свойства:
- fullMode — режим вывода информации о текущих пользователях — короткий (false) или полный (true).
- tplItem — шаблон для вывода списка текущих пользователей (для полного режима). По-умолчанию, [[+stat.fullname]]

В полном режиме выводится поименный список пользователей. Имена берутся из поля 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`
]]Полная документация.
П.С. Теперь в списке пользователей периодически наблюдаю попытки подбора адреса админки, так как при переадресации на страницу 404 в поле реферер пишется набранный адрес. Прикольно.
Комментарии: 34
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В параметре where указывается id пользователя и период.
Я к тому, что может ещё где какие доп. настройки надо делать?
Стоит MODX Revo 2.6.1. После установки плагина кеш чистил. На страницах выводит статистику, в админке показывает, но вот ботов игнорить отказывается.
В админке в «Онлайн» вижу:
— Mozilla/5.0 (compatible; YandexAccessibilityBot/3.0; +http://yandex.com/bots)
— Mozilla/5.0 (compatible; SemrushBot/2~bl; +http://www.semrush.com/bot.html)
— Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
— Mozilla/5.0 (compatible; DotBot/1.1; www.opensiteexplorer.org/dotbot, help@moz.com)
и т.д.
Ещё вопрос. Эта настройка не учитывает статистику только для показа в админке или на сайте количество посещений будет тоже без ботов учитываться?
(ERROR @ /.../core/cache/includes/elements/modplugin/18.include.cache.php: 9) PHP warning: preg_match(): Unknown modifier '2'
[2018-10-05 21:37:02]
Вот такие записи каждые 1-4 минуты, начиная с даты установки плагина.
Есть вопрос. Возможно ли отфильтровать данные по диапозонам ip адресов?
Например есть массив с диапозоннами [«31.173.80.0/21»,«85.26.232.0/22»].
Как получить статистику например увидеть на каких страницах были клиенты?
Открываете список пользователей и кликаете на кнопку «Статистика по ресурсам».
Потому что свой ip я не нахожу хотя сижу онлайн на сайте. Возможно из-за того что сайт работает через cloudflare неправильно определяются ip.
Создайте плагин OnHandleRequest с вышеописанным кодом, а найденный ip засуньте в $_SERVER['REMOTE_ADDR']. Делов то.