Route cereri pentru sitemap.xml la controlor personalizate / acţiune
În scopul de a cereri directe de / sitemap.xml la un controler de personalizat şi de acţiune în dumneavoastră Zend Framework aplicarea pur şi simplu adăugaţi următoarele în application.ini dumneavoastră sau alternative fişier de configurare (de exemplu, am folosi navigation.ini):
resources.router.routes.sitemap.route = "sitemap.xml" resources.router.routes.sitemap.defaults.controller = index resources.router.routes.sitemap.defaults.action = sitemap
Exemplu codul pentru scoate pot fi văzute prin crearea unei acţiuni în controller adecvat (de exemplu, Sitemap-ul meu se află în controller index, sitemap acţiune):
< php clasa IndexController extinde Zend_Controller_Action { / ** * Renders un Sitemap pe baza Zend_Navigation configurare * / sitemapAction funcţia publică () { echo $ acest navigare-> view-> () -> sitemap (); $ Acest aspect-> view-> () -> disableLayout (); $ Acest setNoRender-> _helper-> viewRenderer-> (true); } }
Sitemap-urile pot fi rapid şi uşor generate folosind Zend_Navigation , un mare tutorial rapid (şi, în general, foarte util pentru Zend tutoriale-cadru) este Zend Distributie - crearea dinamic un meniu un Sitemap şi pesmetul .


















































Un lucru am uitat să menţionez este că veţi avea nevoie, de asemenea, să specificaţi traseul standard pentru Sitemap-ul dvs., altfel toate URL-urile vor indica / sitemap.xml dacă folosiţi Zend_Navigation_Page_Mvc (dacă sunteţi furnizarea de URI-uri nu va fi o problema ).
De exemplu, cel mai recent proiect meu foloseste rutare următoarele:
; ==============================
; Resurse de rutare
; ==============================
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 /: actiune / *"
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 = sitemap
Prin urmare, în navigation.xml mea (sau orice config vă decideţi să utilizaţi), va trebui să specificaţi rutare de a folosi, de exemplu,
default.pro.pages.aboutUs.label = "Profil de companie"
default.pro.pages.aboutUs.module = "www"
default.pro.pages.aboutUs.controller = "-despre noi"
default.pro.pages.aboutUs.action = "index"
default.pro.pages.aboutUs.resource = "www_pages"
default.pro.pages.aboutUs.route = "www-index"
[...] O continuare pe ultimul meu post despre Zend_Navigation, cereri Route pentru sitemap.xml la controlor personalizate / acţiune, acest post este despre adăugarea dymnamically pagini într-un container Zend_Navigation la [...] runtime script /
Am probleme serioase, eu nu pot rezolva: (
Am 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 = sitemap
şi bootstrap.php
_initRouter funcţia protejate ()
{
$ FrontController = Zend_Controller_Front:: getInstance ();
$ Config = new Zend_Config_Ini (APPLICATION_PATH '/ config / router.ini ".);
$ Router = $ getRouter frontController-> ();
$ Router-> addConfig ($ config, "router");
}
şi am primit această eroare:
Excepţie informaţii:
Mesaj: controller specificat este invalid (sitemap.xml)
Cerere Parametrii:
array (
"Operator" => "sitemap.xml",
"Acţiune", "index" =>,
'Modulul' => 'default',
)
S-ar părea că sunteţi lipseşte o pereche de intrări, încercaţi să actualizaţi rute pentru a se potrivi:
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 = "www-index"