Вывод второго уровня меню отдельно от первого

#
Вывод второго уровня меню отдельно от первого
Имеется такая структура меню:

Автомобили
--Легковые
--Грузовые
--Спортивные
Самолеты
--Гражданские
--Военные
--Промышленные

Когда находимся в разделе "Автомобили" и его подразделах, нужно чтобы в заданном месте выводился второй уровень меню (Легковые, Грузовые, Спортивные). То же самое и с разделом "Самолеты".
Подскажите, пожалуйста, как можно это реализовать?
Модератор
#
Re: Вывод второго уровня меню отдельно от первого
В контроллер показа передать ID текущего узла структуры в качестве родителя.
http://www.hostcms.ru/api6/classes/Structure_Controller_Show.html
$Structure_Controller_Show
        ->parentId(CURRENT_STRUCTURE_ID)
        ->show();
#
Re: Вывод второго уровня меню отдельно от первого
Да, я примерно так и делал, только подставлял конкретное значение CURRENT_STRUCTURE_ID (не догадался переменную написать). При указании ID все работает как надо, но в таком случае для каждой страницы нужно отдельный макет создавать и указывать ID корневого радела.

В таком варианте:
$Structure_Controller_Show
        ->parentId(CURRENT_STRUCTURE_ID)
        ->show();

В разделе "Автомобили" подразделы (Легковые, Грузовые, Спортивные) выводятся нормально. Если же перейти в подраздел "Легковые", то ничего не выводится, а нужно, чтобы выводился список подразделов.
Можно ли как-то сделать все в одном макете или нужно все-таки разные макеты создавать?
Модератор
#
Re: Вывод второго уровня меню отдельно от первого
artemluzin писал(а):
Если же перейти в подраздел "Легковые", то ничего не выводится, а нужно, чтобы выводился список подразделов.

А у раздела "Легковые" есть подразделы в структуре? Если нет, то и выводить то собственно нечего.
#
Re: Вывод второго уровня меню отдельно от первого
Структура меню вот такая:

Автомобили
--Легковые
--Грузовые
--Спортивные
Самолеты
--Гражданские
--Военные
--Промышленные

Когда находимся в подразделе "Легковые", должны выводится подразделы корневого раздела "Автомобили", а именно: Легковые, Грузовые, Спортивные.
Модератор
#
Re: Вывод второго уровня меню отдельно от первого
$oStructure = Core_Entity::factory('Structure', CURRENT_STRUCTURE_ID);

while ($oStructure->parent_id)
{
   $oStructure = $oStructure->getParent();
}

$Structure_Controller_Show
   ->parentId($oStructure->id)
   ->show();
#
Re: Вывод второго уровня меню отдельно от первого
Благодарю за помощь!
Все работает как задумывалось.
Модератор
#
Re: Вывод второго уровня меню отдельно от первого
Пожалуйста.
#
Re: Вывод второго уровня меню отдельно от первого
Покажите, пожалуйста, весь код, от <?php ... и до ... ?>
www.dsaleks.ru - создание сайтов и интернет-магазинов
Модератор
#
Re: Вывод второго уровня меню отдельно от первого
DS Aleks,
в шестом сообщении готовый код, сам контроллер структуры и настройки остаются у Вас как и были.
Авторизация