Orchard擴展 自定義後台管理導航菜單 Admin Menu,orchard導航菜單
金天:學習一個新東西,就要持有擁抱的心態,如果固守在自己先前的概念體系,就會有舉步維艱的感覺。
金天:看源碼永遠是Coder學習的最快捷路徑。
金天微信:15998603918 歡迎找我聊聊天。
看本文需要對Orchard大致體系, 特別是Module插件體系有一定的理解。
Orchard Admin Menu
自定義後台管理導航菜單,只要在自己的Module裡面實現接口INavigationProvider, 如下圖。
所有需要做的很簡單,像上圖,添加AdminMenu實現INavigationProvider接口。
99%的邏輯都在 GetNavigation(NavigationItemBuilder builder)
定義菜單標題
定義菜單鏈接
定義菜單位置
定義菜單樣式等等
這裡有個非標准邏輯,筆者這裡稱為髒邏輯:
Position(string position), 正常排序如 -2, -1, 1, 2, 3
如果設置成before or null, 則為-9999, 如果想排在更靠前需要比-9999更小
如果設置成after, 則為9999, 如果想排在更靠後, 需要比9999更大
注:
1. 更多具體怎麼實現GetNavigation, 參考源碼所有實現INavigationProvider接口的類即可。看源碼永遠是coder學習的捷徑。
2. 筆者這裡實現的是RecentMenus, 就是把最近四次點到的Menu置頂,效果如下圖, 中間用到IActionFilter。