Laluan permintaan sitemap.xml untuk kawalan tersuai / tindakan

Dengan Watkin Lloyd Steven , Rabu 6 Januari 2010 00:13

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 .

4 Responses to "permintaan Rute untuk sitemap.xml untuk kawalan tersuai / tindakan"

  1. 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"

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

  3. Walter berkata:

    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"

Tinggalkan Balasan













Panorama Tema oleh Themocracy

8 tetamu online sekarang
5 tetamu, 3 bots, 0 ahli
Max pengunjung hari ini: 17 jam 12:28 am UTC
Bulan ini: 26 jam 2011/07/05 00:35 UTC
Tahun ini: 130 pada 28-03-2011 10:40 UTC
Sepanjang masa: 130 pada 28-03-2011 10:40 UTC