2

サイト アクション メニュー (新しいページとサイト コンテンツと構造の管理) 内の 2 つのボタンを非表示にする方法を何時間も探していました。

これが私の具体的なケースです... ユーザーが表示しているときに、特定のボタンを削除できるようにしたいリストがあります。また、ユーザーが管理者であるかどうかによって、これらのボタンが表示されるかどうかが決まります...現在、これらの 2 つのボタンを使用して削除することができました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>

詳細が不足している場合、または自分自身を適切に説明していない場合はお知らせください。更新します。

4

1 に答える 1

2

私が理解している限り、特別なリスト/ページにいるときに、[サイトのアクション]メニューでアクションを非表示にする必要があります。

これはそのままでは機能しません。この要素は、 「ユーザーがXYZページにいるときにのみ非表示にする」ことHideCustomActionを提供していません。アクションを非表示にするか、非表示にするかのどちらかです。これは、あらゆる場所のすべてのユーザーに当てはまります。特に、(名前が示すように)サイト全体のサイトアクションメニューについて話している場合はそうです。

特定のユーザーに対してのみメニュー項目を非表示にし、特定のページでのみメニュー項目を非表示にするための唯一の選択は、JavaScript(またはサーバー側のコード)を使用することです。JavaScriptを使用すると、メニュー項目を検索し、ロジックが適用される場合はそれらを非表示にする必要があります。

于 2013-02-27T17:28:29.583 に答える