Все для создания и продвижения сайтов

Верстка, программирование, SEO

Количество просмотров в MODX: HitsPage

В MODX Revo есть простой компонент HitsPage, который позволяет считать количество просмотров любой страницы, с возможностью вывода, как на самой странице, так и у её родителя.

Для начала загрузим компонент из репозитория.

Вывод просмотров на текущей странице

После установки, вам потребуется создать новое TV для компонента. Назвать его нужно «HitsPage». Это нужно для того, чтобы передавать значения просмотров родителям.

После этого в нужном месте страницы, вызываем компонент следующим образом:

Просмотров: [[!HitsPage? &saveTv=`true`]]

Теперь везде, где есть эта запись, будет считаться, и выводиться количество просмотров.

Вывод просмотров страницы у родителей

Теперь выведем наши просмотры родителям, именно для этого мы и создавали TV «HitsPage».

К примеру, вы выводите список анонсов через компонент pdoResources и отсортировать по количеству просмотров.

Нам нужно в вызове предоставить доступ к TV, к примеру:

[[!pdoResources? 
    &limit=`10` 
    &parents=`5`
    &tpl=`tpl_news`
    &includeTVs=`HitsPage` 
    sortBy=`HitsPage`
]]

Теперь нужно лишь отредактировать чанк вывода, у нас это tpl_news.

В нужном месте выводим количество просмотров дочерних ресурсов:

Просмотров: [[+tv.HitsPage]]

Но при первой публикации статьи - у нас просмотров 0, и чтобы человек не видел пустое значение, напишем следующее

Просмотров: [[+tv.HitsPage:default=`0`]]

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

Вызовы для Fenom

Обновил статью, для тех ктто любит использовать Fenom

Для подсчета и вывода просмотров

{$_modx->runSnippet('HitsPage', ['saveTv' => true])}

Получение ресурсов с сортировкой по просмотрам

{$_modx->runSnippet('pdoResources', [
    'limit' => '10',
    'parents' => '5',
    'tpl' => 'tpl_news',
    'includeTVs' => 'HitsPage',
    'sortby' => 'HitsPage'
])}

И в tpl_news выводим так:

{$_pls['tv.HitsPage']?: '0'}
Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.