Популярные статьи за неделю

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 24 февраля 2013 в 16:04
Всем привет!
Подскажите пожалуйста, что добавить в участке кода, чтобы выводились популярные статьи за неделю?

  1. $inDB->where("con.showlatest = 1");
  2.  
  3. if ($cfg['is_pag']){
  4. $total = $model->getArticlesCount();
  5. }
  6.  
  7. $inDB->orderBy('con.hits', 'DESC');
  8. $inDB->limitPage(1, $cfg['newscount']);
  9.  
  10. $content_list = $model->getArticlesList();
  11. if(!$content_list) { return false; }
  12.  
  13. $smarty = $inCore->initSmarty('modules', 'mod_lcslider.tpl');
  14. $smarty->assign('articles', $content_list);
  15. if ($cfg['is_pag']) {
  16. $smarty->assign('pagebar_module', cmsPage::getPagebar($total, 1, $cfg['newscount'], 'javascript:conPage(%page%, '.$module_id.')'));
  17. }
  18. $smarty->assign('is_ajax', false);
  19. $smarty->assign('module_id', $module_id);
  20. $smarty->assign('cfg', $cfg);
  21. $smarty->display('mod_lcslider.tpl');
  22.  
  23. return true;
#2 4 марта 2013 в 15:46
Никто не знает? Срочно нужно
#3 4 марта 2013 в 19:53
после строчки
$inDB->where("con.showlatest = 1 ");
вставить
$to= mktime(0, 0, 0, date("m"), date("d")-7, date("Y"));

$todn=date("Y-m-d H:i:s", $to);

$inDB->where("con.pubdate >='".$todn."'");
#4 4 марта 2013 в 21:44
Олег, что то не то. По-моему показываются новые статьи, а не популярные
#5 4 марта 2013 в 21:50
вопрос не точно прочитал
популярные за неделю это как?
по каким критериям оценивать популярность
если по просмотрам за неделю то простой правкой не сделать

по каким критериям сортировать?
#6 4 марта 2013 в 21:51
Олег, именно по просмотрам нужно
#7 4 марта 2013 в 22:01
по просмотрам у нас только число прибавляется в базе
а дата просмотра не заносится
поэтому решение только добавить в таблицу cms_content поле которое будет обновлять дату просмотра
а потом тот код что я привёл выше применить к тому полю
#8 4 марта 2013 в 22:02
тоесть чтоб это сделать нам ещё нужно править компонент статьи
чтоб при просмотре обновлять дату просмотра
#9 4 марта 2013 в 22:07
Олег, хорошо. А если по рейтингу?
#10 4 марта 2013 в 22:31
проще по просмотрам

там хоть в одной таблице можно сделать
(редактировать мало)

в базу делаем запрос

ALTER TABLE `cms_content` ADD `hitsdate` datetime NOT NULL;

далее идём в components\content\frontend.php

и после строк
// увеличиваем кол-во просмотров
if(@!$is_author){
$inDB->setFlag('cms_content', $article['id'], 'hits', $article['hits']+1);
вставляем
$updat = "UPDATE cms_content SET hitsdate = NOW() WHERE id=".$article['id'];
$resul = $inDB->query($updat);



далее в модуле что раньше код писал
после
$inDB->where("con.showlatest = 1 ");
вставляем
$to= mktime(0, 0, 0, date("m"), date("d")-7, date("Y"));

$todn=date("Y-m-d H:i:s", $to);

$inDB->where("con.hitsdate >='".$todn."'");
#11 4 марта 2013 в 22:51
Олег, вроде все работает! Огромное спасибо!
#12 4 марта 2013 в 22:58
Пожалуйста)))
#13 4 марта 2013 в 23:03
smile
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.