Мислења обележани: layoutPath

Zend Framework per-Модул во местото на живеење

Со , петок 1 јануари, 2010 22:40

Јас направивме трае на овој пост која бара помалку конфигурација, ве молиме видете Модул Врз основа Распоред - Zend Framework .

Кога се користи рамка Zend со модули, неговата очигледна дека ако сте водење разни (суб-) сајтови надвор од иста апликација која не мора да сакаат исти распоред скрипти за секој дел. Решив да одам со следниве сајт структура:

  / Апликација
     / Контролери
         ...
     / Модели
     / Модули
         / Default
             / Контролери
             / Распоред
                 / Скрипти
             / Пати
                 / Скрипти
         / AnotherModule
             ...
     / Скрипти

Проблемот беше поставување на изгледот скрипти на на-модул основа. Одговорот дојде преку користење на Акционен помошник. Поставување на распоред на на-модул основа се состои од три чекори:

  1. Application.ini (или сличен конфигурација подесување):
     admin.resources.layout.layoutPath = APPLICATION_PATH "/ модули / admin / распоред / скрипти" default.resources.layout.layoutPath = APPLICATION_PATH "/ модули / default / распоред / скрипти" member.resources.layout.layoutPath = APPLICATION_PATH "/ модули / член / распоред / скрипти "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / модули / партнер / распоред / скрипти " 
  2. Направете ја вашата акција Helper:
      <? PHP
     / **
      * Поставување на изгледот патот на на-модул основа
      *
      * @ Author Лојд Watkin <lloyd@evilprofessor.co.uk>
      * @ Бидејќи 2010/1/1
      * /
     класа Pro_Controller_Action_Helper_SetLayoutPath
         се протега Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Колекции распоред патот врз основа на модул
          * /
         јавна функција preDispatch ()
         {
        	 $ Модул = $ ова-> getRequest () -> getModuleName ();
    
    	     if ($ подигање = $ ова-> getActionController ()
    	                        -> GetInvokeArg ("подигање")) {
    
    	         $ Config = $ подигање-> getOptions ();
    
    	         ако (isset ($ config [$ модул] ['ресурси'] ['распоред'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ модул] ['ресурси'] ['распоред'] ['layoutPath'];
    	             $ Ова-> getActionController ()
    	                  -> GetHelper ('распоред')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. И на крај boostrap акцијата помошник:
      ...
         / **
          * Поставува распоред скрипти на на-модул основа
          * /
         заштитени функција _initLayoutHelper ()
    	 {
    	     $ Ова-> подигање ('frontController');
    	     $ Распоред = Zend_Controller_Action_HelperBroker :: addHelper (
    	         нови Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












Панорама Тема страна Themocracy

7 посетители онлајн сега
5 гости, 2-ботови, 0 членови
Макс посетители денес: 48 во 02:40 часот UTC
Овој месец: 56 на 25-04-2012 08:41 часот UTC
Оваа година: 69 на 27-02-2012 09:56 часот UTC
Сите времиња: 130 на 28-03-2011 10:40 UTC