Dinamikament żid paġni li kontenitur Zend_Navigation fil runtime
Fil-kontinwazzjoni fuq aħħar post tiegħi dwar Zend_Navigation, talbiet Rotta għall sitemap.xml lill-kontrollur tad-dwana / azzjoni , din il-kariga huwa ta 'madwar dymnamically żżid paġni għal kontenitur Zend_Navigation fi / eżekuzzjoni iskrittura runtime.
Tagħha kollha sew u tajjeb li tispeċifika paġni tiegħek fi ini jew xml fajl iżda f'xi punt int se jkollhom paġni li qed jinbidlu fis-sit tiegħek li inti tixtieq bħala parti ta 'menu, sitemap, jew biex tiġi inkluża fl-traċċa Breadcrumb tiegħek. Għalhekk dak li rridu nagħmlu hu li żżid paġni li Zend_Navigation kontenitur tagħna fil runtime. Eżempji ta 'dan ikun fl-aħbarijiet jingħaddu l-oġġetti, blog postijiet, jew kummenti paġna, eċċ
F'dan l-eżempju jien ser żżid xi postijiet aħbarijiet li ini statikament definiti tiegħi konfigurazzjoni. Biex tikseb konfigurazzjonijiet aħbarijiet tiegħi paġna post stajt użati klassi li tidħol lura l-firxa fil-format li ġej:
$ PagesToAdd = array ( 0 => array ( "Tikketta" => "aħbar Foloz istorja # 5 ...', "Modulu" = "www">, "Route" => "www-indiċi", "Azzjoni" "dawl" =>, "Kontrollur" "aħbarijiet" =>, "Params" => array ( "Id" => "5-Foloz-aħbarijiet-istorja - 5 ') ), 1 => array (/ * Aktar paġna tad-dettalji * /), );
Kif tkun taf avviż li l-funzjoni ġab lura firxa li fiha jinsabu arrays li jagħmlu l-konfigurazzjoni matriċi għall Zend_Navigation_Page_Mvc. Għalhekk, billi looping fuq il-paġni firxa Zend_Navigation ġodda jistgħu jinħolqu mill-firxa konfigurazzjoni. Il-ħaġa li tagħmel bħala parti mill-linja huwa li li jżidu l-paġni fil-pożizzjoni korretta (alternattivament paġni jistgħu jiġu miżjuda fi kwantitajiet kbar bl-użu - addPages> () metodu).
Biex tagħmel dan, issib il-paġna li tixtieq iżżid is-sub-paġni li u sempliċiment żid il-paġni. F'dan il-każ I għandhom jintużaw il-kodiċi li ġejjin biex isibu paġna tiegħi:
("Latest News" "tikketta",) $ kontenitur-> findOneBy -> addPage ($ paġna); globali ta 'navigazzjoni tiegħi inizjalizzazzjoni fil-bootstrap għalhekk jistenna bħal dan:
/ ** * Użati għat-trattament ta 'livell għoli tan-navigazzjoni * Zend_Navigation * lura @ * / protetti funzjoni _initNavigation () { $ Dan il-> bootstrap ("tqassim"); $ Tqassim = $ dan getResource-> ("tqassim"); $ Ħsieb = $ getView tqassim-> (); $ Konfigurazzjoni = Zend_Config_Ini ġodda ( APPLICATION_PATH. "/ Configs / navigation.ini", APPLICATION_ENV); $ Kontenitur = Zend_Navigation ġodda ($ default konfigurazzjoni->); / / Issa żid l-aħħar rapporti aħbarijiet 25 $ Aħbarijiet = Aħbarijiet ġodda (); $ Paġni = $ getNavigationEntries aħbarijiet> (); foreach ($ paġni AS $ paġna) { $ Paġna = Zend_Navigation_Page_Mvc ġodda ($ paġna); ("Latest News" "tikketta",) $ kontenitur-> findOneBy -> addPage ($ paġna); } $ View> navigazzjoni ($ kontenitur); }
Fuq ħaġa li teħtieġ li tiġi miżjuda xi forma ta 'caching (bl-użu Zend_Cache presumibbilment;)) inkella dan ikun ser jiġi pjuttost għoli ma 'kull tagħbija paġna.


















































That's biss dak i kienet qed tfittex għal - grazzi għall eżempju verament ċara. Cheers. G
Nizza post! Stajt xi trouble bidu għal klassi mudell fl-bootstrap. Kull clue għaliex / mudell klassijiet applikazzjoni ma jkunux disponibbli mill-bootstrap? "Aħbarijiet ġodda ()" klassi tiegħek huwa mitlub, minflok nixtieq li jżidu l-paġni ta 'navigazzjoni billi jkollna siġra tan-navigazzjoni minn klassi mudell. Jekk inti għandek idea, jekk jogħġbok tgħarrafni! ;)
mudell tiegħi kien editjat għall-kariga, isem korrett tiegħu fil-kodiċi huwa Pro_News u telgħet mill-Autoloader.
Guessing int ma jintużaw il-moduli? Imma jekk iva mudell tiegħek għandu jissejjaħ _News għal ZF li jtellgħu fil-kontumaċja (I ma jużawx din is-sistema myself).
I'd jissuġġerixxu-iċċekkjar tal-passaġġ jinkludi mill-metodu bootstrap tiegħek biex tara jekk fih "applikazzjoni / mudelli" jew jinkludu il-fajl manwalment.
Well I tuża moduli, bad tiegħi. Imma inti tissuġġerixxi autoloading għandhom jaħdmu? Well, stajt biex ħaffer hija daqsxejn aktar profonda. Fil-mument I tuża l-funzjoni addPage fil-BaseControllers, li mhuwiex verament prestazzjoni faċli ... hehe. Grazzi għat-tweġiba tiegħek.
Tiżgura mudell modulu tiegħek huwa msemmi b'mod korrett _News (Per eżempju) u għandu pick up jużaw autoloading.