إضافة إلى صفحات ديناميكية Zend_Navigation حاوية في وقت التشغيل
في استمرار على آخر مشاركة لي حول Zend_Navigation ، لتوجيه طلبات إلى وحدة تحكم مخصصة : sitemap.xml / العمل ، وهذا المنصب هو حول إضافة صفحات dymnamically إلى حاوية في Zend_Navigation / تنفيذ البرنامج النصي وقت التشغيل.
بكل طيبة وجيدة تحديد صفحاتك في رسائل كتبها هذا المؤلف أو أكس الملف ولكن عند نقطة ما كنت ستكون لدينا تغيير في صفحات موقعك التي تريد كجزء من خريطة الموقع ، القائمة ، تضمين أو التفصيلي ليكون في درب الخاص بك. لذا ما يتعين علينا القيام به هو إضافة صفحات إلى حاوية Zend_Navigation لدينا في وقت التشغيل. ومن أمثلة لهذا يكون في إضافة بنود الأخبار ، بلوق وظيفة ، أو تعليقات صفحة ، الخ.
في هذا المثال انا ذاهب لإضافة بعض الوظائف إلى أخبار بلدي رسائل كتبها هذا المؤلف تعريف ثابت التكوين. للحصول على تكوينات صفحتي بوست لقد استعملت فئة التي ترجع صفيف في الشكل التالي :
pagesToAdd $ = صفيف ( 0 => مجموعة ( 'تسمية' قصة => 'أخبار وهمية # 5...'، 'وحدة' => 'على شبكة الاتصالات العالمية ، 'الطريق' => 'فهرس شبكة الاتصالات العالمية ، 'العمل' 'عرض' => ، 'تحكم' الأخبار '=> ، 'params' => مجموعة ( 'معرف' => '5وهمية الأخبار طوابق -- 5') ) ، 1 => مجموعة (/ * * المزيد من التفاصيل صفحة /) ، (؛)
كما ستلاحظ أن وظيفة عاد صفيف التي ترد في المصفوفات التي تشكل التكوين صفائف لZend_Navigation_Page_Mvc. لذلك ، يمكن بواسطة حلقات على صفحات مجموعة Zend_Navigation الجديدة التي تم إنشاؤها من الصفيف التكوين. والشيء التالي القيام به كجزء من الحلقة هو لإضافة الصفحات في الموضع الصحيح (بدلا من ذلك يمكن إضافة صفحات بكميات كبيرة باستخدام -- addPages> الأسلوب ()).
للقيام بذلك ، حدد موقع الصفحة التي ترغب في إضافة الصفحات الفرعية وإضافة إلى مجرد صفحات. في هذه الحالة ولقد استخدم التعليمات البرمجية التالية للعثور على صفحتي :
('آخر الأخبار' تسمية '،) $ حاوية> findOneBy --> addPage ($ صفحة) ؛ initialisation بلدي الملاحة العامة في التمهيد لذلك تبدو مثل هذا :
/ ** * تستخدم لمعالجة على مستوى عال الملاحة * Zend_Navigation * @ عودة * / _initNavigation المحمية وظيفة () { دولار هذا> - التمهيد ('تصميم') ؛ تخطيط $ = دولار هذا getResource -> ('تخطيط') ؛ عرض $ = $ getView تخطيط -> () ؛ $ = Zend_Config_Ini التكوين الجديد ( APPLICATION_PATH. '/ التكوينات / navigation.ini ، APPLICATION_ENV) ؛ $ = Zend_Navigation حاوية جديدة ($ الافتراضي بين التكوين>) ؛ / / إضافة الآن آخر التقارير الإخبارية 25 $ = أخبار أخبار جديدة () ؛ $ = $ getNavigationEntries صفحات الأخبار> () ؛ foreach ($ صفحات ك $ صفحة) { $ = صفحة جديدة Zend_Navigation_Page_Mvc ($ صفحة) ؛ ('آخر الأخبار' تسمية '،) $ حاوية> findOneBy --> addPage ($ صفحة) ؛ } $ مشاهدة -> الملاحة ($ حاوية) ؛ }
على الشيء الذي يحتاج إلى إضافته هو نوع من التخزين المؤقت (باستخدام Zend_Cache يفترض ؛)) وإلا فإن هذا سيكون مكلفا للغاية مع كل تحميل الصفحة.


















































هذا فقط ما كنت أبحث عنه -- وذلك بفضل لمثال واضح حقا. هتاف. ز