2013-02-27 120 views
2

我一直在尋找小時如何隱藏網站操作菜單(新頁面&管理網站內容和結構)中的兩個按鈕。Sharepoint自定義操作刪除網站操作菜單項

繼承人我的具體情況...我有一個列表,當用戶正在查看時,我希望能夠刪除某些按鈕。還取決於如果用戶是管理員,這些按鈕應該顯示或不顯示...目前我已經能夠刪除這兩個按鈕利用HideCustomActions(代碼如下)。隱藏自定義操作的問題在於,沒有屬性可以指定列表或內容類型以使其無效。也沒有像CustomActions這樣的屬性,只會向管理員顯示按鈕(我想在下面的CustomActions中執行的示例代碼)。

HideCustomActions代碼:

<HideCustomAction 
    Id="HideCreatePublishingPage" 
    GroupId="SiteActions" 
    HideActionId="PublishingSiteActionsMenuCustomizer" 
    Location="Microsoft.SharePoint.StandardMenu"> 
</HideCustomAction> 

CustomActions代碼:

<CustomAction 
    Id="HideNewPage" 
    GroupId="SiteActions" 
    Location="Microsoft.SharePoint.StandardMenu" 
    RegistrationType="List" 
    RegistrationId="10037" 
    RequireSiteAdministrator="TRUE"> 
    <CommandUIExtension> 
     <CommandUIDefinitions> 
     <CommandUIDefinition Location="WHAT GOES HERE?" /> <!-- PublishingSiteActionsMenuCustomizer should go here but i dont have the id --> 
     </CommandUIDefinitions> 
    </CommandUIExtension> 
</CustomAction> 

如果那裏有任何細節丟失,或者如果我不解釋自己正確,請讓我知道,我會更新!

回答

2

就我所瞭解的你而言,當你在一些特殊的列表/頁面時,你想隱藏一個動作在網站行動菜單。

這不能開箱即用。 HideCustomAction元素根本不提供給「僅當用戶在頁面XYZ上時隱藏」。它可以隱藏這個動作,也可以隱藏動作 - 這對所有的用戶都適用。特別是當你在談論站點操作菜單時(正如其名稱所暗示的)站點範圍。

你唯一的選擇就是使用JavaScript(或服務器端代碼)來做你想做的事情,只爲某些用戶隱藏菜單項並隱藏它們。使用JavaScript,您必須搜索菜單項並在適用邏輯時隱藏它們。