Si të ndjekin deri në postin tim mëparshme mbi parametrat bazë modul në layout për Zend Kornizë , unë e kam updated kodin për të kërkuar konfigurimin më pak pastaj para (jo se e nevojshme më shumë se disa rreshta në konfigurimin e aplikimit!).
VAZHDIM 'Kornizë Zend Per Settings Layout Moduleve - Follow Up' leximin »
Artikuj , Computing , PHP , Web Programming , Zend Kornizë |
veprim , kontrollues , korniza , ndihmëtar , faqosje , moduli , PHP , Zend , Zend Kornizë
Unë kam krijuar një follow për këtë post që kërkon më pak konfigurim, ju lutem shikoni Layout Module Based - Zend Kornizë .
Kur përdorni kuadrin Zend me module, të dukshme e tij se në qoftë se ju xhironi ndryshme (sub-) faqet off të njëjtën kërkesë ju nuk shprehin domosdoshmërisht duan të njëjtat Scripts paraqitjen për çdo pjesë. Unë vendosa të shkoj me strukturën e faqes e mëposhtme:
/ Application
/ Kontrolluesit
...
/ Modele
/ Module
/ Default
/ Kontrolluesit
/ Faqosja
/ Scripts
/ Views
/ Scripts
/ AnotherModule
...
/ Scripts
Problemi u ngritjen Scripts paraqitjen në një bazë per-modul. Përgjigja erdhi përmes përdorimit të një Helper Veprimit. Ngritja Layouts në një bazë per-modul përfshin tre hapa:
- Application.ini (apo organizim të ngjashme konfigurimit):
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 / anëtar / Layouts / scripts"
affiliate.resources.layout.layoutPath = Hap APPLICATION_PATH "/ modules / Filialin / Layouts / scripts"
- Krijo Helper tuaj të Veprimit:
<? Php
/ **
* Përcakton shtegun e layout në një bazë per-modul
*
* @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Prej 2010-01-01
* /
klasë Pro_Controller_Action_Helper_SetLayoutPath
shtrihet Zend_Controller_Action_Helper_Abstract
{
/ **
* Vë rruga paraqitjen bazuar në modulin
* /
preDispatch publik funksion ()
{
$ Moduli = $ this-> getRequest () -> getModuleName ();
if ($ bootstrap = $ this-> getActionController ()
-> GetInvokeArg ('bootstrap')) {
$ Config = $ bootstrap-> getOptions ();
if (isset ($ config [$ modul] ['burime'] ['faqosje'] ['layoutPath'])) {
$ LayoutPath =
[Moduli $] $ config ['burime'] ['paraqitjen'] ['layoutPath'];
$ Kjo-> getActionController ()
-> GetHelper ('faqosje')
-> SetLayoutPath ($ layoutPath);
}
}
}
} - Dhe së fundi boostrap e ndihmëtar të veprimit:
...
/ **
* Vë up Scripts paraqitjen në një bazë per-modul
* /
mbrojtur funksion _initLayoutHelper ()
{
$ Kjo-> bootstrap ('frontController');
$ Layout = Zend_Controller_Action_HelperBroker :: addHelper (
ri Pro_Controller_Action_Helper_SetLayoutPath ());
}
...