MODX - Звёздный рейтинг для статей сайта. Modx hitspage
Количество просмотра страниц для MODX Revolution / Готовые дополнения для MODX / MODX.im
Интеграция
Для того, чтобы подсчитать количество посещений на вашем ресурсе, вам достаточно на место вывода количества просмотров в шаблоне вашего ресурса установить снипет [[!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- Вы можете установить его с помощью пакета управления в MODX Revo версий 2.1.x или новее.Более ранние версии не поддерживаются.
- Вы также можете скачать пакет здесь: http://modx.com/extras/package/hitspage
- Назначьте HitsPage TV шаблонам, используемых страниц, на которых вы хотите отслеживать просмотры.
- Добавить заполнитель для вывода, например: [[!+hitss]]
- &parents=`[[*id]]` » Выведет дочерние ресурсы текущего документа.
- &limit=`3`» ограничение количества, в данном случае 3 документа будет отображаться.
- &tpl=`myTpl` » чанк с плейсхолдерами
- &sortbyTV=`HitsPage` »Вот где начинается волшебство. Мы используем HitsPage ТВ для сортировки результатов. По умолчанию, «sortdirTV» свойство имеет значение «DESC», что означает страницы с самыми большими просмотрами появятся первыми в списке. Превосходно!
- &tvFilters=`HitsPage<<200`»Здесь у меня фильтрация результатов только те документы, которые имеют значение HitsPage менее 200. Я сделал это так, что если страница становится слишком популярной, она пропадает в списке, позволяя другим, менее популярным страницам получить в центре внимания. Вы можете настроить это как хотите. & tvFilters = `HitsPage >> 200` например, будет установлен «минимальный уровень популярности» из 200 хитов.
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`]]
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.Режим статистики страницы Сниппет в этом режиме показывает количество посещений или просмотров конкретного ресурса. Указываем в шаблоне или чанке
Еще важный параметр — 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 — Включает подсчет пользователей пользователей на сайте. По-умолчанию отключен.
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. Он указывает период, за который нужно показать статистику. Принимает следующие значения:
- '' (пустое значение) — Показывает полную статистику без ограничений по периодам.
- «byday» — Показывает данные за день. Как в Яндекс.Метрике.
- «bymonth» — Показывает данные за месяц.
- «byyear» — Показывает данные за год.
Работает в паре с параметром 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:
- &id - id ресурса, для которого необходимо вывести рейтинг (по умолчанию текущий).
- &tpl - чанк, содержащий HTML разметку звёздного рейтинга (по умолчанию tplSimpleRating).
Пример вызова сниппета 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