Ruta de les sol.licituds de sitemap.xml al controlador personalitzat / acció
Per tal de les sol licituds directes per / sitemap.xml a un controlador del costum i l'acció en el Zend Framework aplicació només ha d'afegir el següent a la seva application.ini o alternatives fitxer de configuració (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 del lloc
Exemple de codi per fer sortir es pot veure mitjançant la creació d'una acció al controlador adequat (per exemple, el meu mapa es troba al controlador d'índex, mapa d'acció):
< php classe IndexController s'estén Zend_Controller_Action { / ** * Representa un mapa basat en la configuració Zend_Navigation * / sitemapAction funció pública () { echo $ this-navegació-> Vista-> () -> Mapa web (); $ This-disseny-> Vista-> () -> disableLayout (); $ This-setNoRender> ViewRenderer-> _helper-> (true); } }
Sitemaps poden ràpida i fàcilment haver estat obtinguda mitjançant Zend_Navigation , un gran tutorial ràpid (i en general molt útil per als tutorials de Zend Framework) és guixos Zend - dinàmica de la creació d'un menú d'un mapa del lloc i el pa ratllat .


















































Una cosa que em vaig oblidar d'esmentar és que també haurà d'especificar la ruta estàndard del seu mapa, en cas contrari tots els 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 següent ruta:
; ==============================
; De 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 = "índex"
resources.router.routes.www.chains.index.defaults.action = "índex"
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 del lloc
Per tant en la meva navigation.xml (o el que sigui de configuració que 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 = "índex"
default.pro.pages.aboutUs.resource = "www_pages"
default.pro.pages.aboutUs.route = "www-índex"
[...] Una continuació del meu últim post sobre Zend_Navigation, les peticions de Ruta per sitemap.xml al controlador personalitzat / acció, aquest post és sobre dymnamically afegir pàgines a un contenidor Zend_Navigation en [...] temps d'execució d'script /
Tinc seriosos problemes, no ho puc resoldre: (
He 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 del lloc
i Bootstrap.php
_initRouter funció protegida ()
{
$ FrontController = Zend_Controller_Front:: getInstance ();
$ Config = new Zend_Config_Ini (APPLICATION_PATH '/ config / router.ini.);
router = $ $ getRouter FrontController-> ();
$ Router-> addConfig ($ config-router);
}
i rebut aquest error:
Excepció de la informació:
Missatge: Error de controlador especificat (sitemap.xml)
Sol.licitud de Paràmetres:
array (
'Controller' => 'sitemap.xml',
'Acció' 'índex' =>,
'Module' => 'per defecte',
)
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 = "índex"
resources.router.routes.sitemap.action = "mapa"
resources.router.routes.sitemap.defaults.module = "www"
resources.router.routes.sitemap.defaults.controller = "índex"
resources.router.routes.sitemap.defaults.action = "mapa"
resources.router.routes.sitemap.defaults.route = "www-índex"