新社区网站

通常,你会在正确的地方,但我们最近推出了一个全新的社区网站……为社区,受社区。

耶……带我去社区!

社区博客是社区成员的个人观点,绝不是DNN公司或DNN平台的官方立场。这是一个表达个人对DNNPlatform、社区及其生态系统的想法的地方。你有什么有用的信息想要与DNN社区分享吗?如果有,请联系

社区博客的使用由我们的社区博客指南-请在评论或发布之前阅读。


在角色栏中自定义管理条目(最简单的方法)

11月 23

不久前,我观看了Joe Brinkman关于开发MVC模块的演示,一些东西引起了我的注意。他在Persona Bar中创建管理条目的方法简单而高效。当时我就记在心里了,今天我又遇到了同样的情况。我们必须手动在角色栏中创建一个管理页面。显然,在DNN 9中你不能轻易做到这一点。在页面设置屏幕中,不能选择Admin页面作为父页面。这是禁用的。

在角色栏中手动创建页面

DNN Sharp的Radu Niculcea发现了一种变通方法。我将在这里给出它,尽管本文的目的是向您展示如何通过编程实现它。

1.更改Admin页面的权限,使其对注册用户可见

2.创建自定义管理页面并选择Admin页面作为父页面,现在它是可选择的

3.删除“Admin”页面的“注册用户”视图权限

Josh Slaughter提出了另一种解决方法。也就是说,使用来自Persona Bar的Add Multiple Pages特性,它允许您选择Admin作为父页面。

以编程方式创建角色栏条目

无论如何,回到创建一个模块的角色栏条目,让我先给你一个概述,我们是如何做到这一点之前,发现这个宝石。我们将使用IUpradebale接口,该接口在安装/更新模块扩展时被调用。在这个接口中,我们将调用DNN方法来在admin下创建页面。除了创建页面的代码之外,本文对解决方案进行了详细的描述。

这个解决方案的问题是,当创建新的门户时,它们不包含我们的管理页面。因此,最后,我们实现了一个初始化方法,该方法在其他代码之前被调用,以检查管理页面是否存在。我们有很多代码,让我告诉你,有各种各样的问题需要考虑,比如如果页面在回收站中会发生什么。

以编程方式创建角色栏条目的好方法

我的发现是,DNN实际上可以自动创建角色栏条目(DNN 8是Admin下的页面),只需将几行元数据添加到. DNN清单中。这些行放入需要添加到管理页面的模块的节点中。

< desktopModule >

<名称>配置管理器< /名称>
<图标> ~ /图标/σ/ Configuration_16X16_Standard.png > < /图标
< largeIcon > ~ /图标/σ/ Configuration_32X32_Standard.png < / largeIcon >
修改站点的配置设置
> < /页
....
< / desktopModule >

这是所有!DNN负责在模块安装期间为所有门户创建页面。它还负责为新创建的门户创建页面。这个特性实际上为我们节省了数百行代码。

一点历史

我找不到这个特性的文档,所以我挖掘了它的历史。看来你花了不少心思啊。我在DNN跟踪器上发现了DNN-7485问题,它有关于预期用例的非常好的文档。我无法将其连接到特定的提交,但为了确保它符合我们向后兼容的目的,我下载了DNN 8.0.0源代码并进行了查找。它就在那里。我们计划在1月份放弃对dnn7的支持,所以看起来我们将在未来经常使用这个功能。

结论

使用.dnn清单方法可以轻松地为模块创建自定义管理页面。在dnn9中,它在Manage部分下的Persona Bar中添加了条目。在DNN 8上,它在Admin下创建条目。也可以选择在Host下添加它。这种方法的优点是只需要很少的代码来管理,并且还可以为新的门户创建条目。


评论

迈克尔Tobisch
很棒的东西,谢谢分享!
dn快乐!
迈克尔
迈克尔Tobisch 周五,2017年12月1日下午2:42 (链接)
Josh屠杀
我发现了一种更简单的方法,可以在DNN 9的角色栏中创建Admin条目,而无需混淆权限。

不是单击Add Page按钮来创建一个新页面,而是单击Add Multiple Pages按钮

在左侧的Branch Parent下拉菜单中,您可以选择Admin作为父页面,在右侧的框中提供页面名称,然后单击底部的Add Pages按钮,这样就完成了!
Josh屠杀 2017年12月1日星期五晚上8:17 (链接)
Bogdan Litescu
谢谢杰克!我已经更新了这篇文章,包括您的解决方案。
Bogdan Litescu 2017年12月2日星期六下午6:59 (链接)

