Trasa žádosti o sitemap.xml na vlastní řídicí / akce
Aby bylo možné žádosti o přímé / sitemap.xml na vlastní řadič a akce v Zend Framework aplikace stačí přidat následující v application.ini nebo alternativním konfiguračním souboru (např. já používám navigation.ini):
resources.router.routes.sitemap.route = "sitemap.xml" resources.router.routes.sitemap.defaults.controller = index resources.router.routes.sitemap.defaults.action = mapa stránek
Například kód pro výstup může být viděn tím, že vytvoří akce v příslušné ovladače (např. moje mapa stránek spočívá v řídící index, mapa webu akce):
< php Třída IndexController rozšiřuje Zend_Controller_Action { / ** * Poskytuje Sitemap na základě Zend_Navigation nastavení * / public function sitemapAction () { echo $ this-> Zobrazit-> Navigace () -> Mapa (); $ This-> Zobrazit-> Layout () -> disableLayout (); $ This-> _helper-> viewRenderer-> setNoRender (true); } }
Soubory Sitemap lze snadno a rychle generovat pomocí Zend_Navigation , skvělý rychlý tutorial (a obecně velmi užitečné návody Zend Framework) je Zend Odlitky - dynamicky vytváří menu Sitemap a strouhance .


















































Jedna věc, kterou jsem zapomněl zmínit, je, že budete muset zadat své standardní trasy pro Sitemap, jinak všechny adresy URL bude ukazovat na / sitemap.xml, pokud používáte Zend_Navigation_Page_Mvc (pokud jste URI dodává, že nebude problém ).
Například můj nejnovější projekt používá následující trasy:
; ==============================
; Zdrojů směrování
; ==============================
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 = ": regulátor /: Akční / *"
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 stránek
Proto se v mé navigation.xml (nebo cokoliv config se rozhodnete používat) budete muset zadat směrování použití, např.
default.pro.pages.aboutUs.label = "Profil"
default.pro.pages.aboutUs.module = "www"
default.pro.pages.aboutUs.controller = "-o nás"
default.pro.pages.aboutUs.action = "index"
default.pro.pages.aboutUs.resource = "www_pages"
default.pro.pages.aboutUs.route = "www-index"
[...] Pokračování na můj poslední příspěvek na Zend_Navigation, směrovat požadavky na sitemap.xml na vlastní řídicí / akci, tento příspěvek je o dymnamically Přidání stránek do Zend_Navigation kontejneru za běhu / script [...]
Mám vážné problémy, nemohu vyřešit: (
Mám 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 stránek
a bootstrap.php
funkce ochrany _initRouter ()
{
$ FrontController = Zend_Controller_Front: getInstance ();
$ Config = new Zend_Config_Ini (APPLICATION_PATH "/ config / router.ini.");
$ Router = $ frontController-> getRouter ();
$ Router-> addConfig ($ config, "router");
}
a dostávám tuto chybu:
Informace o výjimce:
Zpráva: byl zadán neplatný regulátor (sitemap.xml)
Poptávka Parametry:
array (
"Správce" => 'sitemap.xml "
"Akce '=>' index ',
"Modul '=>' default ',
)
Zdá se, že jste chybí několik položek, zkuste aktualizovat Vaše cesty k zápasu:
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"