Плагин «Просмотры» (обновление 16.11.2015)
Описание
Плагин осуществляет подсчет количества просмотров топиков и позволяет сортировать топики по числу просмотров на страницах "/index", "/blog", "/personal_blog" и для каждого из блогов в отдельности. Поддерживается фильтрация по дате.
Плагин анализирует статистику просмотров 2 видов:
- Простая статистика по общему числу просмотров.
- Расширенная статистика — использует данные, собранные плагином «ViewStat». Данный режим активизируется автоматически при активном плагине «ViewStat». В данном режиме фильтрация может быть как по времени создания топиков, так и только по просматриваемым за выбранное время.
Совместим с шаблонами:
— Synio;
— Mobile;
— VK Flat Style.
Не совместим с плагином «ViewCount».
Для повышение производительности, по совету PSNet , хранение статистики осуществляется в отдельной таблице.
GitHub: github.com/wasja1982/livestreet_views
Внешний вид
Число просмотров топика
Сортировка по числу просмотров
Настройка
Настройка плагина осуществляется редактированием файла "/plugins/views/config/config.php".
Поддерживаемые директивы:
1) $config['only_users'] — Считать просмотры только от авторизованных пользователей. По умолчанию отключено (false).
2) $config['only_once'] — Считать только первый просмотр топика пользователем (в пределах сессии). По умолчанию включено (true).
3) $config['use_sort'] — Использовать сортировку топиков по числу просмотров. По умолчанию включено (true).
4) $config['stat_date_filter'] — Отображаются только топики, которые просматривались в выбранный период, независимо от времени их создания. Использует данные плагина Viewstat (должен быть установлен). По умолчанию отключено (false).
5) $config['show_info'] — Показывать число просмотров в панели информации топика. По умолчанию включено (true).
Установка
1. Скопировать плагин в каталог /plugins/
2. Через панель управления плагинами (/admin/plugins/) запустить его активацию.
Изменения
1.0.2 (16.11.2015)
Добавлено игнорирование просмотра топиков поисковыми роботами.
Добавлена поддержка шаблона «VK Flat Style».
1.0.1 (29.05.2014)
Добавлен индекс для поля `topic_count_read` в таблице БД.
Добавлено фиксированное сообщение об ошибке.
Добавлен отдельный файл иконки.
Добавлены параметры конфигурации:
— $config['only_users'] — Считать просмотры только от авторизованных пользователей.
— $config['only_once'] — Считать только первый просмотр топика пользователем (в пределах сессии).
110 комментариев
Если не секрет, можно на пальцах пояснить, будет ли прирост производительности, если данные о посещениях все равно надо вынимать. И та доп таблица будет джоиниться в каждом запросе. Разве что она не будет участвовать в выборке ключей топиков по фильтру (если не участвует в сортировке)?
Если коротко: суть не в получении данных, а в том что таблица топиков постоянно апдейтилась обновлением счетчика, сбрасывался кеш каждого просматриваемого топика и списка топиков в целом — и это абсолютно постоянно!.. Вызывались по хукам привязанные события плагинов на обновления топика. Все это входило в большой и очень тяжелый цикл и сайт очень нагружался.
Беспокоило то, что при большой интенсивности запросов update, вероятно, блокируется таблица со всеми топиками, что тормозит селекты.
Отдельная таблица не спасает, если она джоинится. Так что вариант таки дублировать это поле в двух таблицах и обновлять значения в таблице с топиками по крону, как предложил Wasja . Даже сделать ее типом MEMORY и транкейтить раз в час, например, после обновления данных в основной.
почему не хотите «скрестить» viewstat и views?
Совместимость с ViewStat из бета-версии сохранена полностью. Более того, счетчик в моем плагине автоматически отслеживает активность ViewStat для предотвращения двойного увеличения числа просмотров.
Насчет внедрения непосредственно плагина ViewStat — он платный, его автор исходники свободно не распространял, так что это юридически неприемлемо.
Plugin file /home/site/public_html/plugins/livestreet_views-master/PluginLivestreet_views-master.class.php not found
??????????????????
В принципе могу отдельным файлом сделать, чтобы было удобнее.
В вашем шаблоне, наверное, стили другие.
— $config['only_users'] — Считать просмотры только от авторизованных пользователей.
— $config['only_once'] — Считать только первый просмотр топика пользователем (в пределах сессии).
Viewcount — Показывает кол-во просмотров топика.
Просмотры — Сортировка топиков по числу просмотров.
их нужно отключить?
можно поподробней что добавилось после Viewcount 1.0.0
В общем можно расценивать как полную замену Viewcount.
Но если отключить плагин «Просмотры», а потом включить, то данные из таблицы «prefix_topic» повторно перенесены не будут.
Имеете в виду, что перекрыт стандартный класс иконки для мобильного шаблона?
А период «За все время» выбирали?
Точно не помню вроде просто нажал на просматриваемые и не чего не показывало.
При обнаружении мобильного шаблона счетчик не вставляется, на тестовом сайте все работает без проблем
По умолчанию отображаются топики за последний день, если их нет — то за 7 дней. Это стандартный алгоритм, используемый также в «Обсуждаемые» и «ТОР».
А если серьезно, проще удалить лишний код второй иконки, чем этот скрипт вписывать)
Synio все-таки дефолтовый, не все с ним работают.
Интересует более плотное внедрение в Synio Flow (чтобы на главной), Jupiter.
Или это к разработчикам шаблонов обращаться надо?
Вот код кнопки в форуме LS Board
Вчем может быть причина?
Какие именно боты не отлавливаются? Как обнаружили?
У Вас установлена последняя версия с GitHub?
Можете найти в логах обращения к серверу конкретные строчки, относящиеся к данному боту?
На мои сайты ходит стандартный бот, который нормально отслеживается:
Я проверил — приходит стандартный бот, который нормально отлавливается.
Может считать так и так, чтобы выводить как количество уникальных просмотров, так и всего?
1) изменить стандартный стиль «topic-info-comments» в CSS файлах шаблона;
2) исправить в файле "/plugins/views/templates/skin/default/inject_show_info.tpl" объявление счетчика в строке
Тут либо задать свой класс, либо жестко прописать цвет в стилях.
Таблица prefix_topic_view создалась, но данные с viewstat не перенеслись.
Насчет самой ошибки — сейчас проверю.
правда там одна строка всего, не могу понять откуда эти поля
по всей видимости таблица была поэтому новая (с 2 полями) не создалась.
Но вот откуда эта таблица у Вас и какой плагин ее создал — я не знаю. Возможно имеет смысл задать в конфигурации плагина Views другое имя для таблицы, чтобы не было конфликтов.
В любом случае, если число просмотров увеличивается, значит плагин работает нормально.
Возможно много переходов из поисковиков — например, страничка удачно проиндексировалась. Счетчики типа Яндекс.Метрики или Google Analytics что по этому топику показывают?
Php ругается на класс движка и на плагин админпанели от Авадима )))
Попробуйте деактивировать админку Вадима, может ошибка уйдет — и кеш почистить не забудьте (файловый и кеш шаблона).
на строку
в следующих местах:
1) github.com/wasja1982/livestreet_views/blob/master/classes/actions/ActionBlog.class.php#L45
2) github.com/wasja1982/livestreet_views/blob/master/classes/actions/ActionBlog.class.php#L107
3) github.com/wasja1982/livestreet_views/blob/master/classes/actions/ActionIndex.class.php#L29
4) github.com/wasja1982/livestreet_views/blob/master/classes/actions/ActionPersonalBlog.class.php#L35
Кроме того вопрос, как настроен плагин — учитывает ли он повторные просмотры (значение параметра $config['only_once'] равно true или false)?
А вообще особо идей нет — если бы не столь значительная разбежка, можно было бы рассмотреть вариант разного рода банерорезалок, которые блокируют JS-скрипты метрики и аналитики, но разница на порядок…
Могут ли причиной этому сбою быть поисковые роботы или другие link-crawler'ы? И есть ли способ эту проблему решить и избежать дальнейших расхождений?
В последней версии (можно скачать с GitHub) поисковые боты блокируются.
Но, вообще поисковые роботы за полгода столько просмотров не накрутят.
А можно пожалуйста ссылку на GitHub?