Community Server 插件开发二

简介:

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

 

 

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


 

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

 

using  System;
using  System.Collections.Generic;
using  System.Text; 

using  CommunityServer.Components;
using  CommunityServer.Controls;
namespace  Papersnake.LocalPhoto.ControlPanel.Controls
{
public class LocalPhotoValidator : IMenuItem
{
public LocalPhotoValidator()


}
 

IMenuItem 成员
}

}



最后在CS的web\controlpanel\下新建一个localphotos目录,再添加一个default.aspx,运行,可以正确的在导航中显示我们自定义的项









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


相关文章
|
1月前
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
40 1
|
Linux 测试技术 数据安全/隐私保护
Fedora32 Server版安装与初体验
Fedora32 Server版安装与初体验
403 0
Fedora32 Server版安装与初体验
|
数据安全/隐私保护 安全 Apache