Хук для +++ просмора записи

InstantCMS 2.X

есть пример?

#1 26 декабря 2019 в 23:24
Добрый вечер.
Подскажите как забацать хук… Хук для +++ просмора записи через каждый час + 100 просмотров.
Я уже устал искать решение… Есть готовый вариант? Поможите!
Спасибо.
#2 27 декабря 2019 в 09:45
Что означает +++?
Есть хук content_before_item там можете проверить
  1. if (!empty($ctype['options']['hits_on']) && empty($item['disable_increment_hits']) && $this->cms_user->id != $item['user_id']){
  2. // тут считать количество $item['hits_count'], если ровно 99 (и через else if()), тогда делать какие то действий
  3. }
Почему 99? хук вызывается до увеличение счетчика, поэтому 1 просмотр пропускам
#3 28 декабря 2019 в 03:17

хук content_before_item

Evanescence
Спасибо за подсказку.

Что означает +++

Evanescence
это я так неправильно(по своему) выразился.
Тут задачка простая… создать видимость посещений/просмотров.
Теперь буду думать про рандомайз.
#4 29 января 2020 в 19:37
Наиболее простой способ (+ 5 при каждом просмотре)
\system\controllers\content\model.php
  1.  
  2. public function incrementHitsCounter($ctype_name, $id)
  3. {
  4. cmsCache::getInstance()->clean('content.item.' . $ctype_name);
  5.  
  6. //return $this->filterEqual('id', $id)->increment($this->table_prefix . $ctype_name, 'hits_count');
  7. // теперь при просмотре + 5 просмотров
  8. return $this->filterEqual('id', $id)->increment($this->table_prefix . $ctype_name, 'hits_count', 5);
  9. }
  10.  
или так… (через рандом)
  1.  
  2. public function incrementHitsCounter($ctype_name, $id)
  3. {
  4. cmsCache::getInstance()->clean('content.item.' . $ctype_name);
  5. $random_number = intval( "0" . rand(1,7) );
  6. return $this->filterEqual('id', $id)->increment($this->table_prefix . $ctype_name, 'hits_count', $random_number);
  7. }
  8.  
или так… (через запрос в базу данных )

1- Установить кол. просмотров на значение 200 (на всякий пожарный! т.к. есть записи с нулевым значением)
  1.  
  2. UPDATE `cms_con_albums` SET `hits_count` = '200'
  3.  
2 — Теперь 200 * 3 = 600
  1.  
  2. UPDATE `cms_con_albums` SET `hits_count` = `hits_count` *3;
  3.  
3 — Тут уже 600 + разброс на 200
  1.  
  2. UPDATE `cms_con_albums` SET `hits_count` = FLOOR(600 + RAND()*200)
  3.  
Таким образом… 702, 651, 718, 780, 794…
#5 29 января 2020 в 19:47


Наиболее простой способ (+ 5 при каждом просмотре)

Дмитрий Баринов

Слегка палевно))
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.