Популярные информационные элементы за месяц

#
Популярные информационные элементы за месяц
Делаю вывод 10 самых популярных фото на главной странице. Сортировка популярности учитывается по количеству просмотров.

<h3>Популярные</h3>
<?php
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
   Core_Entity::factory('Informationsystem', 1)
);
$Informationsystem_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName('ВыводПопулярныхФотоНаГлавной')
   )
   ->groupsMode('none')
   ->itemsForbiddenTags(array('text'))
   ->group(FALSE)
   ->limit(10);

$Informationsystem_Controller_Show
   ->informationsystemItems()
   ->queryBuilder()
   ->where('informationsystem_items.active', '=', 1)
   ->clearOrderBy()
   ->orderBy('informationsystem_items.showed', 'DESC');

$Informationsystem_Controller_Show->show();
?>   


Что необходимо добавить в код, чтобы в сортировке учитывались только Информационные элементы за последние 30 дней.

Заранее благодарен.
Модератор
#
Re: Популярные информационные элементы за месяц
$Informationsystem_Controller_Show
   ->informationsystemItems()
   ->queryBuilder()
   ->where('informationsystem_items.active', '=', 1)
   ->where('informationsystem_items.datetime', '>', Core_Date::timestamp2sql(strtotime("-30 day")))
   ->clearOrderBy()
   ->orderBy('informationsystem_items.showed', 'DESC');
#
Re: Популярные информационные элементы за месяц
hostcms, добавляю выделенную строчку, и пропадают все информационные элементы.
Пытаюсь исправить, добавив вместо этого, например,
->where('informationsystem_items.datetime', '<', Core_Date::timestamp2sql(strtotime("30 day")))
,
выводятся популярные информационные элементы, но за весь период, а не за 30 дней.
В чём возможная ошибка?
#
Re: Популярные информационные элементы за месяц
Вот что сейчас:
<?php
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(Core_Entity::factory('Informationsystem', 55));
$Informationsystem_Controller_Show
->xsl(Core_Entity::factory('Xsl')->getByName('ВидыНаГлавной'))
->groupsMode('none')
->itemsForbiddenTags(array('text'))
->group(FALSE)
->limit(8);
$Informationsystem_Controller_Show
->informationsystemItems()
->queryBuilder()
->where('informationsystem_items.active', '=', 1)
->where('informationsystem_items.datetime', '>', Core_Date::timestamp2sql(strtotime("-30 day")))
->clearOrderBy()
->orderBy('informationsystem_items.showed', 'DESC'); /* в порядке по популярности*/
$Informationsystem_Controller_Show
->show();
?>

Нужно вывести популярные информационные элементы за месяц.
Что здесь не так? Кто-нибудь знает?
Модератор
#
Re: Популярные информационные элементы за месяц
Dmitry K. писал(а):

выводятся популярные информационные элементы, но за весь период, а не за 30 дней.

должно быть -30 дней, а так у вас на 30 дней вперед, а таких элементов нет из будущего.

Dmitry K. писал(а):
Что здесь не так? Кто-нибудь знает?

викторина? Вы бы хоть ошибку написали. Сейчас orderBy нужно задавать не ->queryBuilder(), а самому контроллеру, выше информация актуальная на 2014 год.
#
Re: Популярные информационные элементы за месяц
hostcms, хорошо, буду разбираться...
А информация в документации на Вашем сайте актуальна?
На страницеhttps://www.hostcms.ru/documentation/modules/informationsystem/frontend/how-to-sort-items/, например?
Модератор
#
Re: Популярные информационные элементы за месяц
Dmitry K.,
Сортировка информационных элементов по одному полю задается методом orderBy($column, $direction = 'ASC' контроллера Informationsystem_Controller_Show, сложная сортировка задается через метод informationsystemItems() контроллера Informationsystem_Controller_Show.
#
Re: Популярные информационные элементы за месяц
Dmitry K.,
задача то какая?
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Популярные информационные элементы за месяц
HostDEV.pw,
Задача вроде бы простая - выбрать популярные информационные элементы, но не за весь период существования сайта, а к примеру, за последние 30 дней.
Сейчас у меня вот так:
<?php
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(Core_Entity::factory('Informationsystem', 55));
$Informationsystem_Controller_Show
->xsl(Core_Entity::factory('Xsl')->getByName('ВидыДревесиныНаГлавной-wood-base'))
->groupsMode('none')
->itemsForbiddenTags(array('text'))
->group(FALSE)
->limit(8);
$Informationsystem_Controller_Show
->informationsystemItems()
->queryBuilder()
->where('informationsystem_items.active', '=', 1)
//->where('informationsystem_items.datetime', '>', Core_Date::timestamp2sql(strtotime('-30 day')))
->clearOrderBy()
->orderBy('informationsystem_items.showed', 'DESC'); /* в порядке по популярности*/
$Informationsystem_Controller_Show
->show();
?>
</div>
Закомментированная строчка по идее должна вроде бы помочь, но нет...
#
Re: Популярные информационные элементы за месяц
Dmitry K.,
Элементы с такими датами есть на сайте?
Может быть вы имеете ввиду максимально просмотренные за месяц элементы?
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Авторизация