这个菜单是用
Feature
部署上去的功能,先提一下
Feature
的作用:
微软在
MOSS
中利用
Feature
的特性,可以将
Feature.xml
中以特定格式描述的功能部署到
MOSS
中,这些功能包括工作流,菜单项,网站栏、内容类型
...
等等。然后可以在
MOSS
中配置启用或者停用这些功能,由于这个特性不需要进行代码开发,只需要配置
Feature.xml
和其中指定的另一个
xml
,方法简单可行。
Feature.xml
如下:
解释一下其中的内容,
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
文件中的
元素,这个元素包含了另一个
XML
文件的位置,而这个文件包含的
的内容是
Feature
要实现的。
元素指明了要使用一个名为
ProvisionedFiles.xml
的文件,以下是该文件的
元素内容。
下面是
Feature.xml
中指定的
elements.xml
内容:
其中第一个
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