在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的属性定义如下:
View Code
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
页:
[1]