Вопрос по фильтрам - реализация

#
Вопрос по фильтрам - реализация
Возможно ли на версии 5.1.1 реализовать следующее:
В интернет-магазине задать товарам три обязательных поля - элемент1,элемент2, элемент3 и далее при выводе включать сортировку по данным элементам и выдавать на экран результат в виде таблицы , в которой отображаются выбранные элементы. ?

Каким образом это реализуется ? Вот тут что-то похожее, но не то.
http://hostcms.ru/forums/22/1378/ Заранее спасибо !
С уважением, Андрей
#
Re: Вопрос по фильтрам - реализация
Если элемент1, элемент2, элемент3 - это доп. свойства товаров, то можно сортировать эти товара по одному из доп. свойств. Пример кода:
<?
$shop = & singleton('shop');
$param = array();
$external_propertys = array();

$param['current_group_id'] = false;

$param['xml_show_group_type'] = 'all';
$param['items_on_page'] = 10;

// Ограничение по доп. свойству
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 194; // идентификатор доп. св-ва
$element['prefix'] = ' AND '; // префикс
$element['if'] = '!='; // Условие
$element['value'] = "''";  //
$element['sufix'] = '';
$param['select'][] = $element;

// Сортируем как строку
$param['items_field_order'] = ' shop_properties_items_table.shop_properties_items_value';

$param['items_order'] = 'DESC';
$shop->ShowShop(1,'МагазинКаталогТоваров', $param, $external_propertys);
?>

Для сортировки товаров по доп. свойству типа "число" в качестве значения параметра $param['items_field_order'] используйте:
// Сортируем как число
$param['items_field_order'] = ' CONVERT(shop_properties_items_table.shop_properties_items_value, UNSIGNED)';

для свойства типа "ДатаВремя":
// Сортируем как ДатуВремя
$param['items_field_order'] = " CONVERT(CONCAT(SUBSTR(shop_properties_items_value, 7, 4), CHAR(45), SUBSTR(shop_properties_items_value, 4, 2), CHAR(45), SUBSTR(shop_properties_items_value, 1, 2), CHAR(32), SUBSTR(shop_properties_items_value, 12, 8)) , DATETIME)";

для свойства типа "Дата":
// Сортируем как Дату
$param['items_field_order'] = " CONVERT(CONCAT(SUBSTR(shop_properties_items_value, 7, 4), CHAR(45), SUBSTR(shop_properties_items_value, 4, 2), CHAR(45), SUBSTR(shop_properties_items_value, 1, 2)),  DATE)";
#
Re: Вопрос по фильтрам - реализация
Еще раз ОГРОМНОЕ Спасибо ! Весьма пригодилось !
С уважением, Андрей
#
Re: Вопрос по фильтрам - реализация
Пожалуйста
#
Re: Вопрос по фильтрам - реализация
<?
$shop = & singleton('shop');
$param = array();
$external_propertys = array();

$param['current_group_id'] = false;

$param['xml_show_group_type'] = 'all';
$param['items_on_page'] = 10;

// Ограничение по доп. свойству
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 194; // идентификатор доп. св-ва
$element['prefix'] = ' AND '; // префикс
$element['if'] = '!='; // Условие
$element['value'] = "''";  //
$element['sufix'] = '';
$param['select'][] = $element;

// Сортируем как строку
$param['items_field_order'] = ' shop_properties_items_table.shop_properties_items_value';

$param['items_order'] = 'DESC';
$shop->ShowShop(1,'МагазинКаталогТоваров', $param, $external_propertys);
?>


Куда это всё вставлять?
#
Re: Вопрос по фильтрам - реализация
туда, где требуется отображение отсортированных товаров. Например, в макет или шаблон страницы.
#
Re: Вопрос по фильтрам - реализация
Как быть, есть вывод осуществляется с помощью:
<?
$kernel->show_current_page();
?>
#
Re: Вопрос по фильтрам - реализация
добавьте параметры конструктора запроса в код тип. дин. страницы для магазина перед вызовом метода ShowShop
#
Re: Вопрос по фильтрам - реализация
Спасибо попробую.
#
Re: Вопрос по фильтрам - реализация
Всё работает, ОГРОМНОЕ Спасибо!
Только дополнительно необходимо сделать упорядочивание по дате добавление, например сначало идут с ad_type приоритет 2, как сейчас, и внутри упорядачено от самого последнего до позднего объявления.
т.е.
ad_type data
2       2008.08.01
2       2008.07.31
2       2008.07.30
1       2008.08.01
1       2008.07.31
0       2008.08.01

И ещё один вопрос, вместо хлебных крошек, вылезла вся структура Доски Объявлений (т.е. рубрики и подрубрики). Как убрать?
Авторизация