के रूप में एक मेरे पिछले पोस्ट पर प्रति मॉड्यूल आधारित लेआउट सेटिंग्स के लिए Zend फ्रेमवर्क का पालन करने के लिए, मैं की आवश्यकता के लिए कोड को नवीनीकृत किया है तो कम से पहले विन्यास (नहीं है कि यह आवश्यक है कि आपके आवेदन विन्यास में कुछ लाइनें!).
जारी रखें पढ़ने 'मॉड्यूल लेआउट सेटिंग्स के प्रति Zend फ्रेमवर्क - अप का पालन करें' »
लेख , कम्प्यूटिंग , PHP , वेब प्रोग्रामिंग , Zend फ्रेमवर्क |
कार्रवाई , नियंत्रक , रूपरेखा , सहायक , लेआउट , मॉड्यूल , PHP , Zend Zend फ्रेमवर्क
मैं इस पोस्ट है जो कम विन्यास की आवश्यकता है है करने के लिए एक follow बनाया है, कृपया देखें Zend फ्रेमवर्क - मॉड्यूल के आधार लेआउट.
जब Zend फ्रेमवर्क का उपयोग के साथ लेआउट लिपियों प्रत्येक भाग के लिए मॉड्यूल, अपनी स्पष्ट है कि अगर आप एक ही आवेदन से विभिन्न (उप) साइटों को चला रहे हैं तुम जरूरी ही नहीं करना चाहती. मैं निम्नलिखित साइट संरचना के साथ जाने का फैसला किया:
/ आवेदन
/ नियंत्रकों
...
/ मॉडल
/ मॉड्यूल
/ डिफ़ॉल्ट
/ नियंत्रकों
लेआउट /
/ लिपियों
/ दृश्य
/ लिपियों
/ AnotherModule
...
/ लिपियों
समस्या की स्थापना था एक प्रति मॉड्यूल के आधार पर लेआउट लिपियों. जवाब एक कार्य हेल्पर का उपयोग के माध्यम से आया था. प्रति - मॉड्यूल के आधार पर लेआउट की स्थापना के तीन चरण होते हैं:
- 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>
* @ 2010/01/01 के बाद
* /
वर्ग Pro_Controller_Action_Helper_SetLayoutPath
Zend_Controller_Action_Helper_Abstract फैली
{
/ **
* मॉड्यूल पर आधारित लेआउट पथ समूह
* /
सार्वजनिक समारोह (preDispatch)
{
$ मॉड्यूल = $ इस -> getRequest () -> getModuleName ();
अगर (बूटस्ट्रैप $ = $ इस -> (getActionController)
-> GetInvokeArg ('बूटस्ट्रैप')) {
Config $ = $ bootstrap-> getOptions ();
अगर (isset [मॉड्यूल $] (config डॉलर ['संसाधनों'] ['लेआउट'] ['layoutPath'])) {
LayoutPath = $
$ Config [$ मॉड्यूल] ['संसाधनों'] ['लेआउट'] ['layoutPath'];
$ इस -> (getActionController)
-> GetHelper ('लेआउट')
- SetLayoutPath> (layoutPath $);
}
}
}
} - और अंत में कार्रवाई सहायक बूटस्ट्रैप:
...
/ **
* प्रति मॉड्यूल के आधार पर सेट लेआउट लिपियों
* /
संरक्षित समारोह (_initLayoutHelper)
{
$ इस -> बूटस्ट्रैप ('frontController');
लेआउट = $ Zend_Controller_Action_HelperBroker: addHelper (
नई Pro_Controller_Action_Helper_SetLayoutPath ());
}
...