金天:學習一個新東西,就要持有擁抱的心態,如果固守在自己先前的概念體系,就會有舉步維艱的感覺。
金天微信:15998603918 歡迎找我聊聊天。
看本文需要對Orchard大致體系, 特別是Module插件體系有一定的理解。
Orchard Admin Menu
自定義后臺管理導航菜單,只要在自己的Module里面實現接口INavigation
PRovider, 如下圖。
所有需要做的很簡單,像上圖,添加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接口的類即可??丛创a永遠是coder學習的捷徑。
2. 筆者這里實現的是RecentMenus, 就是把最近四次點到的Menu置頂,效果如下圖, 中間用到IActionFilter。