由于业务的需要,需要在用户操作菜单的位置增加一个操作菜单,具体做法如下:
首先我建立一个名为“LeoPersonalAction.xml”的XML文档,这个文档用于定义操作菜单,代码如下:
1 <?xml version="1.0" encoding="utf-8" ?>
2 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3 <!-- Document Library Toolbar New Menu Dropdown -->
4 <CustomAction Id="UserCustomAction"
5 GroupId="PersonalActions"
6 Location="Microsoft.SharePoint.StandardMenu"
7 Sequence="1000"
8 Title="Leo's Blog">
9 <UrlAction Url="http://leolis.cnblogs.com"/>
10 </CustomAction>
11 </Elements>
关于用户操作CustomAction的属性定义如下:
1 <CustomAction
2 RequiredAdmin = "Delegated | Farm | Machine"
3 ControlAssembly = "Text"
4 ControlClass = "Text"
5 ControlSrc = "Text"
6 Description = "Text"
7 FeatureId = "Text"
8 GroupId = "Text"
9 Id = "Text"
10 ImageUrl = "Text"
11 Location = "Text"
12 RegistrationId = "Text"
13 RegistrationType = "Text"
14 RequireSiteAdministrator = "TRUE" | "FALSE"
15 Rights = "Text"
16 RootWebOnly = "TRUE" | "FALSE"
17 ScriptSrc = "Text"
18 ScriptBlock = "Text"
19 Sequence = "Integer"
20 ShowInLists = "TRUE" | "FALSE"
21 ShowInReadOnlyContentTypes = "TRUE" | "FALSE"
22 ShowInSealedContentTypes = "TRUE" | "FALSE"
23 Title = "Text"
24 UIVersion = "Integer">
25 </CustomAction>
具体属性说明参照下表:
属性 |
说明 |
---|---|
RequiredAdmin |
可选属性,类型为 Text。指定应用自定义操作所需的管理权限。此值用于调整管理中心中的链接。可能的值为:
|
ControlAssembly |
可选属性,类型为 Text。指定支持自定义操作的控件的程序集。 |
ControlClass |
可选属性,类型为 Text。指定支持自定义操作的控件类。 |
ControlSrc |
可选属性,类型为 Text。指定用作自定义操作的源的 .ascx 文件的相对 URL,例如,"~/_controltemplates/myCustomAction.ascx"。 |
Description |
可选属性,类型为 Text。将已公开操作的较长描述指定为工具提示或该操作的子描述。 |
FeatureId |
可选属性,类型为 Text。标识与自定义操作相关联的功能。 |
GroupId |
可选属性,类型为 Text。标识包含该操作的操作组(例如,"SiteManagement")。如果包含在自定义操作组中,则 GroupId 属性的值必须等于 CustomActionGroup 元素的组 ID。 有关 Microsoft SharePoint Foundation 中使用的默认自定义操作组 ID 的列表,请参阅默认自定义操作位置和 ID。 |
Id |
可选属性,类型为 Text。指定自定义操作的唯一标识符。ID 可能是 GUID,也可能是一个特定词语(如 "HtmlViewer")。 |
ImageUrl |
可选属性,类型为 Text。指定虚拟服务器的相对链接,该链接指向表示项的图标的图像。 |
Location |
可选属性,类型为 Text。指定此自定义操作的位置,例如,"Microsoft.SharePoint.SiteSettings"。 如果 CustomAction 元素包含 CommandUIExtension 子元素,则 Location 必须以“CommandUI.Ribbon”开头。有关用于服务器功能区的默认位置的列表,请参阅默认服务器功能区自定义位置。 如果自定义操作是一个菜单项或工具栏按钮,则可能的选项包括 EditControlBlock、NewFormToolbar、DisplayFormToolbar 和 EditFormToolbar。 如果包含在一个自定义操作组中,则 Location 属性的值必须与 CustomActionGroup 元素的位置相同。 有关 SharePoint Foundation 中使用的默认自定义操作位置的列表,请参阅默认自定义操作位置和 ID。 |
RegistrationId |
可选属性,类型为 Text。指定与此操作关联的列表或项内容类型的标识符,或文件类型或编程标识符 (ProgID)。 |
RegistrationType |
可选属性,类型为 Text。为每项操作指定注册附件。可能的值包括:
|
RequireSiteAdministrator |
可选属性,类型为 Boolean。如果为 TRUE,则指定仅在用户为网站管理员时才显示项;否则为 FALSE。不支持使用与此列表项关联的 SharePoint Foundation 命令的下拉菜单的 RequireSiteAdministrator 属性。 |
Rights |
可选属性,类型为 Text。为使链接可见,需指定一组用户必须具有的权限(例如,"ViewListItems,ManageAlerts")。如果未指定,则操作始终显示在操作列表中。若要指定多个权限,请用逗号分隔各个值。将根据 AND 逻辑对这组权限进行逻辑分组,这表示用户必须具有指定的所有权限才能看到操作。有关可能的值的列表,请参阅 Microsoft.SharePoint.SPBasePermissions。 |
RootWebOnly |
可选属性,类型为 Boolean。如果为 TRUE,则仅在根网站上部署自定义操作。此属性适用于沙盒解决方案中的自定义操作。 |
ScriptSrc |
可选属性,类型为 Text。指定包含要执行的脚本的文件。仅在 Location 属性设置为 ScriptLink 时,此属性才适用。 |
ScriptBlock |
可选属性,类型为 Text。指定要执行的脚本块。仅在 Location 属性设置为 ScriptLink 时,此属性才适用。 |
Sequence |
可选属性,类型为 Integer。指定操作的排序优先级。 |
ShowInLists |
此属性已弃用,不应该再使用。 可选属性,类型为 Boolean。如果仅在用于管理内容类型的页上显示针对列表的自定义操作,则为 TRUE。默认值为 FALSE。 |
ShowInReadOnlyContentTypes |
可选属性,类型为 Boolean。如果仅在用于管理内容类型的页上显示针对只读内容类型的自定义操作,则为 TRUE;默认值为 FALSE。 |
ShowInSealedContentTypes |
可选属性,类型为 Boolean。如果仅在用于管理内容类型的页上显示针对密封内容类型的自定义操作,则为 TRUE。默认值为 FALSE。 |
Title |
必需属性,类型为 Text。为此操作指定最终用户描述。 |
UIVersion |
可选属性,类型为 Integer。指定应该列出此自定义操作的用户界面的版本。 |
关于Location和GroupId所定义的位置可参照下面一个表:
位置 |
自定义操作组 ID |
组说明 |
默认自定义操作 ID |
---|---|---|---|
CommandUI.Ribbon.ListView |
不适用 |
Location 对应于列表视图。 |
|
CommandUI.Ribbon.NewForm |
不适用 |
Location 对应于列表的新建表单。 |
|
CommandUI.Ribbon.EditForm |
不适用 |
Location 对应于列表的编辑表单。 |
|
CommandUI.Ribbon.DisplayForm |
不适用 |
Location 对应于列表的显示表单。 |
|
CommandUI.Ribbon |
不适用 |
Location 对应于列表视图以及列表的编辑、新建和显示表单。 |
|
DisplayFormToolbar |
不适用 |
Location 对应于列表的显示表单工具栏。 |
ExportEventToolbarButton(日历) ExportContactToolbarButton(联系人) |
EditControlBlock |
不适用 |
Location 对应于每项编辑控件块 (ECB) 菜单。 |
|
EditFormToolbar |
不适用 |
Location 对应于列表的编辑表单工具栏。 |
|
Microsoft.SharePoint.Administration.ApplicationCreated |
链接 |
“已创建应用程序”页。 |
CreateSite HomePage |
Microsoft.SharePoint.Administration.ApplicationManagement |
ApplicationSecurity |
管理中心的“应用程序管理”页面上的“应用程序安全性”部分。 |
|
Microsoft.SharePoint.Administration.ApplicationManagement |
ExternalService |
管理中心的“应用程序管理”页面上的“外部服务连接”部分。 |
|
Microsoft.SharePoint.Administration.ApplicationManagement |
SiteManagement |
管理中心的“应用程序管理”页面上的“SharePoint 网站管理”部分。 |
|
Microsoft.SharePoint.Administration.ApplicationManagement |
WebApplicationConfiguration |
管理中心的“应用程序管理”页面上的“SharePoint Web 应用程序管理”部分。 |
|
Microsoft.SharePoint.Administration.ApplicationManagement |
WorkflowManagement |
管理中心的“应用程序管理”页面上的“工作流管理”部分。 |
WorkflowManagement |
Microsoft.SharePoint.Administration.Operations |
BackupRestore |
管理中心的“操作”页面上的“备份和还原”部分。 |
|
Microsoft.SharePoint.Administration.Operations |
DataConfiguration |
管理中心的“操作”页面上的“数据配置”部分。 |
|
Microsoft.SharePoint.Administration.Operations |
GlobalConfiguration |
管理中心的“操作”页面上的“全局配置”部分。 |
|
Microsoft.SharePoint.Administration.Operations |
LoggingAndReporting |
管理中心的“操作”页面上的“日志记录和报告”部分。 |
|
Microsoft.SharePoint.Administration.Operations |
Security |
管理中心的“操作”页面上的“安全性配置”部分。 |
|
Microsoft.SharePoint.Administration.Operations |
Topology |
管理中心的“操作”页面上的“拓扑结构和服务”部分。 |
|
Microsoft.SharePoint.Administration.Operations |
Upgrade |
管理中心的“操作”页面。 |
|
Microsoft.SharePoint.ContentTypeSettings |
Fields |
网站集的“内容类型”页面上的“列”部分。 |
|
Microsoft.SharePoint.ContentTypeSettings |
General |
网站集的“内容类型”页面上的“设置”部分。 |
|
Microsoft.SharePoint.ContentTypeTemplateSettings |
Fields |
列表的“内容类型”页面上的“列”部分。 |
|
Microsoft.SharePoint.ContentTypeTemplateSettings |
General |
列表的“内容类型”页面上的“设置”部分。 |
|
Microsoft.SharePoint.Create |
WebPages |
“创建”页面上的“网页”部分。 |
|
Microsoft.SharePoint.GroupsPage |
NewMenu |
网站集的“人员和组”页面上的“新建”菜单。 |
|
Microsoft.SharePoint.GroupsPage |
SettingsMenu |
网站集的“人员和组”页面上的“设置”菜单。 |
|
Microsoft.SharePoint.ListEdit |
Communications |
列表或文档库的“自定义”页面上的“通信”部分。 |
|
Microsoft.SharePoint.ListEdit |
GeneralSettings |
列表的“自定义”页面上的“常规设置”部分。 |
|
Microsoft.SharePoint.ListEdit |
Permissions |
列表或文档库的“自定义”页面上的“权限和管理”部分。 |
|
Microsoft.SharePoint.ListEdit.DocumentLibrary |
GeneralSettings |
文档库的“自定义”页面上的“常规设置”部分。 |
|
Microsoft.SharePoint.PeoplePage |
ActionsMenu |
网站集的“人员和组”页面上的“操作”菜单。 |
|
Microsoft.SharePoint.PeoplePage |
NewMenu |
网站集的“人员和组”页面上的“新建”菜单。 |
|
Microsoft.SharePoint.PeoplePage |
SettingsMenu |
网站集的“人员和组”页面上的“设置”菜单。 |
|
Microsoft.SharePoint.SiteSettings |
Customization |
“网站设置”页面上的“外观”部分。 |
|
Microsoft.SharePoint.SiteSettings |
Galleries |
“网站设置”页面上的“库”部分。 |
|
Microsoft.SharePoint.SiteSettings |
SiteAdministration |
“网站设置”页面上的“网站管理”部分。 |
|
Microsoft.SharePoint.SiteSettings |
SiteCollectionAdmin |
“网站设置”页面上的“网站集管理”部分。 |
|
Microsoft.SharePoint.SiteSettings |
UsersAndPermissions |
“网站设置”页面上的“用户和权限”部分。 |
|
Microsoft.SharePoint.StandardMenu |
ActionsMenu |
列表和文档库视图中的“操作”菜单。 |
|
Microsoft.SharePoint.StandardMenu |
ActionsMenuForSurvey |
用于调查的“网站操作”菜单。 |
|
Microsoft.SharePoint.StandardMenu |
NewMenu |
列表和文档库视图中的“新建”菜单。 |
|
Microsoft.SharePoint.StandardMenu |
SettingsMenu |
列表和文档库视图中的“设置”菜单。 |
|
Microsoft.SharePoint.StandardMenu |
SettingsMenuForSurvey |
用于调查的“网站设置”链接。 |
|
Microsoft.SharePoint.StandardMenu |
SiteActions |
“网站操作”菜单。 |
|
Microsoft.SharePoint.StandardMenu |
UploadMenu |
文档库视图中的“上载”菜单。 |
|
Microsoft.SharePoint.StandardMenu |
ViewSelectorMenu |
用于更改功能区的列表编辑选项卡上提供的视图的视图选择菜单。 |
|
Microsoft.SharePoint.User |
ActionsMenu |
网站“权限”页面上的“操作”菜单。 |
|
Microsoft.SharePoint.User |
NewMenu |
网站“权限”页面上的“新建”菜单。 |
|
Microsoft.SharePoint.User |
SettingsMenu |
网站“权限”页面上的“设置”菜单。 |
|
Microsoft.SharePoint.Workflows |
LeftNavBarLinks |
用于管理工作流的页面上的左侧导航区域。 |
|
NewFormToolbar |
不适用 |
Location 对应于列表的新建表单工具栏。 |
|
ViewToolbar |
不适用 |
Location 对应于列表视图中的工具栏。 |
然后我再建立一个名为“Feature.xml”的XML文档,这个文档用于将我刚刚建立的操作注册为SharePoint中的一个Feature,这里的Id属性是一个GUID,可以用VS的GUID生成工具来生成:
XML文档代码如下:
1 <?xml version="1.0" encoding="GBK" ?>
2 <Feature Id="55028EC0-7602-4320-AC03-A1BB0C0F3AFE"
3 Title="用户操作菜单—博客"
4 Description="Leo的个人博客"
5 Version="1.0.0.0"
6 Scope="Site"
7 xmlns="http://schemas.microsoft.com/sharepoint/">
8 <ElementManifests>
9 <ElementManifest Location="LeoPersonalAction.xml" />
10 </ElementManifests>
11 </Feature>
接下来,我到文件夹C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\下面建立了一个名为“LeoPersonalAction”的文件夹,然后将刚刚建好的两个XML文件放到这个文件夹下面。
下面就是部署的工作了,我用记事本建立了一个名为“Install.bat”的文件,里面的内容如下:
1 @echo off
2
3 @set path=C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\bin
4
5 stsadm -o installfeature -filename LeoPersonalAction\Feature.xml
6
7 stsadm -o activatefeature -filename LeoPersonalAction\Feature.xml -url http://lishi
8
9 @set path=C:\Windows\system32
10
11 iisreset
12
13 echo Installation completed
14
15 pause
下面运行一下“Install.bat”,看到出现了如下一个CMD的对话框:
证明部署并激活成功了,好了,现在去测试一下吧,点击用户操作菜单,看到如下的界面:
点击一下“Leo's Blog”,成功的转到我的博客了。
其实如果我们借助VS 2010的话,就不需要这么麻烦的来部署了。
首先打开VS 2010,建立一个名为“LeoPersonalAction”的“空白 SharePoint 项目”,在“SharePoint 自定义向导”中,选择“部署为沙盒解决方案”。单击“完成”。
然后给这个项目添加一个名为“LeoPersonalAction”的“空元素”项目,打开“LeoPersonalAction”下面的“Elements.xml”文件,将其内容替换为“LeoPersonalAction.xml”中的内容,然后保存。
最后在VS里面直接部署就可以了。
怎么发现最近老是在做一些前端的东西了。
参考文档:CustomAction 元素