Kao nastavak na moj prethodni post na po modulu na temelju izgleda postavki za Zend Framework , ja sam obnovljeno kod zahtijevaju manje konfiguraciju onda prije (ne da je potrebno više od nekoliko redaka u vašoj prijavi konfiguraciji!).
Nastaviti čitanje 'Zend Framework po modulu Izgled Postavke - Follow Up' »
Članci , računarstva , PHP , web programiranje , Zend Framework |
djelovanje , regulator , okvir , pomagač , izgleda , modul , PHP , Zend , Zend Framework
Napravio sam Praćenje ovaj post koji zahtijeva manje konfiguraciju, pogledajte Modul temelju izgleda - Zend Framework .
Kada koristite Zend Framework sa modulima, svojim očito je da ako radite različite (sub-) mjesta s istim program koji nužno ne želite isti izgled skripte za svaki dio. Odlučio sam ići sa sljedećim site struktura:
/ Primjena
/ Kontroleri
...
/ Modela
/ Modula
/ Default
/ Kontroleri
/ Izgled
/ Skripte
/ Views
/ Skripte
/ AnotherModule
...
/ Skripte
Problem je bio postavljanje skripti na izgled po modulu osnovi. Odgovor je došao kroz korištenje Akcija pomagača. Postavljanje izgleda na po modulu osnovi uključuje tri koraka:
- Application.ini (ili sličnih konfiguracija setup):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / izgleda / skripte"
default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / izgleda / skripte"
member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / član / izgleda / skripte"
affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / izgleda / skripte"
- Kreirajte svoj Helper Akcija:
<? Php
/ **
* Postavlja izgled put na po modulu osnovi
*
* @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ 2010/01/01 od
* /
klasa Pro_Controller_Action_Helper_SetLayoutPath
proteže Zend_Controller_Action_Helper_Abstract
{
/ **
* Postavlja izgled put se temelji na modulu
* /
javnu funkciju preDispatch ()
{
$ Modul = $ this-> getRequest () -> getModuleName ();
if ($ dizanje = $ this-> getActionController ()
-> GetInvokeArg ('bootstrap')) {
$ Config = $ bootstrap-> getOptions ();
if (isset ($ config [$ module] ['resursa'] ['izgled'] ['layoutPath'])) {
$ LayoutPath =
$ Config [$ module] ['resursa'] ['izgled'] ['layoutPath'];
$ This-> getActionController ()
-> GetHelper ('izgled')
-> SetLayoutPath ($ layoutPath);
}
}
}
} - I na kraju boostrap pomagač akcije:
...
/ **
* Postavlja se izgled skripte na po modulu osnovi
* /
zaštićeni funkcija _initLayoutHelper ()
{
$ This-> dizanje ('frontController');
$ Izgleda = Zend_Controller_Action_HelperBroker:: addHelper (
Novi Pro_Controller_Action_Helper_SetLayoutPath ());
}
...