Как вставить страницу в контейнер Zend Navigation

В настоящее время я использую Zend_Navigation для создания меню из XML-файла, так что пока все хорошо, меню отображается правильно. Моя проблема в том, что мне нужно добавить страницы в определенное место в контейнере навигации. Пока что у меня есть:

$this->_navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH .
            '/configs/navigation.xml', 'nav');

        $this->_navContainer = new Zend_Navigation($this->_navContainerConfig);

        $this->_navContainer->findById('defaultindex')->addPage(array(
            'label'         => 'Open Prints',
            'module'        => 'default',
            'controller'    => 'artwork',
            'action'        => 'list',
            'params'        => array(
                'medtyp'        => 2),
            'resource'      => 'default:artwork',
            'privilege'     => 'list',
            'route'         => 'default'
        ));

Это просто добавляет подстраницу к идентификатору страницы "defaultindex", мне нужно добавить страницу после страницы "defaultindex".

Кто-нибудь знает, как этого добиться?

Большое спасибо заранее и счастливого Рождества всем,

Garry

1 ответ

Вы можете использовать метод addPage напрямую из Zend_Navigation_Container

$this->_navContainer->addPage(your_array);

Он добавит вашу страницу после всех страниц, уже находящихся в контейнере. Если вам нужен пользовательский порядок, вам нужно расширить Zend_Navigation_Container и добавить методы для перезаписи свойства $_index страниц в контейнере, чтобы отсортировать их в нужном вам порядке.

Другие вопросы по тегам