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

#
Re: Как сделать вывод рекомендуемых товаров
ну тогда получается так
<?

$Shop =  & singleton('shop');

$param = array();
$element = array();
$element['type']=1; // отбор будет делаться по дополнительному свойству товара.
$element['prefix'] = 'and'; // так надо.
$element['property_id'] = 161; // ID св-ва
$element['if'] = '=';
$element['value'] = 1; //именно это там и ставится, все правильно
$element['sufix'] = '';
$param['select'][]=$element;
$param['xml_show_group_type']='tree';
$param['items_on_page'] = 4;
$param['items_order'] = 'rand';
//Проверяем в магазине мы или нет
if (CURRENT_STRUCTURE_ID = '85'and $GLOBALS['shop_item_path']['group'] != 0)
{
   $mas_group = array();  
   $mas_group = $GLOBALS['shop']->GetGroupsTree($GLOBALS['shop_item_path']['group'],
   $current_shop_id, $mas_group);
   $set = array();
   $set = SetGroups($mas_group, $set);
   $param['current_group_id'] = array();
   $param['current_group_id'][] = $GLOBALS['shop_item_path']['group'];

   foreach ($set as $key => $value)
   {
             $param['current_group_id'][] = $value;
   }

}
else $param['current_group_id'] = false;
$Shop->ShowShop(3,'МагазинКаталогТоваровНаГлавнойСпецПред',$param);
?>
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
тогда уж так:
(это код для шаблона, а не для ТДС)

<?php

$shop_structure_id = 1; // здесь вписать id узла структуры, в котором магазин

function SetGroups($mas_groups, $set)
{
    $mas_groups = to_array($mas_groups);
    foreach ($mas_groups as $key => $value)
    {
        foreach ($value as $key1 => $value1)
        {
            $set[] = $value1;
            if ($value1 == $key)
            {
                $set[] = $key;
                SetGroups($mas_groups, $set);
            }
        }
    }
    return $set;
}


// создадим объект
$Shop = &singleton('shop');

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

$param = array();
$param['select'][] = $element;
$param['items_on_page'] = 4;
$param['items_order'] = 'rand';

// проверим, вдруг мы находимся вне магазина, или в его корне?

if ((CURRENT_STRUCTURE_ID != $shop_structure_id) || (CURRENT_STRUCTURE_ID == $shop_structure_id &&
    $GLOBALS['shop_item_path']['group'] === 0))
{
    $param['current_group_id'] = false; // ну а если мы в коре магазина то передадим false

} else
{
    // если нет, то получим дерево групп от текущей группы вниз
    $mas_group = array();
    $mas_group = $GLOBALS['shop']->GetGroupsTree($GLOBALS['shop_item_path']['group'],
        $current_shop_id, $mas_group);

    // приведем дерево к двумерному массиву
    $set = array();
    $set = SetGroups($mas_group, $set);

    // и соберем в один массив id текущей группы и всех ее подгрупп
    foreach ($set as $key => $value)
        $param['current_group_id'][] = $value;
}

// отобразим магазин
$Shop->ShowShop(3, 'МагазинКаталогТоваровНаГлавнойСпецПред ', $param);

?>
Заказов не беру. Консультирую редко.
#
Re: Как сделать вывод рекомендуемых товаров
для ТДС такой метод не пойдет это если только выкинуть условия отбора и проверку про структуру тогда и для глобально магазина пойдет... то тогда так и остается вопрос. и видимо проверка структуры здесь не совсем подходит... у меня была мысль чтоб в магазине проверять  $GLOBALS['LA']['shop_id'] это условие  но возникает вопрос какое значение содержит данная переменная если мы находимся вне структуры магазина
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
как только входим в блок
{
    // если нет, то получим дерево групп от текущей группы вниз
    $mas_group = array();
    $mas_group = $GLOBALS['shop']->GetGroupsTree($GLOBALS['shop_item_path']['group'],
        $current_shop_id, $mas_group);

    // приведем дерево к двумерному массиву
    $set = array();
    $set = SetGroups($mas_group, $set);

    // и соберем в один массив id текущей группы и всех ее подгрупп
    foreach ($set as $key => $value)
        $param['current_group_id'][] = $value;
}


глобальный магазин не отображается потому что мы меняем $param['current_group_id'][] = $value; как я понимаю
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: Как сделать вывод рекомендуемых товаров
я передела немного подругому покрайней мере при входе в корень магазина у нас выводится Информация
<?php

$shop_structure_id =85; // здесь вписать id узла структуры, в котором магазин
// создадим объект
$Shop = &singleton('shop');

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

$param = array();
$param['select'][] = $element;
$param['items_on_page'] = 4;
$param['items_order'] = 'rand';

// проверим, вдруг мы находимся вне магазина, или в его корне?

if ((CURRENT_STRUCTURE_ID != $shop_structure_id) || (CURRENT_STRUCTURE_ID == $shop_structure_id &&
    $GLOBALS['shop_item_path']['group'] === 0))
{
    $param['current_group_id'] = false; // ну а если мы в коре магазина то передадим false

} else
{
            $param['current_group_id'] = $GLOBALS['shop_item_path']['group'] ;
}

// отобразим магазин
$Shop->ShowShop(3, 'МагазинКаталогТоваровНаГлавнойСпецПред ', $param);

?>

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

$shop_structure_id =85; // здесь вписать id узла структуры, в котором магазин
// создадим объект
$Shop = &singleton('shop');

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

$param = array();
$param['select'][] = $element;
$param['items_on_page'] = 4;
$param['items_order'] = 'rand';

// проверим, вдруг мы находимся вне магазина, или в его корне?

if ((CURRENT_STRUCTURE_ID != $shop_structure_id) || (CURRENT_STRUCTURE_ID == $shop_structure_id &&
    $GLOBALS['shop_item_path']['group'] === 0))
{
    $param['current_group_id'] = false; // ну а если мы в коре магазина то передадим false

} else
{
$shop_current_group_id = $GLOBALS['shop_item_path']['group'];
print_r($shop_current_group_id);
$mas_group = array();
$mas_group = $Shop->GetGroupsTree( $GLOBALS['shop_item_path']['group'], 3);

// в $in будет хранится массив подгрупп
$in = array($GLOBALS['shop_item_path']['group']);


$set = array();
$set = SetGroups($mas_group, $set);

$elements = array();

foreach ($set as $key => $value)
{
   $in[] = $value;print_r( $in);
}

$elements['type'] = 0;
$elements['prefix'] = ' and (';
$elements['name'] = 'shop_items_catalog_table.shop_groups_id';
$elements['if'] = ' IN (' . implode(',', $in) . ') ';
$elements['value'] = '';
$elements['sufix'] = ')';
$param['select'][] = $elements;
$param['current_group_id'] = false;
}
// отобразим магазин
$Shop->ShowShop(3, 'МагазинКаталогТоваровНаГлавнойСпецПред', $param,$external_propertys);

?>
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
Авторизация