Uygulamamda, Zend Navigation tarafından kullanım için en üst düzey ve alt düzey sayfalarımı tanımlamalı mıyım? Üst düzey gezinme çubuğu görünümü yardımcım, alt gezinmeyi oluşturan görünüm yardımcısından ayrı olacak.Zend_Navigation kapsayıcımı nereye yerleştirmeliyim?
cevap
Tüm navigasyonunuzu tek bir yerde tanımlamanın daha basit bir yolu vardır. Ana menünüze ana menüye ve alt menülerinizin her bir ana sayfasının alt sayfalarına sahip olabileceğiniz anlamına gelen, sınırsız iç içe (alt sayfa) sayfaları destekler. Görünüm Yardımcılarını kullanarak, geçerli etkin sayfa için otomatik olarak yalnızca alt sayfa menüsünü kolayca çıktı alabilirsiniz.
Bu şekilde, gelecekteki bakım için tüm navigasyonunuzu tek bir yerde saklayabilirsiniz.
Örneğin, site genelinde gezinmeyi Application Resource kullanarak application.ini dosyasında tanımladım ve sonra görünüm komut dosyamda menülerimi biçimlendirmek için Navigation View Helpers kullanın.
Bu üzerinde çalışıyorum bir projede benim application.ini dosya navigasyon yapılandırmasındaki küçük özüdür:
resources.navigation.pages.exhibits.label = "Exhibits"
resources.navigation.pages.exhibits.controller = "exhibits"
resources.navigation.pages.exhibits.action = "index"
resources.navigation.pages.exhibits.pages.index.label = "Search Exhibitors"
resources.navigation.pages.exhibits.pages.index.controller = exhibits
resources.navigation.pages.exhibits.pages.index.action = index
resources.navigation.pages.exhibits.pages.search.label = "Search Exhibits"
resources.navigation.pages.exhibits.pages.search.controller = exhibits
resources.navigation.pages.exhibits.pages.search.action = "search"
resources.navigation.pages.exhibits.pages.new.label = "New Exhibitor"
resources.navigation.pages.exhibits.pages.new.controller = exhibits
resources.navigation.pages.exhibits.pages.new.action = "new"
resources.navigation.pages.exhibits.pages.import.label = "Import Exhibits"
resources.navigation.pages.exhibits.pages.import.controller = exhibits
resources.navigation.pages.exhibits.pages.import.action = "import"
resources.navigation.pages.sales.label = "Sales"
resources.navigation.pages.sales.controller = "sales"
resources.navigation.pages.sales.action = index
resources.navigation.pages.sales.pages.index.label = "Review/Search"
resources.navigation.pages.sales.pages.index.controller = sales
resources.navigation.pages.sales.pages.index.action = index
resources.navigation.pages.sales.pages.edit.label = Add/Edit Sales
resources.navigation.pages.sales.pages.edit.controller = sales
resources.navigation.pages.sales.pages.edit.action = edit
resources.navigation.pages.sales.pages.flags.label = Flags/Problems
resources.navigation.pages.sales.pages.flags.controller = sales
resources.navigation.pages.sales.pages.flags.action = flags
Ve layout.phtml dosya içinde: Öyleyse zaman
<div id='mainmenu'>
<?php echo $this->navigation()->menu()->setMaxDepth(0); ?>
</div> <!-- #mainmenu -->
<div id='submenu'>
<?php echo $this->navigation()->menu()->setOnlyActiveBranch(true)
->setMinDepth(1)
->setMaxDepth(1); ?>
</div> <!-- #submenu -->
Kullanıcı Sergiler sayfasına gider, yalnızca bu sayfanın çocuklarını ve aynı Satış sayfasını görür. Oldukça basit ve çok etkili.
Genellikle bunu denetleyici eklentisinde yapıyorum. Burada mevcut rotaya ya da istek parametrelerine göre navigasyon oluşturabilir, daha sonra uygulama kaynağından kolayca görünüm/düzene geçebilir ve navigasyon yeniden tasarlandığında başka biriyle geçiş yapabilirim.
Bunu yapmak için özel bir denetleyici eklentisi kullanmalıyım? –
- 1. Raylar uygulamasında kendi "modülümü" nereye yerleştirmeliyim?
- 2. Asp.net-mvc güçlü yazımlı görünümü nereye yerleştirmeliyim?
- 3. Görünümle ilgili sabitleri nereye yerleştirmeliyim - backbone.js
- 4. Maven projesi için uygulama yapılandırma dosyalarını nereye yerleştirmeliyim?
- 5. Özel oluşturma Zend_Navigation
- 6. imeActionId ürününü ne yerleştirmeliyim?
- 7. .egg'yi (Python) nereye yerleştiririm?
- 8. Arka plan ve düğme görüntü dosyalarını nereye yerleştirmeliyim? Öğeler mi yoksa sadece uygulama dosyalarına mı sürükleyin?
- 9. Tüm modellerde kullanılacak yöntemi nereye yönlendirecek raylar
- 10. Linux sunucusunda node.js uygulamalarını nereye yerleştirebilirim?
- 11. jQuery's Fisheye ile çalışmak için Zend_Navigation menüsünü kullanın
- 12. Bir isteği yeniden yönlendirebilecek bir kontrol yerleştirmeliyim?
- 13. Android studio projesinde varolan bir veritabanını nereye yerleştirmek
- 14. Kaynak nereye yerleştirilir?
- 15. Meteor, Mac’te nereye yüklenir?
- 16. ivysettings.xml dosyasını nereye koyarsınız?
- 17. Akış aboneliğim nereye gidiyor?
- 18. Yığın izim nereye gitti?
- 19. 'Yardımcı' yöntemleri nereye koyacağım?
- 20. Composer, dosyaları nereye kurar?
- 21. Süpürgecinizi nereye koyarsınız?
- 22. İçe aktarma nereye yerleştirilir?
- 23. İç sınıflar nereye koyulur?
- 24. 'CreateMap' ifadeleri nereye gitmeli?
- 25. ActiveModel :: Validator'u nereye koyar?
- 26. Mücevherler nereye takılır?
- 27. MVC DropDownListFor - Doğrulama başarısız olduktan sonra seçenekleri elle yeniden yerleştirmeliyim?
- 28. Paylaşılan bir yardımcı program modülü OCaml'ye nereye yerleştirilir?
- 29. WPF Prism - Kaynaklar nereye koyulur?
- 30. Start-Job çıkışı nereye gider?
Bu harika! Teşekkür ederim! Denetleyicileri ve eylemleri belirtmek yerine, yerine rota adları kullanabilir miyim? Böylece yolu basitçe değiştirebilir ve değişiklik navigasyona yansıtılacaktır. –
Zend_Navigation'da bunları hiç kullanmadım, ama evet yapabilirsin. Kullanılacak yönlendiriciyi belirtmek için her sayfa için * .route parametresi kullanılabilir. Kullanım için [Zend Navigasyon Sayfaları MVC] 'ne (http://framework.zend.com/manual/en/zend.navigation.pages.html#zend.navigation.pages.mvc) bakınız. –