как реализовать панировочные сухари с помощью навигации Zend
Каковы наилучшие методы/предложения/методы реализации макета для приложения ZendFramework с использованием Zend_Navigation? как и где лучше всего определить иерархию страниц?
2 answers
Я сделал 2 поста на эту тему.
Http://blog.ekini.net/2009/05/25/zend-framework-making-the-built-in-breadcrumb-helper-work/
Оба взяты из опыта реального мира. Для меня XML-файл был проще для понимания.
Получить панировочные сухари довольно просто:
- зарегистрируйте свой объект
Zend_Navigation
, созданный вами в начальной загрузке (или в каком-либо другом месте), вZend_Registry
с помощью ключаZend_Navigation
. Таким образом, объект будет захвачен всеми помощниками по просмотру навигации. - если вы используете новую загрузку в стиле
Zend_Application
, вы можете просто использовать ресурсZend_Application_Resource_Navigation
для настройки навигации. Просто установитеresources.navigation.storage.registry = true
в своей конфигурации. -
Затем вы можете просто
echo $this->navigation()->breadcrumbs()
В вашем представлении или макете сценарий.
Говоря о том, как определить иерархию страниц, я бы сказал, что если у вас есть какой-то меньший и более статичный сайт, вы можете просто определить страницы в своей конфигурации (при использовании нового Zend_Application
-подхода начальной загрузки):
resources.navigation.pages.home.label = "Home"
resources.navigation.pages.home.action = "index"
resources.navigation.pages.home.controller = "index"
resources.navigation.pages.login.label = "Login"
resources.navigation.pages.login.action = "login"
resources.navigation.pages.login.controller = "users"
resources.navigation.pages.users.label = "Users"
resources.navigation.pages.users.action = "list"
resources.navigation.pages.users.controller = "users"
resources.navigation.pages.users.pages.show.label = "Show"
resources.navigation.pages.users.pages.show.action = "show"
resources.navigation.pages.users.pages.show.controller = "users"
...
В качестве альтернативы вы можете использовать дополнительный файл конфигурации или построить иерархию страниц в плагине фронт-контроллера или помощнике действий, например, если у вас довольно большая структура сайта и вы не хотите создавать экземпляры вся карта сайта по каждому запросу. Таким образом, вы также можете вставлять динамические страницы, метки которых, например, динамически создаются на основе параметров запроса.