[siteStatistics] Статистика сайта
Компонент для учета просмотра и посещений страниц ресурсов. Альтернатива известного дополнения HitsPage, но с дополнительными возможностями. Учитываются не только просмотры, но и уникальные посещения. А в админке можно посмотреть статистику как по ресурсам в разрезе периодов — день, месяц, год, так и сайта в целом.

Вызывается сниппетом siteStatistics и может работать в двух режимах — page и site.
Режим статистики страницы
Сниппет в этом режиме показывает количество посещений или просмотров конкретного ресурса. Указываем в шаблоне или чанке
Например, в шаблоне новостей указываем

Еще важный параметр — count. Он определяет период статистики и принимает следующие значения
Следующий параметр date. Он указывает, на какую дату выводить статистику. Если не указана, то берется текущая. Формат с учетом параметра count: для «byday» — «YYYY-mm-dd», для «bymonth» — «YYYY-mm», для «byyear» — «YYYY».
Параметр show принимает 2 значения — views и users. Если указан views, то выводится количество просмотров (указан по умолчанию). Если users — то количество посещений.
Параметр toPlaceholders используется для сохранения данных о просмотрах и посещениях в плейсхолдеры [[+stat.views]] и [[+stat.users]] соответственно.
Режим статистики сайта
В этом режиме показывается статистика всего сайта. Ставим вызов сниппета в футере

Что-то это напоминает :) Нужно поменять дизайн — меняем шаблон, указанный в параметре tpl.
Административная часть
Как видно по картинке — возможностей для фильтра вполне хватает. Чекбокс «Общая статистика» включает/отключает режим просмотра статистики всего сайта. Текущую запись можно удалить. Так можно очистить статистику у конкретного объекта в конкретный день или у всего сайта вообще или только в указанный период. В общем, ничего сложного.
Но это еще не всё. Если вы закажете этот продукт прямо сейчас, то получите совершенно бесплатно сниппет учета online пользователей. :)

Он имеет несколько параметров:

Полная документация.
Версия 2.0.0. Статистика по пользователям.

Вызывается сниппетом siteStatistics и может работать в двух режимах — page и site.
[[!siteStatistics? &mode=`site`]]Режим page отвечает за статистику страницы (ресурса), а режим site, соответственно, за статистику всего сайта. По умолчанию указан режим page.Режим статистики страницы
Сниппет в этом режиме показывает количество посещений или просмотров конкретного ресурса. Указываем в шаблоне или чанке
// Показывает количество просмотров
[[!siteStatistics? &resource=`[[*id]]`]]
или так
//Показывает количество посещений
[[!siteStatistics? &resource=`[[*id]]` &show=`users`]]В принципе, в данном случае параметр resource можно не указывать, текущий ресурс подхватывается автоматически. А нужен этот параметр для просмотра статистики произвольного ресурса.Например, в шаблоне новостей указываем
[[!siteStatistics? &resource=`[[+id]]`&count=``]]и получаем такой блок
Еще важный параметр — count. Он определяет период статистики и принимает следующие значения
- '' (пустое значение) — Показывает полную статистику без ограничений по периодам. Пример на предыдущей картинке.
- «byday» — Показывает данные за день. Как в Яндекс.Метрике
- «bymonth» — Показывает данные за месяц.
- «byyear» — Показывает данные за год.
Следующий параметр date. Он указывает, на какую дату выводить статистику. Если не указана, то берется текущая. Формат с учетом параметра count: для «byday» — «YYYY-mm-dd», для «bymonth» — «YYYY-mm», для «byyear» — «YYYY».
Параметр show принимает 2 значения — views и users. Если указан views, то выводится количество просмотров (указан по умолчанию). Если users — то количество посещений.
Параметр toPlaceholders используется для сохранения данных о просмотрах и посещениях в плейсхолдеры [[+stat.views]] и [[+stat.users]] соответственно.
[[!siteStatistics? &toPlaceholders=`1`]]
<div>Просмотры: [[+stat.views]]</div>
<div>Посещения: [[+stat.users]]</div>Режим статистики сайта
В этом режиме показывается статистика всего сайта. Ставим вызов сниппета в футере
// Дневная статистика
[[!siteStatistics? &mode=`site` &count=`byday`]]и получаем что-то типа такого
Что-то это напоминает :) Нужно поменять дизайн — меняем шаблон, указанный в параметре tpl.
Административная часть
Как видно по картинке — возможностей для фильтра вполне хватает. Чекбокс «Общая статистика» включает/отключает режим просмотра статистики всего сайта. Текущую запись можно удалить. Так можно очистить статистику у конкретного объекта в конкретный день или у всего сайта вообще или только в указанный период. В общем, ничего сложного.
Но это еще не всё. Если вы закажете этот продукт прямо сейчас, то получите совершенно бесплатно сниппет учета online пользователей. :)
[[!siteOnlineUsers?]]
Он имеет несколько параметров:
- ctx — контекст, в котором считать пользователей. По-умолчанию считает во всех.
- toPlaceholder — тут указываем имя плейсхолдера, в который будет сохранятся вывод.
- tpl — шаблон для вывода.
- stat.online_time — Время (в минутах), по истечении которого будет считаться, что пользователь ушел. По-умолчанию 15 минут.
- stat.enable_statistics — Включает ведение статистики сайта.
- stat.count_online_users — Включает подсчет пользователей пользователей на сайте. По-умолчанию отключен.

