encaminhar pedidos de sitemap.xml para o controlador personalizado / ação

Por Watkin Steven Lloyd , quarta-feira 6 de janeiro de 2010 12:13

A fim de pedidos directos de / sitemap.xml para um controlador de costume e ação em sua Zend Framework aplicativo basta adicionar o seguinte no seu application.ini ou arquivo de configuração 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 pode ser visto através da criação de uma acção no controlador adequado (por exemplo o meu sitemap reside no controlador de índice, a ação sitemap):

 < php
 IndexController classe
     estende Zend_Controller_Action
 {
     / **
      * Processa um Sitemap com base em configuração Zend_Navigation
      * /
     sitemapAction função pública ()
     {
    	 echo $ this navegação-> view-> () -> sitemap ();
    	 $ This-layout-> view-> () -> disableLayout ();
    	 $ This-> setNoRender _helper-> ViewRenderer-> (true);
     }
 }

Sitemaps pode rapidamente e facilmente ser gerada usando Zend_Navigation , um grande tutorial rápido (e geralmente muito útil para Zend Framework tutoriais) é Zend Casts - Dinamicamente criar um menu de um sitemap e pão ralado .

2 Respostas para "encaminhar pedidos para sitemap.xml para o controlador personalizado / acção"

  1. Uma coisa que eu esqueci de mencionar é que você também vai precisar especificar sua rota padrão para o mapa do site, caso contrário, todos os URLs que apontam para / sitemap.xml se você usar Zend_Navigation_Page_Mvc (se você estiver fornecendo URIs não será um problema ).

    Por exemplo, o meu mais recente projeto usa o seguinte encaminhamento:

    ; ==============================
    ; Recursos de roteamento
    ; ==============================
    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 =

    Portanto, em minha navigation.xml (ou qualquer config você decidir usar), você precisa especificar o encaminhamento a ser usado, 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. [...] Uma continuação do meu último post sobre Zend_Navigation, encaminhar pedidos para sitemap.xml para o controlador personalizado / acção, este post é sobre dymnamically adicionar páginas a um recipiente Zend_Navigation em [...] runtime / script

Deixe uma resposta













Panorama Tema por Themocracy

3 visitantes online agora
2 visitantes, 1 bots, 0 membros
Max visitantes hoje: 17 às 20:54 UTC
Este mês: 26 em 2011/07/05 12:35 UTC
Este ano: 130 em 28-03-2011 22:40 UTC
Todos os tempos: 130 em 28-03-2011 10:40 UTC