评论形式

只有注册用户才能发表评论。

NewsArchives


Aderson Oliveira(22岁)
亚历克·惠廷顿(11岁)
亚历山德拉·戴维斯(3岁)
Alex Shirley(10岁)
安德鲁·霍夫林(3岁)
安德鲁·纳斯(30岁)
安迪·特里巴(1)
安东尼·格伦赖特(5岁)
安东尼奥·夏格里(28岁)
阿什·普拉萨德(37岁)
本·施密特(1)
本杰明·赫尔曼(25岁)
伯努瓦·萨顿(9岁)
贝丝·费尔堡(12岁)
比尔·沃克(36岁)
鲍勃·克鲁格(5岁)
波格丹·莱特斯库(1)
布莱恩·杜克斯(2岁)
白雪皑皑(1)
布鲁斯·查普曼(20岁)
布莱恩·安德鲁斯(1)
卡塔·康诺利(55岁)
查尔斯·纳斯(163)
克里斯·哈蒙德(第213届)
克里斯·帕特拉(55岁)
克林特·帕特森(108)
邝党(21岁)
丹尼尔·巴塞洛缪(2岁)
丹尼尔·梅特勒(181)
丹尼尔·瓦拉达斯(48岁)
戴夫·巴克纳(2岁)
大卫·波因德克斯特(12岁)
大卫·罗德里格斯(3岁)
萧耀文(1)
道格·豪厄尔(11岁)
Erik van Ballegoij(30岁)
恩斯特·彼得·塔明加(80岁)
弗朗西斯科·佩雷斯·安德烈斯(17岁)
杰夫·巴洛(12岁)
乔治·阿拉特拉什(12岁)
吉福德·沃特金斯(3)
吉尔·勒·皮戈彻(3)
伊恩·罗宾逊(7岁)
以色列·马丁内斯(17岁)
简·布洛姆奎斯特(2)
简·乔纳斯(3岁)
贾斯普雷特·巴蒂亚(1)
詹妮·梅里菲尔德(6岁)
乔·布林克曼(274)
约翰·米切尔(1)
乔恩·亨宁(14岁)
乔纳森·希利(4岁)
乔丹·库珀史密斯(1)
约瑟夫·克雷格(2岁)
马侃(1)
凯文贝吉(3岁)
凯利·福特(4岁)
肯·格里尔森(10岁)
凯文·施莱纳(6岁)
利·波因特(31岁)
洛林·杨(60岁)
Malik Khan (1)
马特·拉特利奇(2岁)
马蒂亚斯·施洛曼(16岁)
毛里西奥Márquez (5)
迈克尔·多克西(7岁)
迈克尔·托比什(3岁)
迈克尔·华盛顿(2002)
米格尔·加梅坦(3)
迈克·霍顿(19岁)
米歇尔·塞勒斯(40岁)
弥敦罗孚(3)
Navin V Nagiah(14岁)
n (31)
Nik Kalyani(14岁)
奥利弗·海因(1)
帕特里西奥·f·萨利纳斯(1)
帕特里克·瑞恩(1)
彼得·唐克(54岁)
菲利普·比德尔(135岁)
菲利普·贝克尔(4岁)
理查德·杜马斯(22岁)
罗伯特·J·柯林斯(5岁)
罗杰·塞尔温(8岁)
鲁本·洛佩兹(1)
莱恩·马丁内斯(1岁)
Sacha Trauwaen (1)
爱沙尼亚语(4)
Sanjay Mehrotra(9岁)
斯科特·麦卡洛克(1)
斯科特·施莱西尔(11岁)
斯科特·威尔金森(3岁)
斯科特·威尔海特(97岁)
塞巴斯蒂安·洛波德(80岁)
肖恩·沃克(237)
肖恩·梅哈菲(17岁)
斯蒂芬·卡尔曼(12岁)
Stefan Kamphuis(12岁)
史蒂夫·法比安(31岁)
史蒂文·费舍尔(1)
蒂莫·布鲁梅尔霍夫(24岁)
托尼·亨利克(3岁)
托斯滕·韦根(3岁)
第谷·德·沃德(4)
Vicenç Masanas(27岁)
Vincent Nguyen(3岁)
维塔利·科扎达耶夫(6岁)
威尔·摩根维克(40岁)
威尔·斯特罗尔(180岁)
威廉·塞弗伦斯(5岁)
什么是液体含量?
找出
什么是液体含量?
找出
什么是液体含量?
找出
Baidu
map