Register  |  
About the author
Baldwin's Status
 Contact Me
Baldwin Sun
Senior Developer for dnn solution & founder of SunBlog module...
Blog搜索
相册库
更多照片请查看相册库
最新评论
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...

如何定制DNN站点的网站管理和主机管理

Posted in [DNN使用及思考], [解析DNN代码], [优化DNN], [杂项] By baldwin

申明一下,这一篇文章是参考http://www.dnnskin.cn站点上的某一贴子而写,就是对此有所总结。(大家有兴趣不妨去看看,挺不错的:)admin configure
在DNN使用中,我们可能有这样的需求,那就不想开放过多的权限给管理员以防止误删的事件,当然可能也有这样的需求, 增加某一个管理页面,对此的一般做法设置为管理员可见,这样就可以保证只有管理员才能查看和编辑这个页面,但是红色的边框提示确实比较难看,或许你需要把这个页面加入到admin或者host菜单,这样更方便管理和显得合理。在这里我们列举如何利用SQL Script来实现(当然也可能也有其他方法,但SQL应该是比较方便和直接的,前提你具有host帐号权限),接下来我们就分别对这两种情况讲解.
注意:以下更改之后必须重启IIS方才生效。
1) 屏蔽某些管理页面,也就是隐藏这些页面,最简捷的解决方案就是把类似以下的脚本拷贝到 主机管理/SQL服务下 当作脚本执行即可隐藏这些页面,不过缺点也是明显,如果你直接拷贝原来的Url仍然可以访问这一页面,实质就是我们只不过玩弄一下技巧吧了,当然你也可以设置IsDeleted或DisableLink这一属性,这就可以彻底的防止通过Url访问了。
UPDATE {databaseOwner}[{objectQualifier}Tabs]
SET [IsVisible]='0' -- Apply to the admin tab to not showWHERE tabid=52
2) 增加管理页面并加入网站管理或主机管理菜单中。
首先我们新建一个页面,要记得查看页面id并记录下来 ,页面权限为正常即可,不必设置为管理员可见,然后添加管理模块到该页面,之后把类似以下的脚本拷贝到 主机管理/SQL服务下 当作脚本执行即可完成把管理页面改到管理菜单下
UPDATE {databaseOwner}[{objectQualifier}Tabs] SET [TabOrder]='10032',
[IsVisible]='1',
[PortalID]=0, -- the filed related to which portal the admin menu exist 
[ParentID]='38',
[Level]='1', -- the filed is the menu level, 0 is 1st, 1 apply to 2st...
[TabPath]='//Admin//YourTabName', -- YourTabName is your tabName which you will insert into the admin menus
[IconFile]='yourTabimage src' -- this filed is optionalWHERE tabid=57
参数解析:
1) TabOrder: 站点管理菜单TabOrder值截止到10031,也就是说你可以用10032 10033 10034……
2) ParentID: ParentID的计算,站点ID为0时,ParentID为38,站点ID为1时,ParentID为56,站点ID为2时,ParentID为74,站点id加1,ParentID加18
portalid=0 ParentID=38
portalid=1 ParentID=56
portalid=2 ParentID=74
portalid=3 ParentID=92
……
这一方法待考证.
3) tabid: 你要加进管理菜单的页面的id
类似如果想要把管理菜单写入host菜单下,需要修改语句如下:
UPDATE {databaseOwner}[{objectQualifier}Tabs] SET [TabOrder]='24',
[IsVisible]='1',
[PortalID]=null,
[ParentID]='7',
[Level]='1', -- the filed is the menu level, 0 is 1st, 1 apply to 2st...
[TabPath]='//Host//YourTabName', -- YourTabName is your tabName which you will insert into the admin menus
[IconFile]='yourTabimage src'-- this filed is optionalWHERE tabid=57
参数解析:
1) TabOrder: TabOrder主机管理菜单TabOrder值截止23,你可以用24 25 26……
2) PortalID: 主机管理菜单PortalID值不变,因为主机管理是全局的,故PortalID默认为NULL
2) ParentID: 类似PortalID,因为主机管理是全局的,故ParentID一般为7
3) tabid: 你要加进管理菜单的页面的id
当然还可以在Admin或者是Host菜单下添加二级管理菜单,只需要加上TabPath='//Admin//一级//二级//…',

Comments

Was it good for you, too?Join the discussion » ,but you need to login first before you make comments.