Като продължение на предишния ми пост е на модул базирани настройки за оформление за Zend Framework, съм актуализиран код, за да изискват по-малко конфигурация от преди (не че това изисква повече, че няколко реда в конфигурацията на вашата кандидатура!).
Продължи четене "Zend Framework Per настройките на модула Layout - Follow Up" »
Статии , Computing , PHP , уеб програмиране , Zend Framework |
действие , контролер , рамка , помощник , оформление , модул , PHP , Zend , Zend Framework
Аз съм направил follow-на този пост, който изисква по-малко конфигурация, моля, вижте Модул Въз Layout - Zend Framework .
При използване на Zend рамка с модули, очевидно, че ако сте стартирали различни (под) сайтове разстояние същото заявление не е задължително да искат същите скриптове оформление за всяка част . Реших да отида със следната структура на сайта:
/ Приложение
/ Контролери
...
/ Модели
/ Модули
/ По подразбиране
/ Контролери
/ Оформление
/ Скриптове
/ Изгледи
/ Скриптове
/ AnotherModule
...
/ Скриптове
Проблемът е създаване на скриптове за оформление на модулен принцип. Отговорът дойде чрез използване на действие Helper. Създаване на оформления на модулен принцип включва три стъпки:
- 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 "/ модули / филиал / оформления / скриптове"
- Създаване на вашия помощник за действие:
<? PHP
/ **
* Задава оформлението пътя на модулен принцип
*
* @ Автор Лойд Watkin <lloyd@evilprofessor.co.uk>
* @ Тъй 01.01.2010
* /
клас Pro_Controller_Action_Helper_SetLayoutPath
разширява Zend_Controller_Action_Helper_Abstract
{
/ **
* Задава оформлението на път, на основата на модули
* /
публична функция preDispatch ()
{
$ Модул = $ това-> getRequest () -> getModuleName ();
ако ($ Bootstrap = $ това-> getActionController ()
-> GetInvokeArg (Bootstrap ")) {
$ Довереник = $ Bootstrap-> getOptions ();
ако (isset ($ конфиг [$ модул] ['ресурси'] ['оформление'] ['layoutPath'])) {
$ LayoutPath =
$ Конфиг [модул] ['ресурси'] ['оформление'] ['layoutPath "];
$ Това-> getActionController ()
-> GetHelper ("оформление")
-> SetLayoutPath ($ layoutPath);
}
}
}
} - И накрая boostrap помощник за действие:
...
/ **
* Задава оформлението скриптове на на модулен принцип
* /
Функция за защита _initLayoutHelper ()
{
$ Това-> Bootstrap ("frontController");
$ Оформление = Zend_Controller_Action_HelperBroker: addHelper (
ново Pro_Controller_Action_Helper_SetLayoutPath ());
}
...