2009-07-11 8 views

Répondre

5

J'ai fait 2 messages sur ce sujet.

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/

Les deux sont des expériences du monde réel. Pour moi, le fichier XML était plus facile à comprendre.

+0

J'ai trouvé en utilisant le Zend_Config_XML et un fichier XML pour la navigation config est un moyen facile de le faire. Merci. – farzad

+0

remercie farzad. Bien que les INI soient plus courtes à écrire (pas de balises fermantes, etc.), je trouve le fichier XML plus simple à comprendre et à implémenter. – wenbert

7

Obtenir mie de pain est assez facile:

  • vous inscrire votre objet Zend_Navigation que vous avez créé dans votre bootstrap (ou un autre endroit) dans la Zend_Registry avec la clé Zend_Navigation. De cette façon, l'objet sera rattrapé par tous les assistants de vue de navigation. Si vous utilisez le nouveau bootstrapping Zend_Application, vous pouvez simplement utiliser la ressource Zend_Application_Resource_Navigation pour configurer la navigation. Réglez simplement resources.navigation.storage.registry = true dans votre configuration.
  • vous pouvez alors simplement

    echo $this->navigation()->breadcrumbs() 
    

    dans votre point de vue ou d'un script de mise en page.

Parler de la façon de définir la hiérarchie de la page, je dirais que si vous avez un site en quelque sorte plus petit et plus statique, vous pouvez simplement définir les pages de votre configuration (lors de l'utilisation de la nouvelle Zend_Application -bootstrapping- approche):

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" 
... 

Sinon, vous pouvez utiliser un fichier de configuration supplémentaire ou vous pourriez construire votre hiérarchie de page dans un plugin-contrôleur frontal ou une aide d'action, par exemple si vous disposez d'une structure de site relativement importante et que vous ne souhaitez pas instancier le sitemap complet sur chaque requête. De cette façon, vous pouvez également insérer des pages dynamiques dont les étiquettes sont créées dynamiquement en fonction des paramètres de la requête.

+0

Bonne réponse. Nous avons un plugin de contrôleur qui génère le conteneur de navigation pour l'ensemble du site et le met en cache pour les demandes suivantes. Je recommande vivement la solution de configuration pour les petits sites. –

Questions connexes