MODX - Звёздный рейтинг для статей сайта. Modx hitspage


Количество просмотра страниц для MODX Revolution / Готовые дополнения для MODX / MODX.im

HitsPageЭто старое маленькое расширение, которое я перписал. Демонстрационная страница Проект на GitHub . Мы не использовали ограничения по IP на просмотр вашего ресурса, так как для такого подсчёта есть старонии сервисы. Главная задача знать количество хитов посещения вашего ресурса и таким образом анализировать, на сколько интересен ваш ресурс.
Интеграция
Для того, чтобы подсчитать количество посещений на вашем ресурсе, вам достаточно на место вывода количества просмотров в шаблоне вашего ресурса установить снипет [[!HitsPage]]
Вывод количества просмотров в ленте новостей.
При выводе ресурсов через расширения getPage или getResources, зачастую такие ресурсы у нас в кэше и мы не сможем отобразить динамические данные без обновления кэша или, если даже установить некэшированный вызов вывода количества просмотров, то, нужно, чтобы все вложенные чпнки до вызова снипета не кэшированного были тоже не кэшированные. Да и накладно выбирать значения динамическии для каждого ресурса отдельно, поэтому, для вывода количества комментариев в ленте, мы используем плагин, который собирает данные id ресурсов, затем одним запросом выбирает всё с БД и заменяет на актуальные данные. Для этого в шаблоне вывода ресурса (getPage или getResources), на место показа количество посещений вставляем такой код {%hp-[[+id]]%}ВАЖНО! Для того, чтобы активировать плагин на данном ресурсе, нужно в шаблоне вывода ленты вставит вызов снипета [[HPCount]]. Это я сделал, для того, чтобы плагин за ненадобности не парсил каждый ресурс.
Дополнительные параметры
Иногда бывает необходимость при выводе ленты новостей к примеру, сортировать вывод по посещаемости. Для такой возможности, мы записываем копию данных посещения в TV. Для этого, при вызове на странице ресурса снипета HitsPage, мы добавляем параметр записи в TV с именем HitsPage Вызов сниппета в таком случае будут иметь вид [[!HitsPage? &saveTv=`true`]]ВАЖНО! Не забудьте предварительно назначить TV c именем HitsPage к соответствующим шаблонам. где будут стоять вызов сниппета.

Более подробно расписанно на странице помощи

modx.im

HitsPage MODX Revolution. HitsPage популярные статьи

Вы когда-нибудь хотели отобразить список самых популярных страниц или сообщения в блоге на своем сайте MODx CMS?

HitsPageHitsPage является относительно неизвестным (всего 300 загрузок на момент написания статьи). Написал это дополнение MODX разработчик Валентин Расулов. Что же делает HitsPage? Он считает просмотры страниц и записывает в переменную шаблона (tv), что нам и требуется.Установка HitsPageПосле установки, HitsPage создает два tv, нонам потребуется только один. Она называется «HitsPage».HitsPage Статистика
  1. Назначьте HitsPage TV шаблонам, используемых страниц, на которых вы хотите отслеживать просмотры.
  2. Добавить заполнитель для вывода, например: [[!+hitss]]
Вы должны поставить плейсхолдер на странице, будь то в шаблон сайта или поле ресурса. Если вы не хотите, чтобы счетчик отображался на странице, просто оберните его в DIV стиль дисплей:none. Теперь, каждый раз, когда страница просматривается, значение обновляется в обоих HitsPage TV. Установка getResourcesСниппета<code>[[!<a href="https://www.modx.cc/documentation/additions/getresources/">getResources</a>? &parents=`[[*id]]` &limit=`3` &tpl=`myTpl` &sortbyTV=`HitsPage` &tvFilters=`HitsPage<<200` ]]</code>Рассмотрим:Ну вот и все. Мы имеем список самых просматриваемых страниц.

www.modx.cc

FreelGraf | HitsPage

Используется для подсчета количества посещений на странице.

Установка

Используя панель управления MODX, перейдите в Управления пакетами в строке поиска пакетов, наберите "HitsPage", загрузите и установите пакет.

Использование

Для того, чтобы подсчитать количество посещений на вашем ресурсе, вам достаточно на место вывода количества просмотров в шаблоне вашего ресурса установить снипет [ [!HitsPage]]

Вывод количества просмотров в ресурсе

Пример исходного кода интеграции в шаблоне ресурса

<div><a href="#"><i></i> Back</a><span><i></i>[ [*publishedon:strtotime:date=`%b %d %Y`]]</span><span><i></i>[ [!HitsPage]]</span></div>

Вывод количества просмотров в ленте новостей.

