Posts tagged: layoutPath

Zend Framework Per-Moduł oparte ustawienia

Przez , w piątek 01 stycznia 2010 10:40 pm

Utworzyłem na to stanowisko, które wymaga mniej konfiguracji, patrz Moduł Based układ - Zend Framework .

Podczas korzystania z Zend Framework z modułów, jego oczywiste, że jeśli używasz różnych (pod) strony od samej aplikacji nie koniecznie chcą te same skrypty układu dla każdej części. Postanowiłem iść z następującej struktury serwisu:

  / Application
     Wizyjnej
         ...
     / Modele
     / Modules
         / Default
             Wizyjnej
             / Układ
                 / Skrypty
             / Views
                 / Skrypty
         / AnotherModule
             ...
     / Skrypty

Problem tworzenia skryptów układu na podstawie per-modułu. Odpowiedź przyszła za pomocą Helper działania. Konfigurowanie układów na podstawie za moduł obejmuje trzy etapy:

  1. Application.ini (lub podobny setup konfiguracji):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / layouty / scripts"
     affiliate.resources.layout.layoutPath znaku = APPLICATION_PATH "/ modules / partnerskie / layouty / scripts" 
  2. Stwórz swój Helper działania:
      <? Php
     / **
      * Ustawia ścieżkę układu na podstawie za moduł
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Od 2010-01-01
      * /
     klasa Pro_Controller_Action_Helper_SetLayoutPath
         rozszerza Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Układ Zestawy ścieżka oparta na module
          * /
         publicznych preDispatch function ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['Zasoby'] ['układ'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['Zasoby'] ['układ'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("układ")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. I wreszcie boostrap pomocnika działania:
      ...
         / **
          * Ustawia skrypty układu na podstawie za moduł
          * /
         chronione funkcja _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ("FrontController ');
    	     $ Layout = Zend_Controller_Action_HelperBroker :: addHelper (
    	         nowy Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












Theme Panorama przez Themocracy

4 użytkowników online teraz
4 gości, 0 botów, 0 użytkowników
Odwiedzających Max dzisiaj: 45 na 05:22 UTC
W tym miesiącu: 45 w 24-04-2012 17:22 UTC
W tym roku: 69 w 27-02-2012 09:56 UTC
Cały czas: 130 w 28-03-2011 10:40 UTC