Катя
Новичок
Как сделать многоуровневое вложенное меню на сайте при помощи Zend Framework?
Засела вот за изучение Zend Framework !
Посмотрела по разным tutorial и мануалам, в итоге с типовым проектом, который автоматом генерит ZendStudio for Eclipse вроде разобралась...
Возник следующий вопрос, а как правильно сделать многоуровневое меню?
Поиск по форумам и туториалам привел к следующему решению:
1) В bootstrap.php добавить следующее
2) Создать контроллер /application/default/controllers/MenuController.php
3) Создать дополнительный /application/default/views/scripts/menu/index.phtml
4) В /application/default/layouts/main.phtml добавить
Все вроде как работает, но есть вопросы:
1) Как все-таки сделать многоуровневое меню? Куда поместить код по его отрисовке, куда html-блоки для выделенного/не выделенного пункта и т.п. Как выбирать текущий пункт меню в зависимости от страницы???
2) Как сделать, чтобы контроллер меню был чисто внутренним и не срабатывал по по http://test/menu/ ?
Засела вот за изучение Zend Framework !
Посмотрела по разным tutorial и мануалам, в итоге с типовым проектом, который автоматом генерит ZendStudio for Eclipse вроде разобралась...

Возник следующий вопрос, а как правильно сделать многоуровневое меню?
Поиск по форумам и туториалам привел к следующему решению:
1) В bootstrap.php добавить следующее
PHP:
$actionStack = new Zend_Controller_Plugin_ActionStack();
$request = new Zend_Controller_Request_Http();
//Задаем параметры запроса по которому нужно перейти
$request->setActionName('index');
$request->setControllerName('menu');
//Кладем в стек
$actionStack->pushStack($request);
//И регим плагин
$frontController->registerPlugin($actionStack);
PHP:
class MenuController extends Zend_Controller_Action {
/**
* The default action - show the home page
*/
public function indexAction() {
$this->render('index', 'menu');
}
}
PHP:
// Тут HTML-код меню
PHP:
<?php echo $this->layout()->menu; ?>
Все вроде как работает, но есть вопросы:
1) Как все-таки сделать многоуровневое меню? Куда поместить код по его отрисовке, куда html-блоки для выделенного/не выделенного пункта и т.п. Как выбирать текущий пункт меню в зависимости от страницы???
2) Как сделать, чтобы контроллер меню был чисто внутренним и не срабатывал по по http://test/menu/ ?