SharePoint 2010 向けの投稿は初めてかもしれないですね。今回は、リストやライブラリのアイテム コンテクスト メニューで表示されるメニューのうち、任意のメニューを非表示にするカスタマイズをご紹介します。このメニューは、スクリプトで描画されているので、厳密にいえばスクリプト ファイル(core.js など)の上書きが必要になるのですが、より簡単に出来る方法として、今回は CSS で非表示にします。
コンテクスト メニューとは、アイテム タイトルの右側にある「▼」をクリックした際に表示されるメニューのことです。
メニューを非表示にするスタイル記述方法
何でも良いのですが、今回は「通知」と「権限の管理」を非表示にします。リストやライブラリのビュー ページや、Web パーツを配置したページに「コンテンツ エディター」Web パーツを配置し、下記のスタイルを書き込みます。
<style>
li[CUICommand="Subscribe"].ms-MenuUIULItem,
li[CUICommand="ManagePermissions"].ms-MenuUIULItem{
display:none;
}
</style>
カスタマイズは以上です。ページの編集を保存し、再度コンテクスト メニューを表示すると、非表示になっていることが確認できます。
メニューの指定方法
コンテクスト メニューはリスト タグで構成されており、また、各メニューには「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 |
さいごに
このカスタマイズ方法は、あくまでも「非表示」であるため、リボン メニューからの操作は権限に応じて可能です。ただ、「ユーザーに不必要なメニューは、なるべく表示させたくない」というご要望は良く聞くので、使う機会はそれなりにあるかもしれませんね。