Posts tagged: layoutPath

Zend Rangka Kerja Per-Modul tetapan berasaskan

Oleh , Jumaat 1 Januari 2010 22:40

Saya telah membuat susulan untuk jawatan ini yang memerlukan kurang konfigurasi, sila lihat Modul Berasaskan Layout - Rangka Kerja Zend .

Apabila menggunakan rangka kerja zend dengan modul, jelas bahawa jika anda menjalankan pelbagai (sub-) laman web di luar permohonan yang sama anda tidak semestinya mahu yang sama skrip reka letak untuk setiap bahagian. Saya memutuskan untuk pergi dengan struktur laman web berikut:

  / Permohonan
     / Pengawal
         ...
     / Model
     / Modul
         / Default
             / Pengawal
             / Susun atur
                 / Skrip
             / Pandangan
                 / Skrip
         / AnotherModule
             ...
     / Skrip

Masalah itu telah menubuhkan skrip susun atur atas dasar per-modul. Jawapan yang diterima adalah melalui penggunaan Pembantu Tindakan. Menubuhkan susun atur atas dasar per-modul melibatkan tiga langkah:

  1. Application.ini (atau konfigurasi setup yang serupa):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modul / admin / susun atur / skrip"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / susun atur / skrip"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / ahli / susun atur / skrip"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modul / affiliate / susun atur / skrip" 
  2. Buat Pembantu Tindakan anda:
      <? Php
     / **
      * Menetapkan laluan susun atur atas dasar per-modul
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Sejak 2010/01/01
      * /
     kelas Pro_Controller_Action_Helper_SetLayoutPath
         memanjangkan Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Set susun atur jalan berdasarkan modul
          * /
         awam fungsi preDispatch ()
         {
        	 $ Modul = $ this-> GetRequest () -> getModuleName ();
    
    	     jika ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         jika (isset ($ config [$ modul] ['sumber'] ['layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  [Modul $] $ config ['sumber'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('layout')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Dan akhir sekali boostrap penolong tindakan:
      ...
         / **
          * Set skrip susun atur atas dasar per-modul
          * /
         dilindungi fungsi _initLayoutHelper ()
    	 {
    	     $ Ini-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker :: addHelper (
    	         di baru Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












Tema Panorama oleh Themocracy

5 pelawat online sekarang
1 tetamu, 4 bots, 0 ahli
Max pelawat hari ini: 16 pada 07:36 am UTC
Bulan ini: 16 di 2012/1/5 01:02 pm UTC
Tahun ini: 69 pada 27-02-2012 09:56 am UTC
Semua masa: 130 pada 28-03-2011 10:40 pm UTC