Laluan permintaan sitemap.xml untuk kawalan tersuai / tindakan
Dalam rangka permintaan langsung / sitemap.xml ke controller adat dan tindakan dalam anda Zend Framework aplikasi cukup tambah berikut dalam application.ini anda atau alternatif fail konfigurasi (misalnya saya menggunakan navigation.ini):
resources.router.routes.sitemap.route = "sitemap.xml" resources.router.routes.sitemap.defaults.controller = indeks resources.router.routes.sitemap.defaults.action = sitemap
Contoh kod untuk keluaran dapat dilihat dengan mencipta suatu tindakan di kawalan yang sesuai (contohnya sitemap saya terletak pada controller indeks, sitemap tindakan):
< php kelas IndexController meluas Zend_Controller_Action { / ** * Renders sebuah sitemap berdasarkan Zend_Navigation setup * / fungsi awam sitemapAction () { echo $ navigation pandangan ini-> -> () -> sitemap (); $ This paparan layout-> -> () -> disableLayout (); $ This setNoRender-> viewRenderer-> _helper-> (true); } }
Peta Situs dapat dengan cepat dan mudah dihasilkan menggunakan Zend_Navigation , yang besar cepat tutorial (dan umumnya sangat berguna untuk tutorial Zend Framework) adalah Zend Pemain - dinamik mencipta menu sitemap dan tepung roti .


















































Satu hal yang saya lupa untuk menyebutkan bahawa anda juga akan perlu menentukan laluan standard anda untuk sitemap anda, kalau tidak semua URL akan mengarah ke / sitemap.xml jika anda menggunakan Zend_Navigation_Page_Mvc (jika anda membekalkan URI tidak akan ada masalah ).
Misalnya projek terakhir saya menggunakan routing berikut:
; ==============================
; Sumber 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 = indeks
resources.router.routes.sitemap.defaults.action = sitemap
Oleh kerana itu dalam navigation.xml saya (atau apa pun config anda memutuskan untuk menggunakan), anda perlu menentukan routing untuk menggunakan, misalnya
default.pro.pages.aboutUs.label = "Profil Syarikat"
default.pro.pages.aboutUs.module = "www"
default.pro.pages.aboutUs.controller = "tentang-kita"
default.pro.pages.aboutUs.action = "index"
default.pro.pages.aboutUs.resource = "www_pages"
default.pro.pages.aboutUs.route = "www-index"
[...] Kelanjutan di posting terakhir saya tentang Zend_Navigation, permintaan Rute untuk sitemap.xml untuk kawalan tersuai / tindakan, posting ini adalah tentang dymnamically menambah halaman ke bekas Zend_Navigation saat runtime / script [...]
Aku punya masalah serius, aku tidak dapat mengatasinya: (
Saya telah router.ini
resources.router.routes.sitemap.type = "Zend_Controller_Router_Route"
resources.router.routes.sitemap.route = "sitemap.xml"
resources.router.routes.sitemap.defaults.controller = indeks
resources.router.routes.sitemap.defaults.action = sitemap
dan bootstrap.php
fungsi dilindungi _initRouter ()
{
$ FrontController = Zend_Controller_Front:: getInstance ();
$ Config = new Zend_Config_Ini (APPLICATION_PATH '/ config / router.ini'.);
$ Router = getRouter $ frontController-> ();
$ Router-> addConfig ($ config, 'router');
}
dan saya menerima kesalahan ini:
Pengecualian maklumat:
Message: Invalid controller yang ditentukan (sitemap.xml)
Permintaan Parameter:
array (
'Controller' 'sitemap.xml' =>,
'Action' 'indeks' =>,
'Modul' = 'default'>,
)
Nampaknya anda kehilangan beberapa entri, cubalah update laluan anda untuk mencocokkan:
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"