encamiñar solicitudes de sitemap.xml para o controlador personalizado / acción

Por Watkin Steven Lloyd , mércores 6 de xaneiro de 2010 12:13

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 .

4 Responses to "encamiñar solicitudes para sitemap.xml para o controlador personalizado / acción"

  1. 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"

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

  3. Walter di:

    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"

Deixe unha resposta













Panorama Tema por Themocracy

7 visitantes en liña agora
4 persoas, 3 bots, 0 membros
Max visitantes hoxe: 16 ás 12:39 UTC
Este mes: 26 en 2011/07/05 12:35 UTC
Este ano: 130 en 28-03-2011 22:40 UTC
Todas as horas: 130 en 28-03-2011 10:40 UTC