Żądań do sitemap.xml do niestandardowych kontrolera / akcji

Przez Steven Lloyd Watkin , środa 06 styczeń 2010 00:13

W celu bezpośredniego żądania / sitemap.xml do niestandardowego kontrolera i akcji w Zend Framework aplikacji wystarczy dodać następujące w application.ini lub alternatywny plik konfiguracyjny (np. używam navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = index
 resources.router.routes.sitemap.defaults.action = mapa

Przykładowy kod do wyświetlania widać, tworząc działania odpowiedniego kontrolera (np. mój mapa leży w kontroler indeksu działania mapa):

 < php
 Klasa IndexController
     rozszerza Zend_Controller_Action
 {
     / **
      * Renders mapa strony na podstawie ustawień Zend_Navigation
      * /
     publicznych sitemapAction function ()
     {
    	 echo $ this-> view-> nawigacji () -> Mapa strony ();
    	 $ This-> view-> układ () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Sitemaps można szybko i łatwo być generowane przy użyciu Zend_Navigation , wielki szybkie tutorial (i ogólnie bardzo przydatne dla Zend Framework samouczki) jest Zend Odlewy - Dynamiczne tworzenie menu mapa i bułce tartej .

4 Responses to "żądań do sitemap.xml do niestandardowego kontrolera / akcji"

  1. Jedno zapomniałem wspomnieć, że będziesz musiał określić swój standard trasy na sitemap, inaczej wszystkie adresy będą wskazywać / sitemap.xml jeśli używasz Zend_Navigation_Page_Mvc (jeśli dostarczanie URI nie będzie problemu ).

    Na przykład mój najnowszy projekt wykorzystuje następujące trasy:

    ; ==============================
    ; Resource Routing
    ; ==============================
    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 = index
    resources.router.routes.sitemap.defaults.action = mapa

    Dlatego w moim navigation.xml (lub cokolwiek config użytkownik zdecyduje się użyć), musisz określić trasy do użytku, np.

    default.pro.pages.aboutUs.label = "O firmie"
    default.pro.pages.aboutUs.module = "www"
    default.pro.pages.aboutUs.controller = "o-nas"
    default.pro.pages.aboutUs.action = "index"
    default.pro.pages.aboutUs.resource = "www_pages"
    default.pro.pages.aboutUs.route = "www-index"

  2. [...] Kontynuacji na mój ostatni post o Zend_Navigation, wnioski trasy dla sitemap.xml do niestandardowego kontrolera / akcji, ten post jest o dymnamically dodawania stron do pojemnika Zend_Navigation przy starcie / script [...]

  3. Walter mówi:

    Mam poważne problemy, nie mogę go rozwiązać: (

    Mam router.ini

    resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
    resources.router.routes.sitemap.route = "sitemap.xml"
    resources.router.routes.sitemap.defaults.controller = index
    resources.router.routes.sitemap.defaults.action = mapa

    i bootstrap.php

    chronione _initRouter function ()
    {
    $ FrontController = Zend_Controller_Front:: getInstance ();
    $ Config = new Zend_Config_Ini (APPLICATION_PATH "/ config / router.ini.);
    $ Router = $ frontController-> getRouter ();
    $ Router-> addConfig ($ config "router");
    }

    i dostaję taki błąd:

    Informacje o wyjątku:

    Wiadomość: nieprawidłowy sterownik (sitemap.xml)

    Parametry żądania:

    array (
    "Administrator danych" => "sitemap.xml"
    "Działanie" => "Indeks",
    'Module' => 'default',
    )

    • Wydaje się, że tracisz kilka wpisów, spróbuj zaktualizować trasy do meczu:

      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-index"

Dodaj komentarz













Theme Panorama przez Themocracy

4 odwiedzających online
2 goście, 2 boty, 0 użytkowników
Max odwiedzających dziś: 22 na 07:58 UTC
W tym miesiącu: 52, 18-06-2011 03:11 UTC
W tym roku: 130 w 28-03-2011 22:40 UTC
Cały czas: 130 w 28-03-2011 22:40 UTC