SharePoint 2013 自定義擴展菜單


  在對SharePoint進行開發或者功能擴展的時候,經常需要對一些默認的菜單進行擴展,以使我們開發的東西更適合SharePoint本身的樣式。SharePoint的各種功能菜單,像網站設置、Ribbon、列表里的下拉等等,都是一樣原理的,都是XML+JS腳本實現的,如果想實現這些功能,只需要一個XML發布成Feature,並在網站功能啟用,即可。

  其實,關於這個並沒有什么過多可以說的東西,大家在實踐中,漸漸理解了。下面,我就舉幾個簡單的例子,做一下簡要說明。

項目結構

  新建一個空白的SharePoint 2013項目,添加一個Feature文件,一個菜單定義的XML文件,如下圖。

clip_image001

  XML菜單定義,如下圖:

clip_image002

 

例一:擴展wssuc:Welcome控件

擴展前截圖:

clip_image003

擴展后截圖:

clip_image004

擴展XML:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
     Id="MyTopMenuLink"
     Location="Microsoft.SharePoint.StandardMenu"
     GroupId="PersonalActions"
     Sequence="0"
     Title="博客園-霖雨">
    <UrlAction Url="http://www.cnblogs.com/jianyus"/>
  </CustomAction>
</Elements>


例二 擴展SiteAction(網站設置)菜單

擴展前截圖

clip_image005

擴展后截圖

clip_image006

擴展XML

  <CustomAction
     Id="MyTopMenuLink"
     Location="Microsoft.SharePoint.StandardMenu"
     GroupId="SiteActions"
     Sequence="0"
     Title="博客園-霖雨">
    <UrlAction Url="http://www.cnblogs.com/jianyus"/>
  </CustomAction>

 

例三 擴展網站設置菜單

擴展后截圖

clip_image007

擴展XML

  <CustomAction
     Id="MyTopMenuLink"
     Location="Microsoft.SharePoint.SiteSettings"
     GroupId="Customization"
     Sequence="106"
     Title="博客園-霖雨">
    <UrlAction Url="http://www.cnblogs.com/jianyus"/>
  </CustomAction>

  網站設置菜單,不僅僅可以通過GroupId設置顯示在哪個位置,還可以單獨添加一個Group,后面我們會舉例說明。

至於GroupId選擇哪一個,請參考附后的MSDN文檔。

 

例四 擴展文檔庫Ribbon菜單

擴展后截圖

clip_image008

擴展XML

  <CustomAction
     Id="MyTopMenuLink"
     Location="Microsoft.SharePoint.StandardMenu"
     GroupId="SettingsMenu"
     RegistrationType="List"
     RegistrationId="101"
     Sequence="0"
     Title="博客園-霖雨">
    <UrlAction Url="http://www.cnblogs.com/jianyus"/>
  </CustomAction>

  RegistrationId可以區分是文檔庫,還是列表庫,是TemplateID

 

例五 擴展文檔庫ECB菜單

擴展后截圖

clip_image009

擴展XML

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
     Id="MyTopMenuLink"
     Location="EditControlBlock"
     RegistrationType="List"
     RegistrationId="101"
     Sequence="0"
     Title="博客園-霖雨">
    <UrlAction Url="http://www.cnblogs.com/jianyus"/>
  </CustomAction>
</Elements>

  如上圖,因為Sequence是0,所以這個菜單在最上面,如果想要移動位置,設置這個值即可。

 

例六 擴展網站操作組

擴展后截圖

clip_image010

擴展XML

  <!-- Custom Action Group -->
  <CustomActionGroup
      Id="CustomActionGroup"
      Description="自定義組"
      Title="我的自定義組"
      Location="Microsoft.SharePoint.SiteSettings"
      Sequence="30" />

  <!-- Custom Action in Custom Action Group -->
  <CustomAction
      Id="CustomAction1"
      Description="自定義操作"
      Title="自定義操作一"
      GroupId="CustomActionGroup"
      Location="Microsoft.SharePoint.SiteSettings"
      Rights="ManageWeb"
      RequireSiteAdministrator="FALSE"
      Sequence="20">
    <UrlAction Url="~sitecollection/_layouts/CustomAction1.aspx" />
  </CustomAction>

  <CustomAction
      Id="CustomAction2"
      Description="自定義操作"
      Title="自定義操作二"
      GroupId="CustomActionGroup"
      Location="Microsoft.SharePoint.SiteSettings"
      Rights="ManageWeb"
      RequireSiteAdministrator="FALSE"
      Sequence="20">
    <UrlAction Url="~sitecollection/_layouts/CustomAction2.aspx" />
  </CustomAction>

  如上圖,添加了網站操作組,可以用來添加我們的設置。在2013之前版本,類似SiteAction等,都可以進行分組,但是2013我嘗試了一下,分組沒有成功。而且,之前版本的網站設置,都是菜單分組的形式;新版本默認都沒有分組,是否支持還有待進一步研究。

后記

  以上,是幾個簡單的擴展菜單例子,主要還是修改GroupId和Location來確定菜單的顯示位置,通過Rights來限制權限,Sequence來設置排序等,更多的擴展,請參考MSDN自行嘗試。

參考MSND鏈接

1、Default Custom Action Locations and IDs

http://msdn.microsoft.com/en-us/library/bb802730.aspx

2、Custom Actions and Ribbons

http://www.matthiaseinig.de/docs/SPSF/OutputHTML/SPSF_RECIPES_CATEGORY_CUSTOMACTIONS.html

3、SharePoint 2013 自定義擴展菜單(二)

包含另外三個例子,列表設置、管理中心、人員和組添加菜單


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM