Пример вывода в макете случайных товаров из группы и ее подгрупп:
<?php
// ID родительской группы
$group_id = 0;
// ID магазина
$shop_id = 1;
$param = array();
$param['items_on_page'] = 5;
$param['items_order'] = 'Rand';
$xsl_catalog = 'МагазинКаталогТоваров';
if (!function_exists('SetGroups'))
{
function SetGroups($mas_groups, $set)
{
$mas_groups = to_array($mas_groups);
foreach ($mas_groups as $key=>$value)
{
foreach ($value as $key1=>$value1)
{
$set[] = $value1['shop_groups_id'];
if ($value1['shop_groups_id'] == $key)
{
$set[] = $key;
SetGroups($mas_groups, $set);
}
}
}
return $set;
}
}
$shop = & singleton('shop');
$external_propertys = array();
$mas_group = $shop->GetGroupsTree($group_id, $shop_id);
// в $in будет хранится массив подгрупп
$in = array($group_id);
$set = array();
$set = SetGroups($mas_group, $set);
$elements = array();
foreach ($set as $key => $value)
{
$in[] = $value;
}
$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($shop_id, $xsl_catalog, $param, $external_propertys);
?>