Community Server 插件开发二

因为我们的程序要求能够在后台也能进行管理,所以必须CS的后台也进行扩展,经过前台,导航栏的增加后,在后台增加我们也有了一定的经验,我发现CS后台的导航栏配置是在Web\ControlPanel\Tabs.config中定义的

 

 

None.gif <? xml version="1.0" encoding="utf-8" ?>
None.gif
< TabCollection >
None.gif
< Tabs >
None.gif
< Tab  resourcename ="CP_Tabs_Dashboard"  urlname ="controlpanel"  name ="Home"  isRoot  = "true"   />
None.gif
< Tab  resourcename ="CP_Tabs_MyBlogs"  href ="~/controlpanel/blogs"  name ="Blogs"  iTabType ="CommunityServer.ControlPanel.Controls.WeblogsItemValidator,CommunityServer.Web"   />
None.gif
< Tab  resourcename ="CP_Tabs_MyPhotos"  urlname ="gallery_ControlPanel_Photos"  name ="Photos"  iTabType ="CommunityServer.ControlPanel.Controls.GalleriesItemValidator,CommunityServer.Web"   />
None.gif
< Tab  resourcename ="CP_Tabs_LocalPhotos"  href ="~/controlpanel/localphotos"  name ="LocalPhotos"  iTabType ="Papersnake.LocalPhoto.ControlPanel.Controls.LocalPhotoValidator,Papersnake.LocalPhoto"   />
None.gif
< Tab  resourcename ="CP_Tabs_MyFiles"  href ="~/controlpanel/files"  name ="Files"  iTabType ="CommunityServer.ControlPanel.Controls.FilesItemValidator,CommunityServer.Web"   />
None.gif
< Tab  resourcename ="CP_Tabs_ForumsModeration"  href ="~/controlpanel/moderation"  name ="ForumModeration"  roles  = "SystemAdministrator;ForumsAdministrator;Moderator"  iTabType ="CommunityServer.ControlPanel.Controls.ForumsItemValidator,CommunityServer.Web"   />
None.gif
< Tab  resourcename ="CP_Tabs_Administration"  urlname ="settings_ControlPanel_Home"  name ="Setup"  roles ="SystemAdministrator;BlogAdministrator;ForumsAdministrator;GalleryAdministrator;ReaderAdministrator;MembershipAdministrator;FileAdministrator"   />
None.gif
< Tab  resourcename ="CP_Tabs_Reporting"  urlname ="settings_ControlPanel_Reporting"  name ="Reporting"  roles ="SystemAdministrator;BlogAdministrator;ForumsAdministrator;GalleryAdministrator;ReaderAdministrator;MembershipAdministrator;FileAdministrator"   />
None.gif
</ Tabs >
None.gif
</ TabCollection >


 

我也在这个文件中添加了一条相应的条目,有几个属性简单的介绍一下
resourcename:资源名,用于本地化,我们要在对应的语言资源文件中添加相应条目<resource name="CP_Tabs_LocalPhotos">本地相册</resource>
urlname和href:都是定义这个Tab所指向的页面路径,但两个也各有不同,href是直接提供所指向的路径,而urlname是众siteurls.config中去获取相应的路径
name:应用程序名
iTabType:这个是定义的Tab类型,把的值是一个对应的程序IsValid方法,我也没有搞得太明白,但是似乎只是返回一个bool值用来判断这个应用程序有没有在后台里被禁用.
%E6%8D%95%E8%8E%B7_thumb%5B1%5D.jpg
roles:看单词也看出来了,肯定是定义其访问权限
关于iTabType我们也在自己的程序集中完成了这个方法,因为如果要改成也能在后台中进行程序的起用或禁用管理就必需修改CS中原有的代码,也就需要对CS重新编译,这违背了我整个程序只是做为CS中一个插件的设想,对CS一些ASPX页面的修改是不用重新编译整个项目的,便是对一些.CS文件进行修改就不得不进行重编译,所以我在我自己的IsValid直接返回一个true值

 

None.gif using  System;
None.gif
using  System.Collections.Generic;
None.gif
using  System.Text; 
None.gif
None.gif
using  CommunityServer.Components;
None.gif
using  CommunityServer.Controls;
None.gif
namespace  Papersnake.LocalPhoto.ControlPanel.Controls
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
public class LocalPhotoValidator : IMenuItem
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
public LocalPhotoValidator()
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif
InBlock.gif
ExpandedSubBlockEnd.gif}
 
InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif
IMenuItem 成员#region IMenuItem 成员 
InBlock.gif
InBlock.gif
public bool IsValid(System.Web.HttpContext context)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
return true;
ExpandedSubBlockEnd.gif}
 
InBlock.gif
ExpandedSubBlockEnd.gif
#endregion

ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif


最后在CS的web\controlpanel\下新建一个localphotos目录,再添加一个default.aspx,运行,可以正确的在导航中显示我们自定义的项
%E6%8D%95%E8%8E%B74_thumb%5B1%5D.jpg

转载于:https://www.cnblogs.com/9527/archive/2007/04/12/711114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值