Счетчик просмотра топиков — бесплатный плагин для Alto CMS 1.1

Многие админы хотят считать и отображать у себя на сайте, сколько раз просмотрен тот или иной топик. А у меня давно лежала заготовка, реализующая такой функционал. И вот, наконец, оформил я ее в виде нормального плагина и выложил в открытый доступ.

Сразу подчеркну — я сделал плагин для Альто 1.1. Поэтому если кто-то хочет использовать его под более ранние версии — придется немного адаптировать. Сам за это не возьмусь, но код открыт, лицензия свободна — можете пилить, это не сложно.


А теперь о самом плагине
Принцип действия
Счетчик срабатывает именно во время просмотра топика. Т.е. не тогда, когда данные топика достаются из базы, а когда он уже выводится на экран. Причем, счетчик при выводе показывает, сколько было просмотров ДО текущего показа.

С помощью конфига плагина можно задавать параметры игнорирования, т.е. когда счетчик НЕ должен увеличиваться:
  • при просмотре админами
  • при просмотре автором
  • когда User-Agent содержит определенную подстроку (используется, главным образом, для отсечения поисковых ботов, но можете настроить и для каких-то иных случаев)
Плюс можно задавать контроль сессии (по умолчанию включено) — просмотр топика фиксируется у посетителя в браузерной сессии, и за одну сессию счетчик срабатывает только один раз. Не думаю, что это 100%-ная гарантия от накруток, но от тупого многократного F5 поможет.

Нюансы реализации
Сторонним разработчикам могут быть интересны следующие особенности:

1) Значения счетчиков пишутся в отдельную таблицу. Поэтому в момент обновления счетчика не происходит блокировки таблиц с содержимым самого топика, что может быть важно на нагруженных проектах.

2) Таблица универсальна, а значит, может использоваться для подсчета любых действий над объектами, напр., сколько раз редактировался топик, число просмотров профайла, число поощрений/взысканий пользователя и т.д., и т.п., и проч., и проч.

3) Набор методов модуля PluginCounters_ModuleCounter позволяет считать не только вперед, но и назад, причем, шаг приращения может быть любой.

Короче, в умелых руках этот плагин может стать хорошим инструментом для реализации множества программерских фантазий.

Плагин пока выложен на гитхабе: https://github.com/altocms/alto-plugin-counters
После финального релиза версии 1.1 переедет в каталог.

UPD Плагин добавлен в каталог

Похожие статьи


15 комментариев

+2
Большое спасибо, полезная вещь.
0
Если кому-то нужно для текущих версий можно использовать лс-овский плагин github.com/wasja1982/livestreet_viewcount

Для себя решил что пока не нужно.
Отредактирован:
0
Данные о просмотрах хранятся в topic_count_read?
0
Нет
Значения счетчиков пишутся в отдельную таблицу
0
Сорри, проглядел )
+3
Во то, что искал, большое спасибо
0
Спасибо!
P.S. Выложите в каталог )
0
Собственно, в каталог давно выложил, только сюда об этом не написал. Исправился
0
Где почитать, Как его устанавливать?
0
сам разобрался, админка/сайт/плагины сверху + нажимаешь, выбираешь скачанный плагин, грузишь, активируешь. Элементарно Ватсон)))
Отредактирован:
0
При переключении со скина Experience или Experience Simple на Start Kit, перестаёт считать просмотры. С чем это может быть связано?
0
При переключении со скина Experience или Experience Simple на Start Kit, перестаёт считать просмотры. С чем это может быть связано?

Разобрался в чём дело. Если у кого не работает счётчик в Start Kit, то в файле topic.type_default-show.tpl (\skin\kamoraskin\tpls\topics\) меняем:
{hook run='topic_show_end' topic=$oTopic}
на
{hook run='topic_show_end' topic=$oTopic bTopicList=false}
0
А где вывод результатов? В админке ничего нет. Шаблон Experience Simple
0
в ленте топика каждый топик представлен блоком... вот в полях этого блока...
0
У меня по метрике, 300 просмотров. По счетчику модуля -1 просмотр.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.