Счётчик просмотров

Добавляем счётчик просмотров для модели, чтобы в дальнейшем считать количество просмотров записей на сайте работающем на системе Winter CMS.

просмотры

У нас есть запись и мы хотим считать количество её просмотров на сайте. Значит нам нужно сделать для неё счётчик просмотров. Делается это довольно просто.

Сначала для модели нужно добавить поле которое будет этим самым количеством просмотров. Назовём его count_views. Чтобы это поле было в таблице базы данных, в файле миграции прописываем:

plugins\author\plugName\updates\create_items_table.php
$table->integer('count_views')->index()->default(0);

 

Теперь в файле модели внутри класса добавляем метод increaseViewCount, который при вызове будет добавлять +1 просмотр нашему счётчику:

plugins\author\plugName\models\Item.php
public function increaseViewCount() {
    $this->timestamps = false;
    $this->increment('count_views');
    $this->timestamps = true;
}

Наш счётчик полностью готов к применению.

 

Добавляем просмотр

Добавлять +1 просмотр к счётчику нам нужно тогда, когда выводится страница. Как правило это делается в компоненте выводящем экземпляр модели внутри функции onRun.

Вот такой код:

plugins\author\plugName\components\Item.php
$item = Item::whereSlug($this->property('slug'))->first();

if (empty($item)) {
    return $this->controller->run('404');
}

$item->increaseViewCount();
  • В первой строке кода мы делаем запрос записи из базы данных.
  • Дальше идёт блок проверки на то есть ли запрашиваемая запись. В случае если её нет (был указан несуществующий slug), контроллеру возвращается 404 ответ и дальнейшее выполнение кода прерывается.
  • В случае успешной проверки наличия записи, добавляем +1 просмотр, вызвав у модели метод increaseViewCount.

 

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

Ну и на последок выводим в админке в списке записей наш столбец с количеством просмотров:

plugins\author\plugName\models\item\columns.yaml
count_views:
    label: Просмотров
    sortable: true
    clickable: false
    cssClass: text-center
Записи по теме
Вложенные изображения и их вывод
Вложенные изображения и их вывод Как в Winter CMS к моделям прикрепляются изображения через связи и как затем вывести эти изображения в нужном нам месте с заданными размерами.
Замена иконок в меню админки
Замена иконок в меню админки Инструкция как в главном меню админ-панели сайта заменить стандартные svg-иконки и иконки у пунктов меню сторонних плагинов установленных на сайте.
Как включить обновления в WinterCMS
обновление Где в Winter CMS находится настройка позволяющая разрешить обновления ядра сайта и установленных на нём плагинов и как правильно её включить.
Как восстановить пароль админа
Как восстановить пароль админа Инструкция с решением того как восстановить пароль админа к административной части сайта на Winter CMS (если забыли пароль или был утрачен доступ).
Как сменить URL адрес админки в Winter CMS
Как сменить URL адрес админки в Winter CMS Небольшая инструкция о том, как просто в Winter CMS изменить url-адрес бекенд части сайта со стандартного backend на любой другой который вам нравится.
Комментарии 0

*** чтобы писать комментарии.