用于删除站点操作菜单项的Sharepoint自定义操作

本文关键字:操作 Sharepoint 自定义 菜单项 站点 用于 删除 | 更新日期: 2023-09-27 18:01:20

我一直在寻找如何在网站操作菜单中隐藏两个按钮(新页面&管理网站内容和结构)。

这是我的具体案例…我有一个列表,当一个用户正在查看,我希望能够删除某些按钮。同样取决于用户是否是管理员,这些按钮应该显示或不显示…目前,我已经能够使用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>

如果有任何细节缺失或如果我没有正确解释自己,请让我知道,我会更新!

用于删除站点操作菜单项的Sharepoint自定义操作

据我所知,您想在Site Actions菜单中隐藏一个操作,当您在一些特殊的列表/页面中。

这不能开箱即用。HideCustomAction元素根本不提供"仅当用户在页面XYZ时隐藏"。它要么隐藏动作,要么不隐藏——这适用于任何地方的所有用户。尤其是当你在谈论网站操作菜单时,它(顾名思义)是全站范围的。

你唯一的选择是做你想要的,隐藏菜单项只为某些用户,以及只隐藏他们在某些页面是使用JavaScript(或服务器端代码)。使用JavaScript,您必须搜索菜单项并隐藏它们,如果您的逻辑适用。