При выводе ресурсов через расширения getPage или getResources, зачастую такие ресурсы у нас в кэше и мы не сможем отобразить динамические данные без обновления кэша или, если даже установить некэшированный вызов вывода количества просмотров, то, нужно, чтобы все вложенные чанки до вызова снипета не кэшированного были тоже не кэшированные. Да и накладно выбирать значения динамическии для каждого ресурса отдельно, поэтому, для вывода количества комментариев в ленте, мы используем плагин, который собирает данные id ресурсов, затем одним запросом выбирает всё с БД и заменяет на актуальные данные.Для этого в шаблоне вывода ресурса (getPage или getResources), на место показа количество посещений вставляем такой код

{%hp-[ [+id]]%}

Пример чанка для getResources

<div><div>[ [+publishedon:verticalyear]]</div><div>[ [+publishedon:strtotime:date=`%d`]]</div><div>[ [+publishedon:strtotime:date=`%B`]]</div><div>{%hp-[ [+id]]%} view<i></i></div><div>[ [+createdby:userinfo=`fullname`]]</div><div></div></div>

ВАЖНО! Для того, чтобы активировать плагин на данном ресурсе, нужно в шаблоне вывода ленты вставит вызов снипета [ [HPCount]]. Это сделно, для того, чтобы плагин за ненадобности не парсил каждый ресурс.

Дополнительные параметры при вызове сниппета HitsPage.

Иногда бывает необходимость при выводе ленты новостей к примеру, сортировать вывод по посещаемости.Для такой возможности, мы записываем копию данных посещения в TV. Для этого, при вызове на странице ресурса снипета HitsPage, мы добавляем параметр записи в TV с именем HitsPageВызов сниппета в таком случае будут иметь вид

[ [!HitsPage? &saveTv=`true`]]

ВАЖНО! Не забудьте предварительно назначить TV c именем HitsPage к соответствующим шаблонам. где будут стоять вызов сниппета.

Пример вызова getResorces

[ [getResources? &parents=`93`  &limit=`3`  &tpl=`myTpl`  &heading=`h5`  &sortbyTV=`HitsPage` &tvFilters=`HitsPage<<200`  &sortbyTVType=`integer`]]

freelgraf.in.ua

HitsPage - Количество просмотра страниц для MODX Revolution

Это старое маленькое расширение, которое я перписал. Демонстрационная страница Проект на GitHub Мы не использовали ограничения по IP на просмотр вашего ресурса, так как для такого подсчёта есть старонии сервисы. Главная задача знать количество хитов посещения вашего ресурса и таким образом анализировать, на сколько интересен ваш ресурс.
Интеграция
Для того, чтобы подсчитать количество посещений на вашем ресурсе, вам достаточно на место вывода количества просмотров в шаблоне вашего ресурса установить снипет <span>[[!</span><span>HitsPage</span><span>]]</span>
Вывод количества просмотров в ленте новостей.
При выводе ресурсов через расширения getPage или getResources, зачастую такие ресурсы у нас в кэше и мы не сможем отобразить динамические данные без обновления кэша или, если даже установить некэшированный вызов вывода количества просмотров, то, нужно, чтобы все вложенные чпнки до вызова снипета не кэшированного были тоже не кэшированные. Да и накладно выбирать значения динамическии для каждого ресурса отдельно, поэтому, для вывода количества комментариев в ленте, мы используем плагин, который собирает данные id ресурсов, затем одним запросом выбирает всё с БД и заменяет на актуальные данные. Для этого в шаблоне вывода ресурса (getPage или getResources), на место показа количество посещений вставляем такой код <span>{%</span><span>hp</span><span>-[[+</span><span>id</span><span>]]%}</span>ВАЖНО! Для того, чтобы активировать плагин на данном ресурсе, нужно в шаблоне вывода ленты вставит вызов снипета <span>[[</span><span>HPCount</span><span>]]</span>. Это я сделал, для того, чтобы плагин за ненадобности не парсил каждый ресурс.
Дополнительные параметры
Иногда бывает необходимость при выводе ленты новостей к примеру, сортировать вывод по посещаемости. Для такой возможности, мы записываем копию данных посещения в TV. Для этого, при вызове на странице ресурса снипета HitsPage, мы добавляем параметр записи в TV с именем HitsPage Вызов сниппета в таком случае будут иметь вид <span>[[!</span><span>HitsPage</span><span>?</span><span> </span><span>&</span><span>saveTv</span><span>=</span><span>`true`</span><span>]]</span>ВАЖНО! Не забудьте предварительно назначить TV c именем HitsPage к соответствующим шаблонам. где будут стоять вызов сниппета.

Более подробно расписанно на странице помощи

blog.artdevue.com

siteStatistics / Утилиты / Дополнения MODX / modstore.pro

Компонент для учета посещаемости сайта. Ведет статистику просмотров и посещений страниц ресурсов. Т.е. также как Яндекс.метрике. А в админке можно посмотреть статистику по ресурсам в разрезе периодов — день, месяц, год.

