Enrutar les sol licituds de sitemap.xml al controlador personalitzat / acció
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 .


















































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