اضافه کردن صفحات به صورت پویا زمان اجرا Zend_Navigation به ظرف در
در ادامه در آخرین پست من در مورد Zend_Navigation ، درخواست مسیر برای sitemap.xml به کنترل سفارشی / اقدام ، این پست در مورد dymnamically اضافه کردن صفحات به ظرف Zend_Navigation در زمان اجرا اعدام اسکریپت /.
آن همه به خوبی و خوب مورد نظر خود را در صفحات این فایل یا کاپرفیلد فایل اما در برخی از نقطه شما قصد داشته در حال تغییر در صفحات سایت خود را که می خواهید به عنوان بخشی از منو ، نقشه سایت ، و یا به خرده نان خود را در دنباله می شود گنجانده شده است. بنابراین آنچه ما نیاز داریم برای انجام شده است اضافه کردن صفحات به ظرف Zend_Navigation ما در زمان اجرا. مثال برای این که در اضافه کردن اخبار ، پیام های وبلاگ ، و یا نظرات صفحه ، و غیره باشد
در این مثال من قصد دارم به اضافه کردن برخی از اخبار به پست من این فایل پیکربندی استاتیک تعریف شده. برای دریافت اخبار پست من تنظیمات صفحه من استفاده از یک کلاس که می گرداند آرایه در زیر درج نمائید :
$ pagesToAdd آرایه = (0 => آرایه ('برچسب' => 'داستان جعلی اخبار # 5...'،' ماژول '=>' های وب '،' مسیر '=>' بهترین های شاخص '،' عمل '= 'مشاهده'> 'کنترل کننده' ، 'اخبار' => '،' پارامترهای '= آرایه> (' شناسه '=>'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 احتمالا ؛)) در غیر این صورت این اتفاق می شود کاملا گران قیمت با هر بار صفحه.


















































این تنها چیزی است که من به دنبالش هستم -- با تشکر برای مثال واقعا روشن است. به سلامتی. گ
پست نیس! من با مشکلاتی در شروع کلاس در مدل خود راه انداز. چرا استفاده از هر گونه نشانه / مدل کلاس در دسترس هستند از خود راه انداز نیست؟ »اخبار جدید ()' کلاس شما نامیده می شود ، به جای من می خواهم برای اضافه کردن صفحات ناوبری با گرفتن درخت ناوبری از کلاس مدل. اگر شما یک ایده ، لطفا اجازه دهید من می دانم! ؛)
مدل برای من ویرایش شد پست ، نام درست خود را در کد Pro_News است و از طرف autoloader برداشت.
حدس زدن شما با استفاده از ماژول ها نیست؟ اما در صورتی که مدل خود را باید به نام _News برای ZF انتخاب کنید تا به طور پیش فرض (من خودم از این سیستم استفاده نمی شود).
من می خواهم پیشنهاد شامل چک کردن مسیر از روش خود راه انداز خود را تا ببینید که آیا در آن وجود دارد "نرم افزار / مدل" و یا شامل فایل دستی.
خب من در استفاده از ماژول ، بد من. اما به شما پیشنهاد می باری نیم خودکار باید کار کند؟ خوب ، من به حفاری را در آن کمی عمیق تر کرده ایم. در حال حاضر من با استفاده از تابع addPage در BaseControllers ، که واقعا دوستانه عملکرد... hehe نیست. با تشکر از پاسخ شما.
حصول اطمینان از مدل ماژول خود را به نام صحیح _News (برای مثال) و آن را باید انتخاب کنید تا با استفاده از باری نیم خودکار.
مدل برای من ویرایش شد پست ، نام درست خود را در کد Pro_News است و از طرف autoloader برداشت.
حدس زدن شما با استفاده از ماژول ها نیست؟ اما در صورتی که مدل خود را باید به نام _News برای ZF انتخاب کنید تا به طور پیش فرض (من خودم از این سیستم استفاده نمی شود).
من می خواهم پیشنهاد شامل چک کردن مسیر از روش خود راه انداز خود را تا ببینید که آیا در آن وجود دارد "نرم افزار / مدل" و یا شامل فایل دستی.