как реализовать панировочные сухари с помощью навигации Zend


Каковы наилучшие методы/предложения/методы реализации макета для приложения ZendFramework с использованием Zend_Navigation? как и где лучше всего определить иерархию страниц?

Author: farzad, 2009-07-11

2 answers

Я сделал 2 поста на эту тему.

Http://blog.ekini.net/2009/05/25/zend-framework-making-the-built-in-breadcrumb-helper-work/

Http://blog.ekini.net/2009/06/10/zend-framework-navigation-and-breadcrumbs-with-an-xml-file-in-zf-18/

Оба взяты из опыта реального мира. Для меня XML-файл был проще для понимания.

 5
Author: wenbert, 2009-07-14 02:03:37

Получить панировочные сухари довольно просто:

  • зарегистрируйте свой объект 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"
...

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

 7
Author: Stefan Gehrig, 2009-07-11 09:12:06