Post tag: layoutPath

Zend Framework Per-Module na nakabatay sa mga setting ng

, Biyernes 1st Enero 2010 22:40

Ginawa ko ang followup ng sa post na ito kung saan ay nangangailangan ng mas kaunting configuration, mangyaring tingnan ang Module Based Layout - Zend Framework .

Kapag gamit ang zend framework sa module, nito halata na kung ikaw ay nagpapatakbo ng mga iba't-ibang (sub-) site off ang parehong na application ay hindi mo kinakailangang gusto ang parehong mga script ng layout para sa bawat bahagi. Nagpasya kong pumunta sa mga sumusunod na istraktura ng site:

  / Application
     / Controllers
         ...
     / Modelo
     / Module
         / Default
             / Controllers
             / Layout
                 / Script
             / View
                 / Script
         / AnotherModule
             ...
     / Script

Ang problema ay na-set up ang mga script ng layout sa isang per-module na batayan. Sagot ang dumating sa pamamagitan ng paggamit ng isang Action Helper. Pagse-set up ang layout sa isang per-module na batayan ay nagsasangkot ng tatlong hakbang:

  1. Application.ini (o katulad configuration setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ module / admin / layout / script"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ module / default / layout / script"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ module / miyembro / layout / script"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ module / affiliate / layout / script" 
  2. Lumikha ng iyong Aksyon Helper:
      <? Php
     / **
      * Itinatakda ang landas ng layout sa isang per-module na batayan
      *
      * @ May-akda ng Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Dahil 2010/01/01
      * /
     klase Pro_Controller_Action_Helper_SetLayoutPath
         umaabot Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Sets landas ng layout na batay sa module
          * /
         preDispatch ng pampublikong function na ()
         {
        	 $ Module = $ ito-> getRequest () -> getModuleName ();
    
    	     kung ($ bootstrap = $ ito-> getActionController ()
    	                        -> GetInvokeArg ('sa bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['resources'] ['layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['resources'] ['layout'] ['layoutPath'];
    	             $ Ito-> getActionController ()
    	                  -> GetHelper ('layout')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. At bilang wakas boostrap aksyon helper:
      ...
         / **
          * Sets script ng layout sa isang per-module na batayan
          * /
         Mga protektadong function na _initLayoutHelper ()
    	 {
    	     $ Ito-> ng bootstrap (ang 'frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker ang :: addHelper (
    	         ng bagong Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












Panorama Tema sa pamamagitan ng Themocracy

6 mga bisita sa online ngayon
5 mga bisita, 1 bot, 0 miyembro
Max mga bisita ngayon: 14 sa 08:21 am UTC
Sa buwang ito: 56 sa 25-04-2012 08:41 am UTC
Ito taon: 69 sa 27-02-2012 09:56 am UTC
Lahat ng oras: 130 sa 28-03-2011 10:40 pm UTC