indirizzare le richieste di sitemap.xml al controller custom / azione
Per richieste dirette per / sitemap.xml a un controller personalizzato e di azione nel Zend Framework applicazione è sufficiente aggiungere il seguente nel Application.ini o alternative file di configurazione (ad esempio io uso navigation.ini):
resources.router.routes.sitemap.route = "sitemap.xml" resources.router.routes.sitemap.defaults.controller = indice resources.router.routes.sitemap.defaults.action = mappa del sito
Esempio di codice per l'output può essere visto attraverso la creazione di un ricorso presso il controller appropriato (per esempio la mia mappa del sito sta nel controller di indice, azione mappa del sito):
< php classe IndexController estende Zend_Controller_Action { / ** * Esegue il rendering di una mappa del sito sulla base di Zend_Navigation setup * / sitemapAction funzione pubblica () { echo $ this navigazione-> view-> () -> Mappa del sito (); $ Questo layout-> view-> () -> disableLayout (); $ This-> setNoRender _helper-> viewRenderer-> (true); } }
Sitemaps possono rapidamente e facilmente essere generati utilizzando Zend_Navigation , un grande veloce tutorial (e generalmente molto utile per tutorial Zend Framework) è Casts Zend - Creare dinamicamente un menu di una mappa del sito e pangrattato .


















































Una cosa che ho dimenticato di dire è che avrete anche bisogno di specificare il percorso standard per la tua sitemap, altrimenti tutti gli URL che puntino a / sitemap.xml se si utilizza Zend_Navigation_Page_Mvc (se sei fornitura URI non ci sarà un problema ).
Per esempio il mio ultimo progetto utilizza il seguente percorso:
; ==============================
; Risorse di 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 = "indice"
Resources.router.routes.www.chains.index.defaults.action = "indice"
resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
resources.router.routes.sitemap.route = "sitemap.xml"
resources.router.routes.sitemap.defaults.controller = indice
resources.router.routes.sitemap.defaults.action = mappa del sito
Quindi, a mio navigation.xml (o qualsiasi config si decide di utilizzare), sarà necessario specificare il percorso da utilizzare, ad esempio,
= Default.pro.pages.aboutUs.label "Company Profile"
default.pro.pages.aboutUs.module = "www"
default.pro.pages.aboutUs.controller = "chi siamo"
Default.pro.pages.aboutUs.action = "indice"
default.pro.pages.aboutUs.resource = "www_pages"
Default.pro.pages.aboutUs.route = "www-index"
[...] Una continuazione del mio ultimo post su Zend_Navigation, indirizzare le richieste di sitemap.xml al controller custom / azione, questo post è di circa dymnamically aggiungere pagine a un contenitore Zend_Navigation in fase di esecuzione / script [...]