Acheminer les demandes de sitemap.xml au contrôleur personnalisé / action

Par Steven Lloyd Watkin , mercredi 6 Janvier 2010 00h13

Afin de demandes directes de / sitemap.xml à un contrôleur de la coutume et l'action dans votre Zend Framework application il suffit d'ajouter ce qui suit dans votre application.ini ou de remplacement du fichier de configuration (par exemple, j'utilise navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = indice
 resources.router.routes.sitemap.defaults.action = sitemap

Exemple de code pour la sortie peut être vu par la création d'une action dans le contrôleur approprié (par exemple, mon sitemap réside dans le contrôleur index, plan du site d'action):

 < php
 classe IndexController
     extends Zend_Controller_Action
 {
     / **
      * Rend un plan du site repose sur Zend_Navigation configuration
      * /
     sitemapAction fonction publique ()
     {
    	 echo $ cette navigation-> view-> () -> plan du site ();
    	 $ This layout-> view-> () -> disableLayout ();
    	 $ This-> setNoRender _helper-> viewRenderer-> (true);
     }
 }

Sitemaps peut rapidement et facilement être générés en utilisant Zend_Navigation , un grand tutoriel rapide (et généralement très utile pour les tutoriels Zend Framework) est Casts Zend - dynamiquement la création d'un menu, un plan du site et la chapelure .

2 Responses to "Acheminer les demandes de sitemap.xml au contrôleur personnalisé / action"

  1. Une chose que j'ai oublié de mentionner, c'est que vous aurez également besoin de préciser votre itinéraire standard de votre sitemap, sinon toutes les URL des / sitemap.xml si vous utilisez Zend_Navigation_Page_Mvc (si vous fournissez des URI il ne sera pas un problème ).

    Par exemple, mon dernier projet utilise le routage suivants:

    ; ==============================
    ; Ressources de routage
    ; ==============================
    resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname"
    resources.router.routes.www.route = ": module.example.com"
    resources.router.routes.www.defaults.module = "default"
    resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route"
    resources.router.routes.www.chains.index.route = ": controller /: action / *"
    resources.router.routes.www.chains.index.defaults.controller = "index"
    resources.router.routes.www.chains.index.defaults.action = "index"
    resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
    resources.router.routes.sitemap.route = "sitemap.xml"
    resources.router.routes.sitemap.defaults.controller = indice
    resources.router.routes.sitemap.defaults.action = sitemap

    C'est pourquoi dans mon navigation.xml (ou n'importe quel config vous décidez d'utiliser), vous aurez besoin de spécifier le routage à utiliser, par exemple

    default.pro.pages.aboutUs.label = "Profil de l'entreprise"
    default.pro.pages.aboutUs.module = "www"
    default.pro.pages.aboutUs.controller = "Qui sommes-nous"
    default.pro.pages.aboutUs.action = "index"
    default.pro.pages.aboutUs.resource = "www_pages"
    default.pro.pages.aboutUs.route = "www-index"

  2. [...] La poursuite sur mon dernier billet sur Zend_Navigation, les demandes de route pour sitemap.xml au contrôleur personnalisé / action, ce poste est d'environ dymnamically ajouter des pages à un conteneur Zend_Navigation à [...] l'exécution du script /

Laisser un commentaire













Thème par Panorama Themocracy

4 visiteurs en ligne dès maintenant
2 personnes, 2 bots, 0 membres
Maximum de visiteurs aujourd'hui: 14 à 12 heures 11 UTC
Ce mois-ci: 26 au 05/07/2011 00:35 UTC
Cette année: 130 à 28-03-2011 10:40 pm UTC
Tous les temps: 130 à 28-03-2011 10:40 pm UTC