Как настроить рандом в разделе сайта?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 1.X

Нужна рандомная выдача конкурсных работ.

#1 5 января 2019 в 17:05
Здравствуйте!
Мы периодически проводим на сайте конкурсы. Хотелось бы, чтобы при обновлении раздела с конкурсными работами они выводились в случайном порядке, т. е. вперемешку, без сортировки по популяности или дате добавления.
Подскажите, пожалуйста, возможно ли настроить рандомную выдачу? И если да, то что для этого требуется: плагин, расширение, специальная программа?
#2 5 января 2019 в 17:15

Подскажите, пожалуйста, возможно ли настроить рандомную выдачу? И если да, то что для этого требуется: плагин, расширение, специальная программа?

Светлана
В компоненте content есть вызов события
  1. $cat = cmsCore::callEvent('GET_CONTENT_CAT', $cat);
На это дело можно повесить плагин, который будет перемешивать статьи в рандомном порядке.
Это про статьи.
А конкурсы, которые Вы проводите, к какому компоненту относятся? Это статьи, посты в блогах, вопросы faq или какой-то свой компонент?
#3 5 января 2019 в 18:14
В компоненте content есть вызов события
  1. $cat = cmsCore::callEvent('GET_CONTENT_CAT', $cat);
На это дело можно повесить плагин, который будет перемешивать статьи в рандомном порядке.
Это про статьи.
А конкурсы, которые Вы проводите, к какому компоненту относятся? Это статьи, посты в блогах, вопросы faq или какой-то свой компонент?
[/quote]
Это статьи в отдельном разделе. Ранее мы проводили конкурсы вот так: www.strana-sssr.net/конкурс
И подскажите, пожалуйста, куда именно вставлять код. Я вообще в этом деле чайник)) Надо, чтобы рандом работал только в одном разделе, а не по всему сайту.
#4 5 января 2019 в 18:20
Могу предложить установку поля Случайное число
Это поле в любом типе контента создает ячейку, в которой случайным образом меняется число после просмотра любой записи из данного типа контента.
Вам потребуется после установки поля, сделать его закрытым (не показывать ни где) и сделать набор с сортировкой по этому полю.
#5 5 января 2019 в 18:31


Могу предложить установку поля Случайное число
Это поле в любом типе контента создает ячейку, в которой случайным образом меняется число после просмотра любой записи из данного типа контента.
Вам потребуется после установки поля, сделать его закрытым (не показывать ни где) и сделать набор с сортировкой по этому полю.

vikont
Прошла по вашей ссылке, там написано: "В виджете слайдер или любой другой который выводит список контента, выбираете этот набор." А у меня список контента выводится не в виджете, а в разделе. Подойдет это поле для раздела?
#6 5 января 2019 в 18:35
vikont,
У Светланы первая ветка, поле для второй.

Я вообще в этом деле чайник))

Светлана
Тогда разместите объявление на этом форуме в разделе "Ищу исполнителя". Может кто откликнется.
#7 5 января 2019 в 18:55

vikont,
У Светланы первая ветка, поле для второй.

Ris
Извиняюсь, прощелкал… но можно обратиться к разработчику, возможно у него есть и для первой ветки такое поле.
#8 5 января 2019 в 19:39

Подскажите, пожалуйста, возможно ли настроить рандомную выдачу? И если да, то что для этого требуется: плагин, расширение, специальная программа?

Светлана

У меня есть модуль вывода статей в случайном порядке...
Надо?

yadi.sk/d/ls8R-uCBKdj7hQ

Установка стандартная (все папки из архива залить в корень сайта, установить и настроить потом в админке), только из файла (в архиве) add_styles.css стили надо скопировать и добавить
в любой ваш файл стилей шаблона.

Пробовать лучше на копии сайта…
#9 5 января 2019 в 19:51

Это статьи в отдельном разделе.

Светлана
Раздел не важен. Статью в админке можно создать и в корневом разделе
(зелёная кнопка с крестиком — Добавить статью). И это полноценная статья.
#10 5 января 2019 в 20:10
Светлана,
Думаю, что предложение

У меня есть модуль вывода статей в случайном порядке...

Rainbow
именно то, что Вам надо!
Располагаете этот модуль на странице конкурсов и будет именно то, что Вы хотели.
#11 5 января 2019 в 20:11
Перед тем как что то менять сохраните копию файлов, если что то пойдёт не так, восстановите как было.

Файл: components/content/fronted.php
перед

  1. $inDB->orderBy($cat['orderby'], $cat['orderto']);
Вставить

  1. if($pcat['id'] == 12){
  2. $cat['orderby'] = 'RAND()';
  3. }
12 заменить на id номер раздела, о котором идёт речь (посмотреть в админке)
После этого при просмотре списка статей в разделе они должны выводиться в случайном порядке
#12 5 января 2019 в 20:21
ЗЫ:

Еще для блогов такой же модуль:

yadi.sk/d/BbrK0X-3xKqUBA

Может кому нужен...

Только у обеих модулей стили надо будет под свои шаблоны править…
#13 5 января 2019 в 20:33

Может кому нужен...

Rainbow
Спасибо.

12 заменить на id

Нил™
id=12 — А путь и далек и долог… А. Пахмутова.
#14 5 января 2019 в 21:51

id=12 — А путь и далек и долог… А. Пахмутова.

DeDja
можем сократить)

  1. if($pcat['id'] == 12){ $cat['orderby'] = 'RAND()'; }
#15 5 января 2019 в 21:53
Ребята, большое спасибо всем за помощь! Буду пробовать, как получится — отпишусь.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.