Dinamike të shtuar faqet në enë Zend_Navigation në kohën e duhur

Nga Lloyd Watkin Steven , e enjte Jan 7, 2010 22:50

Në një vazhdimësi në postin tim te fundit rreth Zend_Navigation, kërkesat Route për sitemap.xml për kontrollues me porosi / veprim , ky post është për dymnamically duke shtuar faqe për të një enë Zend_Navigation at / script Runtime ekzekutimit.

E saj të gjithë mirë dhe të mirë specifikuar faqet tuaja në një iniciativë apo xml file, por në disa pika do të jeni të kenë faqet ndryshuar në faqen tuaj që ju doni, si pjesë e një sitemap menu,, ose për t'u përfshirë në Breadcrumb gjurmët tuaj. Prandaj ajo që ne duhet të bëjmë është të shtoni faqet në enë tonë Zend_Navigation në kohën e duhur. Shembuj për këtë do të jetë në shtimin e lajme dhe artikuj, blog posts, ose komentet e faqes, etj

Në këtë shembull unë jam duke shkuar për të shtuar disa postime lajme të ini tim të përcaktuara statically config. Për të marrë konfigurimin postimi im i lajmeve faqe Unë e kam përdorur një klasë e cila kthehet një grup në format e mëposhtme:

  $ PagesToAdd = array (
   0 =>
     array (
       'Label' histori Fake => 'lajme # 5 ...',
       'Module' = 'www'>,
       'Rrugë' => 'www-index',
       'Veprim' 'view' =>,
       "Kontrollues" 'lajme' =>,
       'Params' => array (
           'Id' => '5-Fake lajme-histori - 5 ')
     ),
   1 =>
     array (/ * Më shumë faqe detaje * /),
  ); 

Si ju do të vëreni se funksioni i ka kthyer një grup në të cilin janë të përfshira vargjeve të cilat përbëjnë config vargjeve për Zend_Navigation_Page_Mvc. Prandaj, nga looping mbi faqet e reja array Zend_Navigation mund të jetë krijuar nga array config. Gjë tjetër për të bërë si pjesë e lak është që për të shtuar faqet në pozicionin e saktë (ndryshe faqet mund të jenë shtuar në masë, duke përdorur - addPages> () metodë).

Për ta bërë këtë, të gjetur faqe që dëshironi të shtoni nën-faqe për të dhe thjesht shtojnë faqet. Në këtë rast kam përdorur kodin e mëposhtëm për të gjetur faqen time:

  ('Lajmet e fundit', 'label',) $ enë-> findOneBy -> addPage ($ faqe); 

initialisation e përgjithshme e mia lundrimit në bootstrap prandaj duket si ky:

  / **
      * Përdoren për trajtimin e nivelit të lartë navigacion
      *
      @ * Kthimit Zend_Navigation
      * /
     _initNavigation mbrojtura function ()
     {
         $ This-> bootstrap ('layout');
         $ Layout = $ this getResource-> ('layout');
         $ = $ GetView view layout-> ();
         $ Config = Zend_Config_Ini reja (
             APPLICATION_PATH.  '/ Configs / navigation.ini', APPLICATION_ENV);

         $ Enë = Zend_Navigation ri ($ default config->);
         / / Tani, shtoni fundit 25 raportet e lajmeve
         $ = Lajmeve News reja ();
         $ Pages = $ getNavigationEntries lajme-> ();
         foreach ($ faqet AS $ page) {
        	 $ = Faqe Zend_Navigation_Page_Mvc ri ($ faqe);
        	 ('Lajmet e fundit', 'label',) $ enë-> findOneBy -> addPage ($ faqe);
         }
         $-View> navigacion ($ enë);
     } 

Për një gjë që duhet të jetë shtuar është një formë e caching (duke përdorur Zend_Cache me sa duket;)) përndryshe kjo do të jetë mjaft i shtrenjtë me çdo peshë faqe.

One Response to "dinamike të shtuar faqet në enë Zend_Navigation në kohën e duhur"

  1. Mr Njeriu thotë:

    Kjo është vetëm atë që i ishte në kërkim të - thanks për një shembull të vërtetë të qartë. Cheers. G

Leave a Reply













Theme Panorama nga Themocracy

4 vizitorë online tani
2 vizitorë, 2 bots, 0 anëtarë
Vizitorë Max sot: 10 at 03:01 UTC
Këtë muaj: 26 at 2011/07/05 12:35 UTC
Këtë vit: 130 në 10:40 UTC 28-03-2011
Gjithsej: 130 në 10:40 UTC 28-03-2011