金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉。
金天微信: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接口的类即可。看源码永远是coder学习的捷径。
2. 笔者这里实现的是RecentMenus, 就是把最近四次点到的Menu置顶,效果如下图, 中间用到IActionFilter。