Dynaamisesti lisätä sivuja Zend_Navigation pakkauksessa runtime

By Steven Lloyd Watkin torstaina 07 tammikuu 2010 22:50

Vuonna jatkoa minun viime post about Zend_Navigation, Route pyynnöt sitemap.xml mukautettuja ohjain / toiminta , tämä viesti on noin dymnamically lisätä sivuja Zend_Navigation kontin ajon / suorituksen.

Sen kaikki hyvin ja hyvä täsmentää sivuillesi ini tai xml -tiedoston, mutta jossain vaiheessa olet menossa on muuttaa sivuston sivut, jotka haluat osana valikon, sivustokartta, tai kuulua oman alasivun. Siksi meidän täytyy tehdä, on lisätä sivujen Zend_Navigation kontin ajon aikana. Esimerkkejä tästä olisi lisätä uutisia, blogitekstejä tai sivun kommentteja jne.

Tässä esimerkissä aion lisätä joitakin uutisia virkaa minun staattisesti määrätty ini config. Saan uutiset postitse sivu kokoonpanoissa olen käyttänyt luokka, joka palauttaa matriisin seuraavassa muodossa:

  $ PagesToAdd = array (
   0 =>
     array (
       'Etiketti' => 'Fake uutinen # 5 ...',
       'Moduuli' => 'www'
       "Reitti" => www-indeksi ",
       'Toimilla' => 'Näytä',
       'Rekisterinpitäjällä' => 'uutiset',
       "Params '=> array (
           'Id' => "5-Fake-news-tarina - 5)
     ),
   1 =>
     array (/ * Lisää sivun tiedot * /)
  ); 

Kuten huomaat, että toiminta on palautunut array jotka sisältyvät taulukot, jotka muodostavat config matriisia varten Zend_Navigation_Page_Mvc. Sen vuoksi, silmukoiden yli joukon uusia Zend_Navigation sivuja voidaan luoda config jono. Seuraava asia tehdä osana silmukan on lisätä sivujen oikeassa asennossa (vaihtoehtoisesti sivut voidaan lisätä irtotavarana käyttäen -> addPages ()-metodi).

Voit tehdä tämän, etsi sivun haluat lisätä alasivuja ja yksinkertaisesti lisätä sivuja. Tässä tapauksessa olen käyttänyt seuraava koodi löydä sivuilta:

  $ Kontti-> findOneBy ("merkki", "Uutiset") -> addPage ($ sivu); 

Kaiken kaikkiaan olen navigointi alustus on bootstrap siis näyttää tältä:

  / **
      * Käsittelyyn käytetyt huipputason suunnistus
      *
      * @ Return Zend_Navigation
      * /
     suojatun toiminnon _initNavigation ()
     {
         $ This-> bootstrap (layout);
         $ Layout = $ this-> getResource (layout);
         $ View = $ layout-> getView ();
         $ Config = uusi Zend_Config_Ini (
             APPLICATION_PATH.  "/ Configs / navigation.ini", APPLICATION_ENV);

         $ Kontti = uusi Zend_Navigation ($ config-> oletus);
         / / Nyt lisätään viimeisen 25 uutisraporttien
         $ Uutinen = uusi News ();
         $ Sivut = $ uutiset-> getNavigationEntries ();
         foreach ($ sivut $ sivu) {
        	 $ Sivu = uusi Zend_Navigation_Page_Mvc ($ sivu);
        	 $ Kontti-> findOneBy ("merkki", "Uutiset") -> addPage ($ sivu);
         }
         $ View-> navigointi ($ kontti);
     } 

On asia, joka on lisättävä jonkinlaista välimuistiin (käyttäen Zend_Cache oletettavasti;)) muuten tämä tulee olemaan melko kallista jokaisen sivun lataus.

Yksi vastaus "dynaamisesti lisätä sivuja Zend_Navigation pakkauksessa runtime"

  1. Herra Mies sanoo:

    Se on vain mitä olin etsimässä - kiitos todella selkeä esimerkki. Kippis. G

Jätä vastaus













Panorama Teema Themocracy

7 vierailijaa nyt
5 vierasta, 2 vastaan, 0 jäsentä
Max kävijöitä tänään: 13 klo 11:17 UTC
Tässä kuussa: 26 at 05.7.2011 00:35 UTC
Tänä vuonna: 130 at 28-03-2011 22:40 UTC
Kaikki aika: 130 at 28-03-2011 22:40 UTC