Вывод случайных элементов + некая логика

#
Вывод случайных элементов + некая логика
Нужно выводить случайным образом элементы в кол-ве - 1
Рендомная фотка из галлереи допустим на главной.

Сделал.

<?
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;
$property['OrderField'] = "RAND()";
$InformationSystem->ShowInformationSystem(19,false,'ГлавнаяНовоеВидео',1,
0,$external_propertys,$property);
                  ?>




Далее -

Как сделать чтобы допустим я отмечал checkbox у элемента как дополнительное свойство и если отмечено то только его и выводить на главной?

То есть или так - если ни у одного элемента не отмечен checkbox то идет случайный вывод элементов.


PS Ранее выводился только новый элемент (без случайного вывода), захотелось оживить блок случайным выводом элементов + иметь возможность устанавливать видимость конкретного элемента на главной.


Убирая checkbox у элемента - будет выводиться самый новый из элементов с активным checkbox'ом.


Подскажите пожалуйста.
tnx
ку
Модератор
#
Re: Вывод случайных элементов + некая логика
compaq писал(а):
Как сделать чтобы допустим я отмечал checkbox у элемента как дополнительное свойство и если отмечено то только его и выводить на главной?

Сортировать по доп. св-ву, а потом RAND-ом - теоретически должно сработать, если есть хотя бы одно значение - оно будет наверху. Как сортировать по доп. св-ву неоднократно обсуждалось, помоему и в API есть пример.
#
Re: Вывод случайных элементов + некая логика
Расскажите пожалуйста как в моем случае искать в api нужные вызовы?

пока сложно
ку
#
Re: Вывод случайных элементов + некая логика
Нужна помощь, нужного решения по доп-сву флажок я не нашел
ку
#
Re: Вывод случайных элементов + некая логика
Покурил немного api.

<?
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

$property=array();
$element['type'] = 1;
$element['prefix'] = 'and';
$element['property_id'] = '22';
$element['if'] = '!=';
$element['value'] = '0';
$element['sufix']='';
$property['select'][] = $element;
$property['OrderField'] = 'RAND()';

$InformationSystem->ShowInformationSystem(19,false,'ГлавнаяНовоеВидео',1,
0,$external_propertys,$property);
                  ?>


Вывод по доп-сву получается но не работает RAND()  если нет активного доп-сва

Чуток осталось =) Пробую.
ку
#
Re: Вывод случайных элементов + некая логика
тут пас -)) help =)
ку
Модератор
#
Re: Вывод случайных элементов + некая логика
compaq,
Вы использовали пример фильтрации, а нужно посмотреть в сторону "Пример сортировки по значению дополнительного поля", он там же в API для ShowInformationSystem()
#
Re: Вывод случайных элементов + некая логика
Пробывал, не получается что-то. Базы то нет - сижу гадаю не понимаю..

Расскажите - буду знать.



<?
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

$property=array();
$element['type'] = 0;
$element['prefix'] = 'and (';
$element['name'] = 'information_items_date';
$element['if'] = '';
$element['value'] = '';
$element['sufix']='';
$property['select'][] = $element;

$element['type'] = 0;
$element['prefix'] = ' and '; // префикс
$element['name'] = 'information_propertys_table.information_propertys_id';
$element['if'] = '='; // Условие

// Здесь указывается ID доп. св-ва, по которому производится сортировка

$element['value'] = '22'; // ID дополнительного св-ва, по которому сортируем
$element['sufix']=')';
$property['select'][] = $element;


// Фиктивное условие для подключения таблицы доп. свойств

$element['type'] = 1;
$element['prefix'] = 'and';
$element['property_id'] = 22;
$element['if'] = '!=';
$element['value'] = '0';
$element['sufix']='';
$property['select'][] = $element;



// Указываем, что мы сортируем по значениям дополнительных полей

$property['OrderField'] = "RAND()";


$InformationSystem->ShowInformationSystem(19,false,'ГлавнаяНовоеВидео',1,
0,$external_propertys,$property);
                  ?>
ку
Модератор
#
Re: Вывод случайных элементов + некая логика
Попробуйте так
$property['OrderField'] = 'information_propertys_table.information_propertys_id, information_propertys_items_value, RAND()';

$property['Order'] = '';
#
Re: Вывод случайных элементов + некая логика
ага.  перепробывал многое в общем

сейчас с учетом вашего коммента:


<?
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

$property=array();
$element['type'] = 0;
$element['prefix'] = 'and (';
$element['name'] = 'information_items_date';
$element['if'] = '>';
$element['value'] = '2005-12-23 00:00:00';
$element['sufix']='';
$property['select'][] = $element;

$element['type'] = 0;
$element['prefix'] = ' and '; // префикс
$element['name'] = 'information_propertys_table.information_propertys_id';
$element['if'] = '='; // Условие

// Здесь указывается ID доп. св-ва, по которому производится сортировка

$element['value'] = '22'; // ID дополнительного св-ва, по которому сортируем
$element['sufix']=')';
$property['select'][] = $element;


// Фиктивное условие для подключения таблицы доп. свойств

$element['type'] = 1;
$element['prefix'] = 'and';
$element['property_id'] = 22;
$element['if'] = '!=';
$element['value'] = '0';
$element['sufix']='';
$property['select'][] = $element;



// Указываем, что мы сортируем по значениям дополнительных полей

$property['OrderField'] = 'information_propertys_table.information_propertys_id, information_propertys_items_value, RAND()';

$property['Order'] = '';


$InformationSystem->ShowInformationSystem(19,false,'ГлавнаяНовоеВидео',1,
0,$external_propertys,$property);
                  ?>


Не выводятся элементы - пусто. Если ставлю чекбокс у элемента - выводится.


ку
Авторизация