SharePoint 2010 向けの投稿は初めてかもしれないですね。今回は、リストやライブラリのアイテム コンテクスト メニューで表示されるメニューのうち、任意のメニューを非表示にするカスタマイズをご紹介します。このメニューは、スクリプトで描画されているので、厳密にいえばスクリプト ファイル(core.js など)の上書きが必要になるのですが、より簡単に出来る方法として、今回は CSS で非表示にします。

コンテクスト メニューとは、アイテム タイトルの右側にある「▼」をクリックした際に表示されるメニューのことです。

20130731-1

メニューを非表示にするスタイル記述方法

何でも良いのですが、今回は「通知」と「権限の管理」を非表示にします。リストやライブラリのビュー ページや、Web パーツを配置したページに「コンテンツ エディター」Web パーツを配置し、下記のスタイルを書き込みます。

<style>
li[CUICommand="Subscribe"].ms-MenuUIULItem,
li[CUICommand="ManagePermissions"].ms-MenuUIULItem{
	display:none;
}
</style>

カスタマイズは以上です。ページの編集を保存し、再度コンテクスト メニューを表示すると、非表示になっていることが確認できます。

20130731-2

メニューの指定方法

コンテクスト メニューはリスト タグで構成されており、また、各メニューには「CUICommand」や「sequence」という属性が割り当てられています。そのため、スタイルのセレクタで、このいずれかの属性を指定することで、任意のメニューの表示を操作できます。

下記に代表的なメニューと、それぞれの属性のマッピング表を示します。「CUICommand」に関しては、全てのメニューに割り当てられているわけではないことに注意が必要です。

メニュー CUICommand sequence
アイテムの表示/プロパティの表示 ViewProperties 200
アイテムの編集/プロパティの編集 EditProperties 220
ブラウザーで表示 255
ブラウザーで編集 256
ドキュメントの編集 EditDocument 260
チェックアウト CheckOut 300
チェックイン CheckIn 300
チェックアウトの破棄 DiscardCheckOut 310
メジャー バージョンの発行 Publish 320
承認の取り消し CancelApproval 330
バージョン履歴 ViewVersions 800
承認/却下 Moderate 850
ポリシー準拠の詳細 898
ワークフロー ViewWorkflows 900
通知 Subscribe 1100
送信 SendTo 400
権限の管理 ManagePermissions 1160
削除 Delete 1190

さいごに

このカスタマイズ方法は、あくまでも「非表示」であるため、リボン メニューからの操作は権限に応じて可能です。ただ、「ユーザーに不必要なメニューは、なるべく表示させたくない」というご要望は良く聞くので、使う機会はそれなりにあるかもしれませんね。