Как сделать вывод рекомендуемых товаров

#
Как сделать вывод рекомендуемых товаров
есть вывод для всего всех элементов в независомо в разделе сайта я нахожусь
<?
$Shop =  & singleton('shop');

$param = array();
$element = array();
$element['type']=1; // отбоh будет делаться по дополнительному свойству товара.
$element['prefix'] = 'and'; // так надо.
$element['property_id'] = 161; // ID св-ва
$element['if'] = '=';
$element['value'] = 1; //именно это там и ставится, все правильно
$element['sufix'] = '';
$param['select'][]=$element; // Добавляем в общий список условий

$param['xml_show_group_type']='all';
$param['items_on_page'] = 4;
$param['items_order'] = 'rand';

$param['current_group_id'] =false;
$Shop->ShowShop(3,'МагазинКаталогТоваровНаГлавнойСпецПред ',$param);
?>


Нужно что бы как только я захожу в магазин отображались данные для групп в которой я ннахожусь соответсвенно и выводились данные в подгруппе. Пример

есть структура магаза
магазин
категория 1
подгруппа 1.1
подгруппа 1.1.1
категория 2
подгруппа 2.1
подгруппа 2.2
подгруппа 2.2.1

вот если я захожу в магазин то вывод со всех категорий и покатегорий. если я захожу в категорию 1 то вывод только этой группы и подгрупп, соответсвенно если подгруппа 1.1.1 то вывод только данных этой подгруппы
что-то я не забралась как это делать
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
сначала надо проверить находимся ли мы в магазине?

   если НЕТ - то присвоить элементу $param['current_group_id'] значение false
   Если ДА то

      если находимся в корне магазина, то тоже то присвоить элементу $param['current_group_id'] значение false.

      а если находимся в какой-либо группе магазина то

         надо определить текущую группу,
         потом с помощью метода $shop->GetAllGroups() получить массив описаний ветки групп начиная от текущей и вниз.
         перебрать все элементы массива и выдернуть из них идентификаторы всех групп в отдельный массивчик.
         этот массивчик присвоить элементу $param['current_group_id']


после этого сделать вывод описанным выше способом, выкинув из него строчку про  $param['current_group_id']

Ну примерно как-то так
Заказов не беру. Консультирую редко.
#
Re: Как сделать вывод рекомендуемых товаров
а не проще так

проверить в магазине или нет
если нет то  $param['current_group_id'] значение false метка1
если да то $param['current_group_id'] передаем id группы

метка 1 вывод что я выше ставила?
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
только вот порос как узнать где находишься?
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
не, не проще.
Если вы передаете id одной группы, то будет осуществляться вывод товаров только из этой группы, а из подгрупп - нет, а вам же надо чтобы и из подгрупп тоже.
Поэтому надо передавать массив из id текущей группы и ее подгрупп.

Проверка нахождения в корне магазина сделана для того чтобы не передавать в качестве параметра массив из _всех_ групп магазина, т.к. это не рационально. Массив всех групп еще надо вычислить, а параметр false передать быстрее будет, чем перебрать все группы магазина и повытаскивать из них ID. Просто сэкономим несколько тактов процессора.

Проверка нахождения в магазине или вне его осуществляется с помощью константы CURRENT_STRUCTURE_ID. Если она равна id раздела с магазином в структуре сайта, значит мы в магазине.
Заказов не беру. Консультирую редко.
#
Re: Как сделать вывод рекомендуемых товаров
$param['xml_show_group_type']='all'; а тогда что дает этот параметр? разве не показ всех товаров во вложенных группах? Наверно все таки не all надо ставить а скорее tree
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
соотв., получается:

Если (CURRENT_STRUCTURE_ID != id_раздела_магазина_в_структуре) или
(CURRENT_STRUCTURE_ID == id_раздела_магазина_в_структуре И $GLOBALS['shop_item_path']['group'] = 0)
то $param['current_group_id'] = false
а иначе вычисляем массив idшников описанным выше способом, и присваевам его переменной $param['current_group_id']

ну а потом идет вывод
Заказов не беру. Консультирую редко.
#
Re: Как сделать вывод рекомендуемых товаров
$param['xml_show_group_type'] кажется относится только к группам и не затрагивает товары.
Заказов не беру. Консультирую редко.
#
Re: Как сделать вывод рекомендуемых товаров
тоесть я имелла ввиду подгруппы конечно же
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
А, чуть-чуть не правильно понял задачу.
Если вне магазина выводить ничего не надо, то тогда так:

Если (CURRENT_STRUCTURE_ID == id_раздела_магазина_в_структуре И $GLOBALS['shop_item_path']['group'] = 0)
то $param['current_group_id'] = false
а иначе вычисляем массив idшников описанным выше способом, и присваеваем его переменной $param['current_group_id']
Заказов не беру. Консультирую редко.
Авторизация