Community Server 插件开发二-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

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.gifusing 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
:,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章