encamiñar solicitudes de sitemap.xml para o controlador personalizado / acción
Co fin de solicitudes directos de / sitemap.xml para un controlador de costume e acción na súa Zend Framework aplicación basta con engadir o seguinte no seu application.ini ou arquivo de configuración alternativo (por exemplo, eu uso navigation.ini):
resources.router.routes.sitemap.route = "sitemap.xml" Índice resources.router.routes.sitemap.defaults.controller = Sitemap resources.router.routes.sitemap.defaults.action =
Exemplo de código para a saída se pode ver a través da creación dunha acción no controlador adecuado (por exemplo o meu Sitemap reside no controlador de índice, a acción Sitemap):
< php IndexController clase esténdese Zend_Controller_Action { / ** * Procesa un Sitemap en base a configuración Zend_Navigation * / sitemapAction función pública () { echo $ this navegación-> view-> () -> Sitemap (); $ This-esquema-> view-> () -> disableLayout (); $ This-> setNoRender _helper-> ViewRenderer-> (true); } }
Sitemaps pode rapidamente e facilmente ser xerada mediante Zend_Navigation , un gran tutorial rápido (e xeralmente moi útil para Zend Framework tutoriais) é Zend casts - dinamicamente crear un menú de un sitemap e pan relado .


















































Unha cousa que eu esqueza mencionar é que tamén vai ter especificar a súa ruta por defecto para o mapa do sitio, se non, todos os URLs que ligan con / sitemap.xml se usa Zend_Navigation_Page_Mvc (se está introducindo URI non será un problema ).
Por exemplo, o meu máis recente proxecto usa o seguinte encamiñamento:
; ==============================
; Recursos de enrutamento
; ==============================
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"
Índice resources.router.routes.sitemap.defaults.controller =
Sitemap resources.router.routes.sitemap.defaults.action =
Polo tanto, na miña navigation.xml (ou calquera config decide usar), ten que especificar o reenvío a empregar, por exemplo,
default.pro.pages.aboutUs.label = "Perfil da Empresa"
default.pro.pages.aboutUs.module = "www"
default.pro.pages.aboutUs.controller = "sobre nós"
default.pro.pages.aboutUs.action = "index"
default.pro.pages.aboutUs.resource = "www_pages"
default.pro.pages.aboutUs.route = "índice www"
[...] Unha continuación do meu último post sobre Zend_Navigation, encamiñar solicitudes para sitemap.xml para o controlador personalizado / acción, este post é sobre dymnamically engadir páxinas a un recipiente Zend_Navigation en [...] Runtime / script
Eu teño problemas serios, eu non podo resolver-lo: (
Teño router.ini
resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
resources.router.routes.sitemap.route = "sitemap.xml"
Índice resources.router.routes.sitemap.defaults.controller =
Sitemap resources.router.routes.sitemap.defaults.action =
e bootstrap.php
_initRouter función protexida ()
{
$ FrontController = Zend_Controller_Front:: getInstance ();
$ Config = new Zend_Config_Ini (APPLICATION_PATH '/ config router.ini /'.);
$ Router = getRouter $ frontController-> ();
$ Encamiñador-> addConfig ($ config \ router ');
}
e eu recibín este erro:
Información de excepción:
Mensaxe: Invalid controller especificado (sitemap.xml)
Solicitude de Parámetros:
array (
'Controller' sitemap.xml "=>
'Acción' índice '=>
'Módulo' = 'default'>,
)
Parece que falta un par de entradas, proba actualizar as súas rutas ao xogo:
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 = "Sitemap"
resources.router.routes.sitemap.defaults.module = "www"
resources.router.routes.sitemap.defaults.controller = "index"
resources.router.routes.sitemap.defaults.action = "Sitemap"
resources.router.routes.sitemap.defaults.route = "índice www"