Как реализовать случайное отображение элементов списка?

Модератор
#
Re: Как реализовать случайное отображение элементов списка?
$property=array();
$property['OrderField'] = 'RAND()';
$InformationSystem-> ShowInformationSystem(1, 0, ‘СписокНовостей’, 10, 0, external_propertys, $property);
#
Re: Как реализовать случайное отображение элементов списка?
Спасибо!. И еще один вопросик.
Как сделать, чтобы случайным образом отображались элементы не из всей инфосистемы (имеется несколько групп), а только из определенной группы?
#
Re: Как реализовать случайное отображение элементов списка?
Приходит в голову только вывод всех элементов с последующей обработкой в XSL-шаблоне. Верно?
Модератор
#
Re: Как реализовать случайное отображение элементов списка?
можно через IN () обработать ID групп через внешние параметры, при этом в качестве самой группы указать false
#
Re: Как реализовать случайное отображение элементов списка?
Распишите, пожалуйста, подробнее. Где почитать про IN()?
#
Re: Как реализовать случайное отображение элементов списка?
Ниже приведен конкретный пример, выводящий 5 случайных элементов из группы с идентификатором 690:
$external_propertys = array();
$property = array();
$property['OrderField'] = 'RAND()';            
$in = 690;
$element['type']=0;
$element['prefix'] = ' and (';
$element['name'] = 'information_items_table.information_groups_id';
$element['if'] = ' IN ('.$in.') ';
$element['value'] = '';
$element['sufix']=')';
$property['select'][]=$element;
      
$group = false;
$InformationSystem->ShowInformationSystem(InformationSystem_id, $group, 'СписокЭлементовИнфосистемы', 5, 0, $external_propertys, $property);
#
Re: Как реализовать случайное отображение элементов списка?
Для вывода 5 случайных элементов из различных групп(например с идентификаторами  690, 700, 710 и 720) сначала необходимо сформировать массив из идентификаторов этих групп. В итоге получаем:
$external_propertys = array();
$property = array();
$property['OrderField'] = 'RAND()';            
$in = 690;
$mas_group = array(700, 710, 720);
foreach ($mas_group as $key => $value)
{
$in .= ','.$value;
}
$element['type']=0;
$element['prefix'] = ' and (';
$element['name'] = 'information_items_table.information_groups_id';
$element['if'] = ' IN ('.$in.') ';
$element['value'] = '';
$element['sufix']=')';
$property['select'][]=$element;
      
$group = false;
$InformationSystem->ShowInformationSystem(InformationSystem_id, $group, 'СписокЭлементовИнфосистемы', 5, 0, $external_propertys, $property);
#
Re: Как реализовать случайное отображение элементов списка?
Огромное спасибо!
Поддержка действительно достойная.

Правильно ли я понимаю, что Вы сформировали запрос к MySql-базе? Где можно ознакомиться с синтаксисом?
Модератор
#
Re: Как реализовать случайное отображение элементов списка?
panukow писал(а):
Правильно ли я понимаю, что Вы сформировали запрос к MySql-базе?

в данном случае просто расширили SQL-запрос на выборку элементов.

panukow писал(а):
Где можно ознакомиться с синтаксисом?

Все есть в API - http://www.hostcms.ru/api/HostCMS%20v%204/InformationSystem.html#methodShowInformationSystem
API также доступен для загрузки в виде CHM файла.
#
Re: Как реализовать случайное отображение элементов списка?
Наверное сильно "торможу", но про IN и RAND в API ни слова.
Авторизация