Сортировка групп по доп. полю - дата

#
Сортировка групп по доп. полю - дата
Доброго времени суток.
У вас в API есть пример с сортировкой ЭЛЕМЕНТОВ информационной системы:
<?php
$InformationSystem = & singleton('InformationSystem');
$external_propertys = array();
$external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 1;

$property=array();
$property_id = 4154;

$element['type'] = 0;
$element['prefix'] = ' and ('; // префикс
$element['name'] = 'information_propertys_table.information_propertys_id';
$element['if'] = '='; // Условие
// Здесь указывается ID доп. св-ва, по которому производится сортировка
$element['value'] = $property_id; // ID дополнительного св-ва, по которому сортируем
$element['sufix'] = '  OR information_propertys_table.information_propertys_id IS NULL )';
$property['select'][] = $element;

// Фиктивное условие для подключения таблицы доп. свойств
$element['type'] = 1;
$element['prefix'] = 'or';
$element['property_id'] = 9999;
$element['if'] = '!=';
$element['value'] = '0';
$element['sufix'] = '';
$property['select'][] = $element;

// Указываем, что мы сортируем по значениям дополнительных полей
$property['OrderField'] = 'information_propertys_items_value';

// Если сортировка по значению св-ва, а по остальным случайная,

// то закомментируйте строку $property['OrderField'] и раскомментируйте строки:
//$property['OrderField'] = 'information_propertys_items_value DESC, RAND()';
//$property['Order'] = '';

// Выводим элементы
$InformationSystem->ShowInformationSystem(1, 0, 'СписокНовостей', 10, 0, $external_propertys, $property);

?>


Можете сделать точно такой же с сортировкой ГРУПП информационной системы по доп. свойству типа ДАТА.
#
Re: Сортировка групп по доп. полю - дата
Переделал пример на дату, НО сортировка происходит по числу даты, а не по дате, как положено.
Не могли бы вы подсказать, как правильно вытаскивать и сортировать тип "дата".

Вот мой код:
<?php
$InformationSystem = & singleton('InformationSystem');

$property=array();
$property_id = 11;

$element['type'] = 0;
$element['prefix'] = ' and ('; // префикс
$element['name'] = 'information_propertys_groups_table.information_propertys_groups_id';
$element['if'] = '='; // Условие
$element['value'] = $property_id; // ID дополнительного св-ва, по которому сортируем
$element['sufix'] = '  OR information_propertys_groups_table.information_propertys_groups_id IS NULL )';
$property['select_groups'][] = $element;

// Фиктивное условие для подключения таблицы доп. свойств
$element['type'] = 1;
$element['prefix'] = 'or';
$element['property_id'] = 9999;
$element['if'] = '!=';
$element['value'] = '0';
$element['sufix'] = '';
$property['select_groups'][] = $element;

// Указываем, что мы сортируем по значениям дополнительных полей
$property['OrderGroupField'] = 'information_propertys_groups_value_value';

// Выводим элементы
$InformationSystem->ShowInformationSystem(4, 0, 'СписокКартинок', 999, 0, array(), $property);
?>
#
Re: Сортировка групп по доп. полю - дата
Перенесите в полезные решения, ибо многие задаются этим вопросом (видел на форуме сообщения, пока искал).

Готовый вариант:
<?php

$InformationSystem = & singleton('InformationSystem');

$property=array();
$property_id = 11;

$element['type'] = 0;
$element['prefix'] = ' and ('; // префикс
$element['name'] = 'information_propertys_groups_table.information_propertys_groups_id';
$element['if'] = '='; // Условие
$element['value'] = $property_id; // ID дополнительного св-ва, по которому сортируем
$element['sufix'] = '  OR information_propertys_groups_table.information_propertys_groups_id IS NULL )';
$property['select_groups'][] = $element;

// Фиктивное условие для подключения таблицы доп. свойств
$element['type'] = 1;
$element['prefix'] = 'or';
$element['property_id'] = $property_id;
$element['if'] = '!=';
$element['value'] = '0';
$element['sufix'] = '';
$property['select_groups'][] = $element;


$property['OrderGroup'] = 'DESC';

// Указываем, что мы сортируем по значениям дополнительных полей
$property['OrderGroupField'] = 'CONVERT(CONCAT(SUBSTR(information_propertys_groups_value_value, 7, 4), CHAR(45), SUBSTR(information_propertys_groups_value_value, 4, 2), CHAR(45), SUBSTR(information_propertys_groups_value_value, 1, 2)),  DATE)';

// Выводим элементы
$InformationSystem->ShowInformationSystem(4, 0, 'СписокКартинок', 999, 0, array(), $property);
?>
Авторизация