Просмотры Обьявлений

увеличение просмотров

 
Посетитель
small user social cms
Кубок зрительских симпатий
Сообщений: 92
Привет всему сообществу!
В разделах Доски, можно сделать вывод объявлений по просмотрам, оказывается заинтересованному лицу объявления не стоит большого труда "накрутить" количество просмотров..
Скрытый текст виден только зарегистрированным пользователям
.

Возможно тема не новая, но я не смог отыскать похожую..
если уже есть готовое решение прошу просто направить..
Спасибо!
Редактировалось: 1 раз (Последний: 14 апреля 2013 в 10:23)
Век живи - век учись!
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 381
мне такое не попадалось.
Первое что думается это поставить условие на счетчик по сессии пользователя.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2603
много заинтересованных?
Посетитель
no avatar
Сообщений: 28
Если в кратце то в модель вынесите такую функцию и вызывайте в контроллере - если счетчик был увеличен то она вернет 1, если нет то 0. blockTime - время блокировки от накрутки в секундах:
Код PHP:
  1.  
  2. public function incViewUnit($id, $blockTime = 10)
  3. {
  4. $time = time();
  5. $checkview = $_SESSION['advt']['views'];
  6. if ($checkview){ // если данные о сессии есть
  7.  
  8. $newcheck = array();
  9. $result = 0;
  10. foreach ($checkview as $key => $value){
  11.  
  12. if ($value > $time){ $newcheck[$key] = $value; }
  13. if ($key == $id and $value > time() ){$result = 1;}
  14.  
  15. }
  16. if (!$newcheck[$id]){
  17. $newcheck[$id] = $time + $blockTime;
  18. $this->where = '`id` = '.$id;
  19. $this->increment(НАЗВАНИЕ ТАБЛИЦЫ, НАЗВАНИЕ ПОЛЯ);
  20.  
  21. $result = 0;
  22. }
  23. $_SESSION['advt']['views'] = $newcheck;
  24.  
  25. } else { // если данных о сессии еще не было
  26. $_SESSION['advt']['views'][$id] = $time + $blockTime;
  27. $this->where = '`id` = '.$id;
  28. $this->increment(НАЗВАНИЕ ТАБЛИЦЫ, НАЗВАНИЕ ПОЛЯ);
  29. $result = 0;
  30. }
  31.  
  32. return $result;
  33.  
  34. }
  35.  
замените в коде на свои значения
Код PHP:
  1. $this->increment(НАЗВАНИЕ ТАБЛИЦЫ, НАЗВАНИЕ ПОЛЯ);
Редактировалось: 1 раз (Последний: 14 апреля 2013 в 15:52)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.