2013-02-27 132 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,您必须搜索菜单项并在适用逻辑时隐藏它们。