Enrutar les sol licituds de sitemap.xml al controlador personalitzat / acció

Per Steven Lloyd Watkin , dimecres 6 gener 2010 00:13

Per tal de les sol.licituds directes d'/ sitemap.xml a un controlador del costum i l'acció en el Zend Framework aplicació només ha d'afegir el següent al seu fitxer de configuració application.ini o alternativa (per exemple, jo faig servir navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = índex de
 resources.router.routes.sitemap.defaults.action = mapa web

Codi d'exemple per a la sortida es pot veure mitjançant la creació d'una acció al controlador apropiat (per exemple el meu mapa és al controlador d'índex, l'acció mapa):

 < php
 classe IndexController
     s'estén Zend_Controller_Action
 {
     / **
      * Mostra un mapa basat en la configuració Zend_Navigation
      * /
     sitemapAction funció pública ()
     {
    	 echo $ this-> view-> de navegació () -> Mapa del lloc ();
    	 $ This-> view-> layout () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Sitemaps poden ràpida i fàcilment generar utilitzant Zend_Navigation , un gran tutorial ràpid (i en general molt útil per Zend Framework tutorials) és Zend guixos - la creació dinàmica d'un menú d'un mapa del lloc i el pa ratllat .

4 Respostes a "peticions de ruta per sitemap.xml al controlador personalitzat / acció"

  1. Una cosa que em vaig oblidar d'esmentar és que vostè també haurà d'especificar la ruta estàndard del seu mapa, en cas contrari totes les URL que apunti a / sitemap.xml si utilitza Zend_Navigation_Page_Mvc (si vostè és el subministrament d'URI no serà un problema ).

    Per exemple, el meu últim projecte utilitza la ruta següent:

    ; ==============================
    ; Recursos d'enrutament
    ; ==============================
    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 = índex de
    resources.router.routes.sitemap.defaults.action = mapa web

    Per tant, en la meva navigation.xml (o el que sigui de configuració que vostè decideixi utilitzar), haurà d'especificar la ruta a utilitzar, per exemple,

    default.pro.pages.aboutUs.label = "Perfil de l'empresa"
    default.pro.pages.aboutUs.module = "www"
    default.pro.pages.aboutUs.controller = "sobre nosaltres"
    default.pro.pages.aboutUs.action = "index"
    default.pro.pages.aboutUs.resource = "www_pages"
    default.pro.pages.aboutUs.route = "www-índex"

  2. [...] Una continuació del meu últim post sobre les sol licituds de Zend_Navigation ruta, per sitemap.xml al controlador personalitzat / acció, aquest post és sobre dymnamically afegir pàgines a un contenidor en temps d'execució Zend_Navigation / script [...]

  3. Walter diu:

    Tinc seriosos problemes, no ho puc resoldre: (

    Tinc router.ini

    resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
    resources.router.routes.sitemap.route = "sitemap.xml"
    resources.router.routes.sitemap.defaults.controller = índex de
    resources.router.routes.sitemap.defaults.action = mapa web

    i bootstrap.php

    funció protegida _initRouter ()
    {
    $ FrontController = Zend_Controller_Front:: getInstance ();
    $ Config = new Zend_Config_Ini (APPLICATION_PATH '/ config / router.ini.)
    $ Router = $ frontController-> getRouter ();
    $ Router-> addConfig ($ config, el "router");
    }

    i rebut aquest error:

    Excepció de la informació:

    Missatge: Invalid controller Specified (sitemap.xml)

    Paràmetres de la petició:

    array (
    'Controller' => 'sitemap.xml',
    'Action' => 'index',
    'Mòdul' => 'default',
    )

    • Sembla que t'estàs perdent un parell d'entrades, prova a actualitzar les seves rutes per a que coincideixi amb:

      resources.router.routes.sitemap.type = "Zend_Controller_Router_Route_Static"
      resources.router.routes.sitemap.route = "sitemap.xml"
      resources.router.routes.sitemap.controller = "index"
      resources.router.routes.sitemap.action = "mapa"
      resources.router.routes.sitemap.defaults.module = "www"
      resources.router.routes.sitemap.defaults.controller = "index"
      resources.router.routes.sitemap.defaults.action = "mapa"
      resources.router.routes.sitemap.defaults.route = "www-índex"

Deixa un comentari













Panorama Tema per Themocracy

3 visitants en línia ara
2 convidats, 1 bots, 0 membres
Max visitants d'avui: 23 a 08:39 UTC
Aquest mes: 52 a 2011.06.18 03:11 UTC
Aquest any: 130 en 2011.03.28 22:40 UTC
En total: 130 en 2011.03.28 22:40 UTC