Контроллеры в клиентском разделе

#
Re: Контроллеры в клиентском разделе
Stepan0v,
Вы предлагаете решение, которое будет работать, когда товаров и категорий немного, потом начнутся жуткие тормоза

Рецепт практически такой же как для пятой версии, те нужно передавать массив идентификаторов дочерних групп, придется немного изменить типовую динамическую страницу
разработка сайтов, фирменных стилей, интерфейсов
#
Re: Re: Контроллеры в клиентском разделе
toasterec, согласен. Когда буду знать откуда брать массив и куда его передавать - буду предлагать это решение (вы же не хотите рассказывать подробнее .

А пока  рассказал, что знал. Буквально недавно и этого не знал 8-)
#
Re: Контроллеры в клиентском разделе
С помощью queryBuilder

//отбираем только ИЭ принадлежащие текущей группе и ее потомкам
    $Informationsystem_Controller_Show
        ->informationsystemItems()
        ->queryBuilder()
        ->from(array('informationsystem_groups', 'ig'))
        ->where('ig.parent_id', '=', (int)$Informationsystem_Controller_Show->group)
        ->open()
        ->where('informationsystem_items.informationsystem_group_id', '=', (int)$Informationsystem_Controller_Show->group)
        ->setOr()
        ->where('informationsystem_items.informationsystem_group_id', '=', Core_QueryBuilder::expression('`ig`.`id`'))
        ->close()
        ->setAnd()
        ->groupBy('informationsystem_items.id')
        ;

взял нужные мне элементы, находящиеся в группе и дочерних подгруппах ИС. вывод групп сделал
->groupsMode('tree')

в ИС передал
->group(FALSE)

С ИЭ в этом случае все впорядке, но дерево ИГ выстроилось не правильное (для моих целей) - плоское в виде корневых групп ИС.
Когда делаю
->group($Informationsystem_Controller_Show->group)

дерево ИГ выстраивается нужное, но пропадают ИЭ, находящиеся в подгруппах.

Как мне получить и нужное дерево и нужные ИЭ?
#
Re: Контроллеры в клиентском разделе
Stepan0v писал(а):
3) Что если делать вывод прямо из базы на php?
Говнокод будет
Заказов не беру. Консультирую редко.
#
Re: Контроллеры в клиентском разделе
toasterec, у меня дедик, а не виртуал, неплохой, так что проблем с нагрузкой быть не должно Но хотелось бы разобраться именно с передачей массива идентификаторов всех групп.

Выбор всех id подгрупп делаю кодом Цитата:
Вывод товаров из текущей группы и подгрупп первого уровня текущей группы:
// Массив групп, из которых показывать товары
$aGroups = array($Shop_Controller_Show->group);

$oShop_Group_Main = Core_Entity::factory('Shop_Group', $Shop_Controller_Show->group);

// Массив подгрупп
$aShop_Groups = $oShop_Group_Main
->Shop_Groups
->findAll();

// У группы есть подгруппы
if (count($aShop_Groups))
{
foreach ($aShop_Groups as $oShop_Group)
{
$aGroups[] = $oShop_Group->id;
}
}

Все идентификаторы корректно попадают в массив. Основную, активную категорию, также закидываю в массив, т.е. в массиве - все подгруппы основной группы + она сама.

Но потом, при попытке передать данные контроллеру Цитата:
$Shop_Controller_Show
->shopItems()
->queryBuilder()
->where('shop_group_id', 'IN', $aGroups);

Возникают ошибки, которые я описала выше, т.е. не отображаются все равно все товары всех подкатегорий (только из основной категории). А при добавлении Цитата:
$Shop_Controller_Show->group(FALSE);
товары отображаются корректно (все), но при попытке вывести список подкатегорий основной категории, выдается список категорий из корня О___О - примерно так я выгляжу ))

P.S. Не могу поймать никак момент в типовой динамической странице, где нужные мне категории (активная + подкатегории) меняются на категории корня
#
Re: Re: Контроллеры в клиентском разделе
Kotoff, пока что в любом случае получается говнокод
#
Re: Контроллеры в клиентском разделе
woas,
Вы на верном пути, только нужно модифицировать xsl-шаблон чтобы он работал со всеми данными, и расставлял дерево групп в зависимости от тепереданного индефикатора ТекущаяГруппа

PS пишу кратко, на айпаде это делать не очень удобно
разработка сайтов, фирменных стилей, интерфейсов
#
Re: Re: Контроллеры в клиентском разделе
toasterec, так ведь оно же соберет элементы не со всех уровней, а только с двух: группы и подгруппы?
Но если есть третий уровень и далее - их элементы окажутся не охваченными.
#
Re: Контроллеры в клиентском разделе
Stepan0v,
Для пятой версии была рекурсивная  функция выбора всех дочерних групп, для шестой на форуме тоже что то писали, найти не могу
разработка сайтов, фирменных стилей, интерфейсов
#
Re: Контроллеры в клиентском разделе
toasterec, получилось-таки, правда, приходится в xml закидывать все группы

Цитата:
->groupsMode('all'


+ убрала $Shop_Controller_Show->group(FALSE);

А если их в магазине 100? А если 500? Или 1000? И еще товаров 10000, например XMLка будет нереально много весить
Авторизация