Żądań do sitemap.xml do niestandardowych kontrolera / akcji
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 .


















































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