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.gif
{
InBlock.gif
public class LocalPhotoValidator : IMenuItem
ExpandedSubBlockStart.gif
{
InBlock.gif
public LocalPhotoValidator()
ExpandedSubBlockStart.gif

InBlock.gif
ExpandedSubBlockEnd.gif}
 
InBlock.gif
ContractedSubBlock.gif
IMenuItem 成员
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif


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









    本文转自无心之柳.NET博客园博客,原文链接
http://www.cnblogs.com/9527/archive/2007/04/12/711114.html
:,如需转载请自行联系原作者


相关文章
|
4月前
|
网络协议 Linux Go
分享一个go开发的工具-SNMP Server
分享一个go开发的工具-SNMP Server
113 0
|
Linux 测试技术 数据安全/隐私保护
Fedora32 Server版安装与初体验
Fedora32 Server版安装与初体验
364 0
Fedora32 Server版安装与初体验
visualSVN-server的使用方法
本文章主要针对visualSVN-server的使用方法打开visualSVN-server后,画面是这个样子的然后我们要创建一个服务器,用来装项目,如图:这个text就是服务器的后缀名 这个是设置权限:Nobody has access意思是:不让任何人访问All就是所有人都可以最下面那个是自定.
2840 0