在SharePoint 2010上给用户操作菜单增加一个操作

由于业务的需要,需要在用户操作菜单的位置增加一个操作菜单,具体做法如下:

首先我建立一个名为“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。指定应用自定义操作所需的管理权限。此值用于调整管理中心中的链接。可能的值为:

  • Delegated

  • Farm

  • Machine

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。为每项操作指定注册附件。可能的值包括:

  • None

  • List

  • ContentType

  • ProgId

  • FileType

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

管理中心的“应用程序管理”页面上的“应用程序安全性”部分。

  • WebPartSecurity

  • SelfService

  • WebApplicationSecurity

  • ManagePolicy

  • ManageAuthenticationProviders

 

Microsoft.SharePoint.Administration.ApplicationManagement

ExternalService

管理中心的“应用程序管理”页面上的“外部服务连接”部分。

  • OfficialFile

  • HtmlViewer

  • DocConversion

 

Microsoft.SharePoint.Administration.ApplicationManagement

SiteManagement

管理中心的“应用程序管理”页面上的“SharePoint 网站管理”部分。

  • CreateSite

  • DeleteSite

  • SiteUse

  • QuotaDefinition

  • SiteQuota

  • SiteOwners

  • ListSiteCollections

 

Microsoft.SharePoint.Administration.ApplicationManagement

WebApplicationConfiguration

管理中心的“应用程序管理”页面上的“SharePoint Web 应用程序管理”部分。

  • Extend

  • Unextend

  • Delete

  • ManagedPaths

  • EmailSettings

  • GeneralSettings

  • ManageContentDatabases

  • ManageWebAppFeatures

  • ListWebApplications

 

Microsoft.SharePoint.Administration.ApplicationManagement

WorkflowManagement

管理中心的“应用程序管理”页面上的“工作流管理”部分。

WorkflowManagement

Microsoft.SharePoint.Administration.Operations

BackupRestore

管理中心的“操作”页面上的“备份和还原”部分。

  • Backup

  • BackupHistory

  • Restore

  • BackupStatus

 

Microsoft.SharePoint.Administration.Operations

DataConfiguration

管理中心的“操作”页面上的“数据配置”部分。

  • DefaultDatabase

  • DataRetrieval

 

Microsoft.SharePoint.Administration.Operations

GlobalConfiguration

管理中心的“操作”页面上的“全局配置”部分。

  • RunningJobs

  • JobDefinitions

  • AlternateAccessMappings

  • ManageFarmFeatures

  • Solutions

 

Microsoft.SharePoint.Administration.Operations

LoggingAndReporting

管理中心的“操作”页面上的“日志记录和报告”部分。

  • DiagnosticLogging

  • UsageAnalysis

 

Microsoft.SharePoint.Administration.Operations

Security

管理中心的“操作”页面上的“安全性配置”部分。

  • ServiceAccount

  • Irm

  • Antivirus

  • BlockedFileTypes

  • AdministrationRoles

 

Microsoft.SharePoint.Administration.Operations

Topology

管理中心的“操作”页面上的“拓扑结构和服务”部分。

  • FarmServers

  • TopologyServices

  • IncomingEmailServer

  • ApproveDGs

  • EmailConfiguration

 

Microsoft.SharePoint.Administration.Operations

Upgrade

管理中心的“操作”页面。

  • SiteUpgradeStatus

  • FinalizeUpgrade

 

Microsoft.SharePoint.ContentTypeSettings

Fields

网站集的“内容类型”页面上的“列”部分。

  • AddField

  • ReorderFields

Microsoft.SharePoint.ContentTypeSettings

General

网站集的“内容类型”页面上的“设置”部分。

  • ChangeNameDescription

  • ChangeOptionalSettings

  • ChangeWorkflowSettings

  • RemoveContentType

Microsoft.SharePoint.ContentTypeTemplateSettings

Fields

列表的“内容类型”页面上的“列”部分。

  • AddField

  • ReorderFields

Microsoft.SharePoint.ContentTypeTemplateSettings

General

列表的“内容类型”页面上的“设置”部分。

  • ChangeNameDescriptionGroup

  • ChangeOptionalSettings

  • ChangeWorkflowSettings

  • RemoveContentType

 

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

“网站设置”页面上的“外观”部分。

  • ProjectSettings

  • NavOptions

  • Theme

  • TopNav

  • QuickLaunch

  • SaveAsTemplate

  • ReGhost

Microsoft.SharePoint.SiteSettings

Galleries

“网站设置”页面上的“库”部分。

  • MasterPageCatalog

  • ManageCType

  • ManageField

  • SiteTemplates

  • ListTemplates

  • WebParts

  • Workflows

Microsoft.SharePoint.SiteSettings

SiteAdministration

“网站设置”页面上的“网站管理”部分。

  • RegionalSettings

  • LibrariesAndLists

  • WebUsage

  • UserAlerts

  • RSS

  • SrchVis

  • ManageSubWebs

  • ManageSiteFeatures

  • DeleteWeb

Microsoft.SharePoint.SiteSettings

SiteCollectionAdmin

“网站设置”页面上的“网站集管理”部分。

  • DeletedItems

  • SiteCollectionUsage

  • Storage

  • ManageSiteCollectionFeatures

  • Hierarchy

  • Portal

Microsoft.SharePoint.SiteSettings

UsersAndPermissions

“网站设置”页面上的“用户和权限”部分。

  • PeopleAndGroups

  • SiteCollectionAdministrators

  • User

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 元素

        默认自定义操作位置和 ID

作者:Statmoon
         
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted on 2015-06-02 10:05  !无名之辈  阅读(338)  评论(0编辑  收藏  举报