Сообщения с тегами: layoutPath

Zend Framework для каждого модуля на основе параметров

По , в пятницу 1 января 2010 10:40 вечера

Я создал последующих на этот пост, который требует меньше конфигурации, см. модуль на основе макета - Zend Framework .

При использовании Zend Framework, при помощи модуля, его очевидным, что если вы работаете с различными (суб-) сайты с одного приложения не обязательно хотят того же, сценарии раскладка для каждой части. Я решил пойти со следующей структурой сайта:

  / Применение
     / Контроллеры
         ...
     / Модели
     / Модулей
         / По умолчанию
             / Контроллеры
             / Расположение
                 / Скрипты
             / Просмотров
                 / Скрипты
         / AnotherModule
             ...
     / Скрипты

Проблема создания макета скрипты для каждого модуля. Ответ пришел через использование действий помощника. Настройка раскладки на каждого модуля включает в себя три этапа:

  1. Application.ini (или аналогичные настройки конфигурации):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ модули / администратор / макеты / скрипты"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ модули / по умолчанию / макеты / скрипты"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ модулей / участников / макеты / скрипты"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ модули / филиала / макеты / скрипты" 
  2. Создайте действия Helper:
      <? PHP
     / **
      * Устанавливает расположение на пути каждого модуля
      *
      * @ Автор Ллойд Уоткин <lloyd@evilprofessor.co.uk>
      * @ С 2010-01-01
      * /
     Класс Pro_Controller_Action_Helper_SetLayoutPath
         расширяет Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Наборы расположение путь, основанный на модуле
          * /
         общественных preDispatch функции ()
         {
        	 Модуль $ = $ это-> GetRequest () -> getModuleName ();
    
    	     если ($ загрузки = $ это-> getActionController ()
    	                        -> GetInvokeArg ('загрузки')) {
    
    	         $ = $ Конфигурации загрузки-> getOptions ();
    
    	         если (Исеть ($ CONFIG [$ модуль] ['ресурсы'] ['схема'] ['layoutPath'])) {
    	             $ = LayoutPath
    	                  $ CONFIG [$ модуль] ['ресурсы'] ['схема'] ['layoutPath'];
    	             $ Это-> getActionController ()
    	                  -> GetHelper («расположение»)
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. И, наконец boostrap помощник действия:
      ...
         / **
          * Устанавливает расположение скриптов на каждого модуля
          * /
         защищенная функция _initLayoutHelper ()
    	 {
    	     $ Это-> загрузки ('FrontController');
    	     $ = Расположение Zend_Controller_Action_HelperBroker :: addHelper (
    	         новый Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












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

4 посетителей онлайн
3 гостей, 1 ботов, 0 пользователей
Макс посетителей сегодня: 10 в 1:53 утра UTC
В этом месяце: 40 в 23-05-2012 3:33 утра UTC
В этом году: 69 в 27-02-2012 09:56 UTC
За все время: 130 в 28-03-2011 10:40 вечера UTC