Breytilega bæta síðum við Zend_Navigation gámur á afturkreistingur
Í framhaldi á eftir mér síðast um Zend_Navigation, Route beiðnir um sitemap.xml til sérsniðna stjórnandi / aðgerð , this staða er um dymnamically bæta síðum við Zend_Navigation gámur á afturkreistingur / script framkvæmd.
Þess allt vel og gott að tilgreina síðurnar þínar í ini eða XML skrá en á einhverjum tímapunkti sem þú ert að fara að breytast síður á vefsvæðinu þínu sem þú vilt sem hluta af valmyndinni, sitemap, eða vera með á slóð þína breadcrumb. Það sem við þurfum að gera er að bæta síðum við Zend_Navigation gámur okkar afturkreistingur. Dæmi um þetta væri í því að bæta fréttir, bloggfærslur, eða síðu athugasemdir o.fl.
Í þessu dæmi sem ég ætla að bæta nokkrum fréttir innlegg statically skilgreind ini config minn. Til að fá fréttir eftir síðunni minni stillingar sem ég hef notað klasa sem skilar array á eftirfarandi sniði:
$ PagesToAdd = array ( 0 => array ( 'Merki' => 'Fölsuð frétt # 5 ...', 'Module' = 'www'>, 'Leið' => 'www-vísitalan', 'Aðgerð' Skoða '=>, 'Stjórnandi', 'Fréttir' =>, 'Params' => array ( 'Id' => '5-Fölsuð-fréttir-saga - 5 ') ), 1 => array (/ * Meira síðu upplýsingar * /), );
Eins og þú munt taka eftir að aðgerð hefur skilað fylki þar sem er að finna fylki sem gera upp config fylki fyrir Zend_Navigation_Page_Mvc. Því með því lykkja yfir array nýjar síður Zend_Navigation hægt að búa til úr config fylki. The næstur hlutur til að gera sem hluta af lykkja er til að bæta við síðum í rétta stöðu (að öðrum kosti má síður við í einu með því að nota -> addPages () aðferð).
Til að gera þetta, finna síðuna sem þú vilt bæta við sub-síður og einfaldlega bæta við the blaðsíða. Í þessu tilfelli hef ég notað eftirfarandi kóða til að finna síðuna mína:
$ GÃ> findOneBy ('merki', 'Fréttir') -> addPage ($ síðu); heild flakk initialisation mín í ræsi lítur því svona út:
/ ** * Notað til meðhöndlun efstu flakk * * @ Skila Zend_Navigation * / vernda virka _initNavigation () { $ This-> ræsi ('skipulag'); $ Skipulag = $ this-> getResource ('skipulag'); $ Skoðað = $ skipulag-> getView (); $ Config = new Zend_Config_Ini ( APPLICATION_PATH. '/ Configs / navigation.ini', APPLICATION_ENV); $ Gámur = new Zend_Navigation ($ config-> sjálfgefið); / / Nú bæta síðustu 25 fréttum $ Fréttir = nýjar fréttir (); $ Síður = $ fréttir-> getNavigationEntries (); framhandleggur ($ síður AS $ síðu) { $ Page = nýjum Zend_Navigation_Page_Mvc ($ síðu); $ GÃ> findOneBy ('merki', 'Fréttir') -> addPage ($ síðu); } $ View-> flakk ($ gámur); }
Á hlutur sem þarf að bæta er einhvers konar flýtiminni (með Zend_Cache væntanlega;)) ella er að fara að vera alveg dýr með hverri síðu hlaða.


















































Það er bara það sem ég var að leita að - takk fyrir mjög skýr dæmi. Skál. G
Ágætur staða! Ég hef nokkrum vandræðum er hafin fyrirmynd bekknum í ræsi. Allir vísbending af hverju application / líkan flokkar eru ekki í boði frá ræsi? 'Nýjar fréttir ()' bekknum er kallað, í staðinn ég vil bæta við siglingar síðum með því að fá leiðsögn tré frá fyrirmynd bekknum. Ef þú ert með hugmynd, vinsamlegast láttu mig vita! ;)
Módelið mitt var breytt fyrir the staða, rétt á heiti þess í númerið er Pro_News og er valinn með því að autoloader.
Giska á að þú ert ekki að nota mát? En ef svo er fyrirmynd þín ætti að vera kölluð _News fyrir ZF að taka upp sjálfgefið (Ég nota ekki þetta kerfi hjá mér).
Ég vil benda athuga meðal annars leið frá aðferð ræsi til að sjá hvort það inniheldur "application / módel" eða láta skrá handvirkt.
Jæja ég nota mát, slæmt minni. En þú stungið autoloading ætti að vinna? Jæja, ég hef til að grafa í það svolítið dýpra. Á því augnabliki sem ég nota addPage virka í BaseControllers, sem er í raun ekki árangur vingjarnlegur ... hehe. Takk fyrir svarið.
Tryggja einingu líkan er nefnt rétt _News (Til dæmis) og það ætti að taka upp með autoloading.