Вызывается сниппетом siteStatistics и может работать в двух режимах — page и site.

[[!siteStatistics? &mode=`site`]]Режим page отвечает за статистику страницы (ресурса), а режим site, соответственно, за статистику всего сайта. По умолчанию указан режим page.

Режим статистики страницы Сниппет в этом режиме показывает количество посещений или просмотров конкретного ресурса. Указываем в шаблоне или чанке

// Показывает количество просмотров Просмотры: [[!siteStatistics? &resource=`[[*id]]`]] или так //Показывает количество посещений Просмотры: [[!siteStatistics? &resource=`[[*id]]` &show=`users`]]В принципе, в данном случае параметр resource можно не указывать, текущий ресурс подхватывается автоматически. А нужен этот параметр для просмотра статистики произвольного ресурса.

Еще важный параметр — count. Он определяет период статистики и принимает следующие значения

Работает в паре с параметром date. Если date не указан, то берутся соответственно текущие дата/месяц/год.

Следующий параметр 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?]] Он имеет несколько параметров:Системные настройкиНадеюсь, пригодится. Лично я поставлю его вместо HitsPage.

modstore.pro

siteStatistics | Зона MODX - информация о системе MODX Revolution и не только.

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

Основные возможности

Подсчёт просмотров ресурсов и посещений ведётся в плагине. А для вывода этой информации на странице сайта предназначены сниппеты siteStatistics и siteOnlineUsers.

Сниппет siteStatistics

Он позволяет вывести статистику не только ресурса, но и сайта в целом. Для этого у сниппета есть параметр mode, принимающий 2 значения - page и site.

[[!siteStatistics? &mode=`site`]]

Режим page отвечает за статистику страницы (ресурса), а режим site, соответственно, за статистику всего сайта. По умолчанию указан режим page.

Режим статистики страницы

Сниппет в этом режиме показывает количество посещений или просмотров конкретного ресурса. Указываем в шаблоне или чанке

// Показывает количество просмотров [[!siteStatistics]] или так //Показывает количество посещений [[!siteStatistics? &show=`users`]]

Если нужно вывести статистику для конкретной страницы, то используйте параметр resource, в котором нужно указать id этой страницы.

Еще важный параметр — count. Он указывает период, за который нужно показать статистику. Принимает следующие значения:

Работает в паре с параметром date, который определяет дату для сбора статистики. Если date не указан, то берутся текущие дата/месяц/год соответственно. В зависимости от параметра count формат даты различается: для «byday» — «YYYY-mm-dd», для «bymonth» — «YYYY-mm», для «byyear» — «YYYY».

// Выводит количество просмотров текущего ресурса за 10 января 2016 года [[!siteStatistics? &count=`byday` &date=`2016-01-10`]] // Выводит количество просмотров текущего ресурса за январь 2016 года [[!siteStatistics? &count=`bymonth` &date=`2016-01`]] // Выводит количество посещений текущего ресурса за 2016 год [[!siteStatistics? &show=`users` &count=`byyear` &date=`2016`]]

Если нужно вывести количество уникальных посещений ресурса, то используйте параметр show. Он принимает 2 значения — views и users. Если указать последний, то выведется количество уникальных посещений.

Для вывода статистики в произвольных местах используйте параметр toPlaceholders. В этом случае данные о просмотрах и посещениях сохраняются в плейсхолдерах [[+stat.views]] и [[+stat.users]] соответственно. Их можно вставить в нужных местах разметки в шаблоне или чанке.

[[!siteStatistics? &toPlaceholders=`1`]] <div>Просмотры: [[+stat.views]]</div> <div>Посещения: [[+stat.users]]</div>
Режим статистики сайта

В этом режиме показывается статистика всего сайта. За этот режим отвечает параметр mode. Вставляем вызов сниппета в футере

// Дневная статистика [[!siteStatistics? &mode=`site` &count=`byday`]]

и получаем вот такой блок

Что-то это напоминает :) Нужно поменять дизайн — меняем шаблон, указанный в параметре tpl.

Учет online пользователей

Для этого предназначен отдельный сниппет siteOnlineUsers, который выводит информацию о пользователях, находящихся в данный момент на сайте. Информация может выводится в коротком и развернутом виде. В первом случае это выглядит так - вставляем вызов сниппета в нужно месте

[[!siteOnlineUsers]]

На сайте увидим следующее

Чтобы вывести более подробный список пользователей, нужно указать соответствующий параметр

[[!siteOnlineUsers? &fullMode=`1`]]

Сниппет выведет список пользователей поимённо, а также общее количество гостей.

Этот сниппет будет работать, если в системных настройках включен учет посещений пользователей.

Дополнительные возможности

