这个菜单是用
Feature
部署上去的功能,先提一下
Feature
的作用:
微软在
MOSS
中利用
Feature
的特性,可以将
Feature.xml
中以特定格式描述的功能部署到
MOSS
中,这些功能包括工作流,菜单项,网站栏、内容类型
...
等等。然后可以在
MOSS
中配置启用或者停用这些功能,由于这个特性不需要进行代码开发,只需要配置
Feature.xml
和其中指定的另一个
xml
,方法简单可行。
Feature.xml
如下:
<?xml version="1.0" encoding="utf-8" ?> <Feature Id="6098EC11-8128-409A-8D2C-414E93F67DD4" Title="add my menu" Description="this is a custom menu" Version="1.0.0.0" Scope="Site" Hidden="FALSE" DefaultResourceFile="customDocumentLibrary" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="elements.xml" /> </ElementManifests> </Feature>
解释一下其中的内容,
Id
是
GUID
类型标示的唯一值,可以由
VS
自带的
GUID Generator
来生成,
Tiltle
是功能标题,
Version
是版本号,
Description:
对
description
的描述,
Scope
:
其值可以是
Web
或
Site,
它指明了这个
Feature
是应用于整个的
Site Collection
还是仅仅用于单独的一个子站点。
Hidden:
值可以是
True
或
False.
该设置指定了这个
Feature
是否在
Site Feature
页面上显示。
DefaultResourceFile:
资源文件名字,
Feature
依赖它提供其它附加的配置信息。
AlwaysForceInstall
:
这个属性设置为
true
可以在重复安装这个
feature
中自动覆盖原来安装的那个相同的
feature.
Feature.xml
文件中的
<ElementManifests>
元素,这个元素包含了另一个
XML
文件的位置,而这个文件包含的
<Elemnets>
的内容是
Feature
要实现的。
<ElementManifest>
元素指明了要使用一个名为
ProvisionedFiles.xml
的文件,以下是该文件的
<Elements>
元素内容。
下面是
Feature.xml
中指定的
elements.xml
内容:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <!-- create command link site setting page --> <!—第一个 --> <CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar" GroupId="ActionsMenu" Location="Microsoft.SharePoint.StandardMenu" Sequence="1000" ImageUrl="~sitecollection/eip/bbs/imgages/11.PNG" Title="匿名开启/关闭的设置"> <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/> </CustomAction> <!—第二个 --> <CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar1" GroupId="SiteActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="1000" ImageUrl="~sitecollection/eip/bbs/imgages/11.PNG" Title="匿名开启/关闭的设置"> <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/> </CustomAction> <!—第三个 --> <CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar3" GroupId="Customization" Location="Microsoft.SharePoint.SiteSettings" Sequence="306" Title="匿名开启/关闭的设置"> <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/> </CustomAction> <!—第四个 --> <CustomAction Id="UserInterfaceLightUp.SiteActionsToolbar" GroupId="NewMenu" Location="Microsoft.SharePoint.StandardMenu" Sequence="1000" ImageUrl="~sitecollection/eip/bbs/imgages/11.PNG" Title="匿名开启/关闭的设置"> <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/> </CustomAction> <!—第五个 --> <CustomAction Id="ECBItemToolbar" Id="UserInterfaceLightUp.ECBItemToolbar" RegistrationType="List" RegistrationId="101" Location="EditControlBlock" Sequence="106" Title="匿名开启/关闭的设置"> <UrlAction Url="~sitecollection/eip/bbs/aspx/BBS_Cryptonym.aspx"/> </CustomAction> </Elements>
其中第一个
CustomAction
在
Action
下拉菜单下创建了一个自定义菜单项
.
第二个
CustomAction
在页面的
Site Action
菜单下增加了一个用户自定义菜单项
.
第三个
CustomAction
在
Site Setting
页面中的
LOOK AND FEEL
标题下创建了一个自定义链接
.
第四个
CustomAction
在文档库的
New
下拉菜单下创建了一个自定义菜单项
.
第五个
CustomAction
是在文档库的每个列表项的菜单上增加一个菜单项
RegistrationId:
定义于哪种类型
(
参照
RegistrationId
列表
)
Location
和
groupid
两个属性分别指定该
feature
是定义了哪两个菜单
.
Sequence
属性指定新增加的菜单项在这个菜单中的排序,设置的大一点该菜单项排列就靠后
.
Title
和
Description
分别是该菜单项的标题和描述
.
UrlAction
属性指定了该菜单项的连接到的页面
,
当然了
,
这个
demo
连接到的是我们在第一步中建立那个页面
.
这里有一个相对路径的问题
,~site
表示站点的主目录
, ~sitecollection
表示站点集的主目录
.
因为我的
demo
是做在一个站点集下面的
,
所以采用
~sitecollection
后面是连接文件的相对路径
..
再做俩个批处理文件来部署和卸载这个
Feature
部署批处理文件
InstallFeature.bat
@rem====================================================================== @rem @rem InstallFeature.bat @rem @rem====================================================================== @echo off setlocal pushd . goto InstallFeature @rem---------------------------------------------------------------------- @rem InstallFeature @rem---------------------------------------------------------------------- :InstallFeature set SPAdminTool=%CommonProgramFiles%/Microsoft Shared/web server extensions/12/BIN/stsadm.exe set TargetUrl=http://huijianming set FeaturePath=menu/Feature.xml echo InstallFeature %FeaturePath% "%SPAdminTool%" -o installfeature -filename %FeaturePath% -force echo Activating feature %FeaturePath% "%SPAdminTool%" -o activatefeature -filename %FeaturePath% -url %TargetUrl% -force echo iisreset iisreset
卸载批处理文件
UnInstallFeature.bat
@rem====================================================================== @rem @rem UnInstallFeature.bat @rem @rem====================================================================== @echo off setlocal pushd . goto UnInstallFeature @rem---------------------------------------------------------------------- @rem UnInstallFeature @rem---------------------------------------------------------------------- :UnInstallFeature set SPAdminTool=%CommonProgramFiles%/Microsoft Shared/web server extensions/12/BIN/stsadm.exe set TargetUrl=http://eip.brc.com.cn:81/bbs set FeaturePath=BBSMySiteAction1/Feature.xml echo InstallFeature %FeaturePath% "%SPAdminTool%" -o uninstallfeature -filename %FeaturePath% -force echo iisreset iisreset将以上的两个 XML 放到 Menu 的文件夹中,然后将文件夹拷贝到 C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES
运行部署批处理文件
RegistrationId
列表
:
InvalidType = -1
GenericList = 100
//
列表
DocumentLibrary = 101
//
文档库
Survey = 102
Links = 103
Announcements = 104
Contacts = 105
Events = 106
Tasks = 107
DiscussionBoard = 108 //
讨论板
PictureLibrary = 109
DataSources = 110
WebTemplateCatalog = 111
UserInformation = 112
WebPartCatalog = 113
ListTemplateCatalog = 114
XMLForm = 115
MasterPageCatalog = 116
NoCodeWorkflows = 117
WorkflowProcess = 118
WebPageLibrary = 119
CustomGrid = 120
DataConnectionLibrary = 130
WorkflowHistory = 140
GanttTasks = 150
Meetings = 200
Agenda = 201
MeetingUser = 202
Decision = 204
MeetingObjective = 207
TextBox = 210
ThingsToBring = 211
HomePageLibrary = 212
Posts = 301
Comments = 302
Categories = 303
Pages = 850 (thanks to Anders Jacobsen for this one)
IssueTracking = 1100
AdminTasks = 1200