Сразу подчеркну — я сделал плагин для Альто 1.1. Поэтому если кто-то хочет использовать его под более ранние версии — придется немного адаптировать. Сам за это не возьмусь, но код открыт, лицензия свободна — можете пилить, это не сложно.
А теперь о самом плагине
Принцип действия
Счетчик срабатывает именно во время просмотра топика. Т.е. не тогда, когда данные топика достаются из базы, а когда он уже выводится на экран. Причем, счетчик при выводе показывает, сколько было просмотров ДО текущего показа.С помощью конфига плагина можно задавать параметры игнорирования, т.е. когда счетчик НЕ должен увеличиваться:
- при просмотре админами
- при просмотре автором
- когда User-Agent содержит определенную подстроку (используется, главным образом, для отсечения поисковых ботов, но можете настроить и для каких-то иных случаев)
Нюансы реализации
Сторонним разработчикам могут быть интересны следующие особенности:1) Значения счетчиков пишутся в отдельную таблицу. Поэтому в момент обновления счетчика не происходит блокировки таблиц с содержимым самого топика, что может быть важно на нагруженных проектах.
2) Таблица универсальна, а значит, может использоваться для подсчета любых действий над объектами, напр., сколько раз редактировался топик, число просмотров профайла, число поощрений/взысканий пользователя и т.д., и т.п., и проч., и проч.
3) Набор методов модуля PluginCounters_ModuleCounter позволяет считать не только вперед, но и назад, причем, шаг приращения может быть любой.
Короче, в умелых руках этот плагин может стать хорошим инструментом для реализации множества программерских фантазий.
Плагин пока выложен на гитхабе: https://github.com/altocms/alto-plugin-counters
После финального релиза версии 1.1 переедет в каталог.
UPD Плагин добавлен в каталог
15 комментариев
Для себя решил что пока не нужно.
P.S. Выложите в каталог )
Разобрался в чём дело. Если у кого не работает счётчик в Start Kit, то в файле topic.type_default-show.tpl (\skin\kamoraskin\tpls\topics\) меняем: на