Хорошо работающий сниппет, написанный мною для учета количества просмотров. Не дублирует. Работает на куках. Прост в использовании и редактировании.

 

  1. Создаем TV поле views, указывем шаблоны.
  2. Создаем сниппет countViews
    <?php
    
    if (!isset($_COOKIE['viewpage'])) {
        $tv_name = "views"; //название tv
        $r = $modx->resource;
    
        $val = $r->getTVValue($tv_name);
        $val = $val + 1;
        $r->setTVValue($tv_name, $val);
        $r->save();
    
        // отправка COOKIE
        setcookie('viewpage', '1', time() + (86400 * 365), $_SERVER['REQUEST_URI']);
    }
  3. Вызываем сниппет на странице ресурса
← Как скрыть виджеты в админке от контент-менеджеровmsFieldsManager. Быстрое изменение нескольких цен →