Полная документация.
Версия 2.0.0. Статистика по пользователям.
Комментарии: 64
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1. А сколько он будет стоить?
2. «Если вы закажете этот продукт прямо сейчас, то получите совершенно бесплатно сниппет учета online пользователей. :)» — а потом этот сниппет будет тоже платным отдельно или вообще не будет нигде?
Это просто шутка :)
Как предложение для развития — способность компонента отправлять на указанные емейлы периодические отчеты. Это довольно удобно, — не нужно никуда заходить, чтобы посмотреть статистику.
Единственное, чтобы это не тормозило заметно компиляцию и загрузку страниц.
А выводить количество текущих пользователей на сайте?
А вести аналитику по ресурсам?
Может я отстал и все это уже есть?
Я не заставляю никого его устанавливать. Пользуйтесь Я.Метрикой и Google Analytics, кто ж мешает.
Поэтому компонент очень нужный! Главное что бы был безопасным во всех отношениях
Может теперь и Инет запретить, нахер он нужен в Russian Federation, это ведь тоже инструмент шпиона в умелых руках.
Только вот платность любых мало-мальски полезных компонентов напрягает, наверное поэтому modx.com не делает платных репов, не хватает в последнее время альтруизма в разработчиках)
Ну не знаю, меня не напрягает. За хорошую вещь совсем не жалко заплатить — отблагодарить автора. Это еще и стимулирует автора поддерживать и развивать продукт. Вот например, в modx.com сколько уже мертвяков висит. Тот же HitsPage или modxTalks давно уже не поддерживаются. Тем более, что есть бесплатная альтернатива (более 600 дополнений на modx.com), а стоимость символическая — это тебе не 79 евро у modmore.com. У modstore.pro дороже 2 тыс. дополнений нет. Тем более, что дополнения покупаются как правило не для себя, а для заказчика и за деньги, за немалые причем :)
Бесплатные дополнения, в основном, синоним «нате вам, сами разбирайтесь». Такого полно в modx.com, да.
modx.pro/store/3336-store-store-simpledream-en-turned-one-year/
А авторов можно и вручную посчитать: 1, 2, 3, 4,...., 22.
Сколько раз он заходил на сайт за месяц например или за все время. Причем он может не авторизовываться постоянно а хранится данные в сессии.
Сейчас это пытаюсь подсчитывать через аналитику, когорты и тп.
Нужно как бы подсчитать и вычислить ядро пользователей сайта.
Версия 1.0.0-pl, а не бета.
П.С. А когда Леонид вернется?
Через недельку :)
И как избавится от подключаемых стилей?
Чтобы быстрее найти сам параметр, который нужно заменить, в фильтрах поменяйте «core» на «sitestatistics» и появившихся параметрах, напротив параметра «stat.frontend_css» удалите путь (в колонке — Значение), оставьте его пустым или пропишите путь к своему файлу. Если оставить пустым, то в head не будет вписываться строка со стилем.
Но это не работает, помогите пожалуйста
Пока на виду только FileDownloadR, но похоже что он устарел и глючит (судя по отзывам и коментам).
Спасибо!
Сама по себе просто статистика посещений мало что дает, а вот метки и рефереры очень бы пригодились.
— статистику посещений и просмотров ресурсов, которую можно использовать для сортировки ресурсов по популярности;
— статистику посещений пользователей.
Ещё он показывает пользователей, которые в текущий момент находятся на сайте. Вот ссылка на полную документацию с описанием всех возможностей компонента.
UTM-метки — это get параметры. Работать с ними можно как на уровне PHP, так и на уровне Fenom. siteStatistics не ведёт отдельный учёт по этим меткам. Для этого есть гугл и яндекс.
Я ни как не могу добиться вывода ресурсов с этой конструкцией.
Без вот этой строчки ресурсы выводятся:
Понятно что -дело в [[+sitestatistics.userKey]]. Ни понятно откуда она берется?
Результат тот же
Лог дает вот такой результат
Значение `Statistics`.`user_key` = '' — пустое.
Если этот же запрос выполнить напрямую в MySQL но в значение подставить какой нибудь user_key из таблицы — то ресурсы выводятся
Второй вариант, переделанный на феном, невалидный.
Судя по всему у Вас нет опыта работы с феномом. У него есть одна неприятная особенность — он обрабатывает все фигурные скобки, включая те, которые ему не предназначены.
Т.е. у Вас в обоих случаях проблема в where. В первом случае — фигурная скобка, во втором — невалидный код. Вас не смущает имя переменной $sitestatistics.userKey? В PHP так нельзя называть переменные. Это плейсхолдер. Кроме того, фигурные скобки внутри тега Fenom указывать уже не нужно. Дальше справитесь?
Я прочитал как «а НА феном»))
Да, с фигурными скобками я погорячился) Это привычка менять [[ на { при переделывании на феном.
Но я все равно не могу понять откуда берется значение в плейсхолдере [[+sitestatistics.userKey]]
И на сколько я понимаю в версии с феномом нужно сначала задать переменную и потом ее вызвать в сниппите.
такой вариант не срабатывает:
Сам плейсхолдер добавляется в классе siteStatistics при загрузке страницы.
в логе вот это
Убрал лишние одинарные ковычки
Спасибо за подсказку
[[!siteStatistics? &resource=`[[*id]]`]]
Постоянно получаю ошибку в журнале:
[2023-10-03 18:14:06] (ERROR @ .../core/components/sitestatistics/services/sitestatistics.class.php: 243) [siteStatistics] Could not add page statistics.
[2023-10-03 18:20:33] (ERROR @ .../core/xpdo/om/xpdoobject.class.php: 1452) Error 23000 executing statement:
INSERT INTO `modx_stat_page_statistics` (`rid`, `user_key`, `date`, `month`, `year`, `views`) VALUES (95, 'd282b0b707f6a6e0c2af58018eef14fa', '2023-10-03 00:00:00', '2023-10', '2023', 1)
Array
(
[0] => 23000
[1] => 1062
[2] => Duplicate entry '2023' for key 'year'
)
Как исправить?