Рейтинг клубам

#16 12 февраля 2013 в 18:18
Вот держите
  1.  
  2. public function setClubRating($club_id){
  3.  
  4. $rating = 0;
  5. //рейтинг блога клуба
  6. $sql = "SELECT SUM(rating) as rating
  7. FROM `cms_blogs`
  8. WHERE owner = 'club' AND user_id = '{$club_id}'";
  9. $rs = $this->inDB->query($sql);
  10. if ($this->inDB->num_rows($rs)){
  11. $data = $this->inDB->fetch_assoc($rs);
  12. $rating = $data['rating'] * 5;
  13. }
  14. //рейтинг всех фотографий клуба
  15. $sql = "SELECT SUM(rating) as rating
  16. FROM `cms_photo_files`
  17. WHERE owner = 'club{$club_id}'";
  18. $rs = $this->inDB->query($sql);
  19. if ($this->inDB->num_rows($rs)){
  20. $data = $this->inDB->fetch_assoc($rs);
  21. $rating += $data['rating'] * 5;//суммируем
  22. }
  23.  
  24. return $this->inDB->query("UPDATE cms_clubs SET rating = $rating WHERE id = '$club_id'");
  25.  
  26. }
  27.  
Заменяем в модели клуба одноименный метод. Рейтинг вычисляется как (рейтинг блогов клуба + рейтинг фотографий клуба )*5. К слову, рейтинг блога = сумме рейтингов всех записей блога. Это в системе так заложено. Вроде всё рабоает. Потестируйте.
#17 12 февраля 2013 в 18:22
Супер просто! Спаси об огромное, теперь рейтинг хоть что-то реальное отображает
#18 12 февраля 2013 в 19:17
Большущее спасибо!!!
#19 12 февраля 2013 в 19:20
Марат, это для 1.10?
а для 1.9 точно такой же метод ставим?
#20 12 февраля 2013 в 21:01
Надо попробовать а то пользователи в непонятках насчёт рейтинга
#21 11 мая 2013 в 14:35
Очень хорощая тема. Но у меня, к сожалению, не работает. Выдает Cannot redeclare cms_model_clubs::setClubRating(). Что это может быть.
Код дописывал в файле components/clubs/model.php
В cron заполнил "PHP-файл: " "Компонент:" и "Метод модели: ", ну и все что выше — название, описание, интервал.
#22 11 мая 2013 в 14:49
volchoc, у вас какая версия движка?
#23 11 мая 2013 в 18:03
Кстати да, не написал. — 1.10
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.