как сделать рандомную подгрузку записей в виджете?

InstantCMS 2.X
#1 5 мая 2017 в 09:41
как сделать рандомную подгрузку записей в виджете?

а то есть настройки из набора или просто не применять набор, но тогда выводит просто по очереди.
#2 5 мая 2017 в 12:44
Вот такой вот хук замечательно рандомит посты.
  1. <?php
  2.  
  3. class onContentContentPostsListFilter extends cmsAction {
  4.  
  5. public function run($data){
  6.  
  7. list($ctype, $model) = $data; // Разворачиваем массив входящих данных
  8.  
  9. $model->order_by = 'rand()';
  10.  
  11.  
  12. return array($ctype, $model);
  13. }
  14.  
  15. }
#3 5 мая 2017 в 12:45


как сделать рандомную подгрузку записей в виджете?

yury
Выбирай
Раз
Два
три
четыре
#4 5 мая 2017 в 13:18


Вот такой вот хук замечательно рандомит посты.

  1.  
  2.  

Ris

куда его прописать?
#5 5 мая 2017 в 17:59
попробовал метод с хуком. хорошее решение, если надо применить ко всему типу контента. а как только к виджету? где может в файле вижета надо задать тип сортировки?
#6 5 мая 2017 в 19:45
Спасибо огромное Ris!

кому пригодится решение, вот то что он посоветовал. думаю не будет против

Создаем в файле хуков content_posts_widget_filter.php, класс в хуке onContentContentPostsWidgetFilter, строку в манифесте добавляем 'content_posts_widget_filter'.
В файле \system\controllers\content\widgets\list\widget.php после строчки
list($ctype, $model) = cmsEventsManager::hook("content_{$ctype['name']}_list_filter", array($ctype, $model));
добавляем
list($ctype, $model) = cmsEventsManager::hook("content_{$ctype['name']}_widget_filter", array($ctype, $model));

Всё. Виджет рандомно, сам контент в порядке.

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