Собранную статистику можно использовать для других целей. Можно вывести все ресурсы, на которые заходили с Яндекса. Или посмотреть список ресурсов, которые просматривал конкретный пользователь за определённый период. Примеры можно посмотреть тут.

Системные настройки

Ключ По-умолчанию Описание
stat.count_online_users true Регистрирует пользователей, посещающих сайт. Становится доступен учет online пользователей.
stat.enable_statistics true Включает ведение статистики сайта.
stat.frontend_css {assets_url}components/sitestatistics/css/web/style.css Путь к файлу со стилями. Если оставить пустым, то загрузки не будет.
stat.online_time 15 Время (в минутах), по истечении которого будет считаться, что пользователь ушел.
stat.not_allowed_ip Ip адреса через запятую, для который не нужно учитывать статистику.
stat.not_allowed_user_agents Список юзер-агентов через запятую, для которых не нужно учитывать статистику. Например, юзер-агенты ботов - bot,spider,slurp. Чтобы отсечь пользователей с пустым юзер-агентом, нужно указать "empty".

Перенос статистики из PageHits

Для тех, у кого установлен HitsPage, предлагаю скрипт для переноса данных о просмотрах в siteStatistics. Его можно выполнить или в отдельном файле, или в сниппете. Я для этого использовал Console.

Задача не особо сложная, но есть одна тонкость. В HitsPage количество просмотров сохраняется в ресурсе в поле properties в виде одного единственного числа. А в siteStatistics учет ведется в разрезе каждого дня. Поэтому данные из HitsPage должны быть перенесены в указанный день. Можно за точку отсчета взять начало года.

Также нужно указать пользователя, потому что в siteStatistics просмотры привязаны к пользователю. Желательно указать пользователя, статистика для которого вам не важна. Например, администратора с id = 1.

Если ресурсов очень много, то можно использовать поэтапный перенос через указание limit и offset.

Теперь можно выполнить скрипт (на всяких случай сделайте backup базы, чисто для успокоения) и спокойно заменить вызов [[!HitsPage]] на [[!siteStatistics]].

Ссылки

modzone.ru

MODX - Звёздный рейтинг для статей сайта

В этой статье рассмотрим, как к статьям сайта добавить звёздный рейтинг.

Звёздный рейтинг - это система для оценки материалов сайта (например, статей) с помощью количества звёздочек (обычно от 1 до 5).

Добавление данного функционала в систему CMS MODX Revolution осуществим посредством дополнения FiveStarRating.

Дополнение FiveStarRating

FiveStarRating - это дополнение, добавляющее в систему MODX Revolution элементы, с помощью которых можно осуществить фронтенд оценку ресурсов с помощью звёздочек.

MODX Revolution – Звёздный рейтинг для статей сайта

Установка дополнения FiveStarRating

Дополнение FiveStarRating расположено в репозитории modx.com.

Его установку в систему MODX Revolution можно осуществить на странице "Управление пакетами".

MODX Revolution – Установка дополнения FiveStarRating

Использование дополнения FiveStarRating

Подключение звёздной оценочной системы к ресурсу осуществляется посредством помещения вызова сниппета SimpleRating в шаблон или контент ресурса.

[[!SimpleRating]]

Параметры сниппета SimpleRating:

Пример вызова сниппета SimpleRating с указанием id ресурса:

[[!SimpleRating? &id = `3` ]]

Пример вызова сниппета SimpleRating с указанием имени чанка:

[[!SimpleRating? &tpl = `tplSimpleRating1` ]]

Сниппет SimpleRating выполняет следующие действия:

Отправка оценки осуществляется через ajax. Обработку ajax-запроса на сервере выполняет файл action.php. Данный файл проверяет возможность оценки ресурса данным пользователем, выполняет установку рейтинга (запись необходимой информации в базу данных) и возвращает результат. После получения результата от action.php сценарий JavaScript отображает его на странице.

Защита от накрутки оценки осуществляется посредством LocalStorage и IP адреса.

При необходимости защиту по IP адресу можно отключить. Осуществляется это посредством установки системному параметру simplerating_ip значения "Нет".

MODX Revolution – Отключение защиты по IP адресу

Вывод ресурсов с самым большим рейтингом

В качестве заключения рассмотрим, как можно вывести на страницу 10 ресурсов с самым высоким рейтингом. Для выполнения этой задачи воспользуемся сниппетом pdoResources из пакета pdoTools.

[[!pdoResources? &loadModels=`simplerating` &parents=`0` &innerJoin=`{ "SimpleRating": { "class":"SimpleRating", "on": "modResource.id = SimpleRating.resource" } }` &sortby = `{"SimpleRating.rating_value":"DESC"}` &select=`{ "modResource":"id,pagetitle", "SimpleRating":"rating_value" }` &tpl=`@INLINE <p>[[+id]]. [[+pagetitle]] - [[+rating_value]]</p>` ]]

itchief.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта