MODX

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

HitsPage - Количество просмотра страниц для MODX Revolution
Это старое маленькое расширение, которое я перписал.
Демонстрационная страница
Проект на GitHub
Мы не использовали ограничения по IP на просмотр вашего ресурса, так как для такого подсчёта есть старонии сервисы. Главная задача знать количество хитов посещения вашего ресурса и таким образом анализировать, на сколько интересен ваш ресурс.
Интеграция
Для того, чтобы подсчитать количество посещений на вашем ресурсе, вам достаточно на место вывода количества просмотров в шаблоне вашего ресурса установить снипет
<span class="pun">[[!</span><span class="typ">HitsPage</span><span class="pun">]]</span>
Вывод количества просмотров в ленте новостей.
При выводе ресурсов через расширения getPage или getResources, зачастую такие ресурсы у нас в кэше и мы не сможем отобразить динамические данные без обновления кэша или, если даже установить некэшированный вызов вывода количества просмотров, то, нужно, чтобы все вложенные чпнки до вызова снипета не кэшированного были тоже не кэшированные. Да и накладно выбирать значения динамическии для каждого ресурса отдельно, поэтому, для вывода количества комментариев в ленте, мы используем плагин, который собирает данные id ресурсов, затем одним запросом выбирает всё с БД и заменяет на актуальные данные.
Для этого в шаблоне вывода ресурса (getPage или getResources), на место показа количество посещений вставляем такой код
<span class="pun">{%</span><span class="pln">hp</span><span class="pun">-[[+</span><span class="pln">id</span><span class="pun">]]%}</span>

ВАЖНО! Для того, чтобы активировать плагин на данном ресурсе, нужно в шаблоне вывода ленты вставит вызов снипета
<span class="pun">[[</span><span class="typ">HPCount</span><span class="pun">]]</span>
. Это я сделал, для того, чтобы плагин за ненадобности не парсил каждый ресурс.
Дополнительные параметры
Иногда бывает необходимость при выводе ленты новостей к примеру, сортировать вывод по посещаемости.
Для такой возможности, мы записываем копию данных посещения в TV. Для этого, при вызове на странице ресурса снипета HitsPage, мы добавляем параметр записи в TV с именем HitsPage
Вызов сниппета в таком случае будут иметь вид
<span class="pun">[[!</span><span class="typ">HitsPage</span><span class="pun">?</span><span class="pln"> </span><span class="pun">&</span><span class="pln">saveTv</span><span class="pun">=</span><span class="str">`true`</span><span class="pun">]]</span>

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

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

3 Комментария

Чащухин Илья # 2014-11-22 23:33:56
Спасибо за сниппет.
Не знаю ошибка это или нет, если делать вызов [[HPCount]], то после повторной перезагрузки страницы пропадает счетчик и на его месте выводится {%hp-[[+id]]%}.
Если же делать так [[!HPCount]], то все нормально отображается и после перезагрузки.
Брежнев Иван # 2014-11-25 18:40:54
Поведение правильное, т.к. в первом случае вы вызываете сниппет кэшированным и он отрабатывает только один раз, а во втором не кэшированным и он отрабатывает при каждом запросе страницы
Valentin Rasulov Автор # 2014-11-23 06:29:40
Здравствуйте, нет — это не ошибка.
Чтобы оставить комментарий необходимо авторизоваться