ومتابعة لآخر تقريري السابق على ضبط وحدة التخطيط في القائمة ل إطار زند ، لقد تم تحديث رمز لتكوين تتطلب كميات أقل من قبل ذلك (وليس أنه يتطلب أكثر من بضعة أسطر في تكوين التطبيق الخاص بك!).
مواصلة القراءة 'زند لكل إطار وحدة تخطيط إعدادات -- متابعة' »
لقد خلقت متابعة لهذا المنصب الذي يتطلب أقل التكوين ، يرجى الاطلاع على تخطيط وبناء وحدة -- الإطار زند .
عند استخدام إطار زند مع الوحدات ، واضح في أنه إذا كنت تقوم بتشغيل مختلفة (من الباطن) مواقع قبالة نفس التطبيق كنت لا تريد بالضرورة نفس تخطيط البرامج النصية لكل جزء. قررت أن أذهب مع بنية الموقع التالي :
/ التطبيق
/ تحكم
...
/ النماذج
/ وحدات
/ الافتراضي
/ تحكم
/ تخطيط
/ البرامج النصية
/ آراء
/ البرامج النصية
/ 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
/ **
* يضبط مسار التخطيط على أساس كل وحدة
*
* كاتب واحد ويد واتكن @ <lloyd@evilprofessor.co.uk>
* @ منذ 2010/01/01
* /
فئة Pro_Controller_Action_Helper_SetLayoutPath
يمتد Zend_Controller_Action_Helper_Abstract
{
/ **
* يضبط مسار التخطيط على أساس وحدة
* /
الجمهور preDispatch الدالة ()
{
$ الوحدة = دولار هذا -> getRequest () --> getModuleName () ؛
إذا دولار (= دولار هذا التمهيد -> getActionController ()
--> getInvokeArg ('التمهيد')) {
= $ $ التكوين التمهيد -> getOptions () ؛
اذا (isset ($ التكوين [$ وحدة] ['الموارد'] ['تخطيط'] ['layoutPath'])) {
layoutPath $ =
[وحدة $] $ التكوين ['الموارد'] ['تخطيط'] ['layoutPath'] ؛
دولار هذا -> getActionController ()
--> getHelper ('تخطيط')
--> setLayoutPath ($ layoutPath) ؛
}
}
}
} - وأخيرا boostrap المساعد العمل :
... / ** * يقوم بإعداد تخطيط البرامج النصية على أساس كل وحدة * / محمية _initLayoutHelper الدالة () {$ هذا -> التمهيد ('frontController') ؛ Zend_Controller_Action_HelperBroker = $ تخطيط : addHelper (جديد Pro_Controller_Action_Helper_SetLayoutPath ()) ؛}.. .