2018-07

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

リストメニューの追加(Javascript)

リストやライブラリのアイテムのメニューにカスタムな項目を追加する方法です。

今回はJavascriptを使用しての方法。

↓こんな感じで。
20100514-1.jpg


アイテムのメニューはCORE.JSで作成されています。

メニューが作成される際、Custom_AddListMenuItems(リスト)、Custom_AddDocLibMenuItems(ライブラリ)と言う関数
が呼ばれるようになっているので、これを作成するとカスタムなメニューを追加する事ができます。
(CORE.JSの3397行目、3719行目で呼ばれています)

Custom_AddDocLibMenuItemsは他のメニューを作成するよりも前に呼ばれているので、この方法ではメニューは一番上にしか作成出来ません。



まずは簡単に

function Custom_AddDocLibMenuItems(m, ctx)
{
//メニューアイテムの作成
var strDisplayText = "めにゅ~";
var strImagePath = ctx.imagesPath + "addtofavorites.GIF";
var strAction = "javascript:window.alert('TEST');";

//メニューアイテムの追加
CAMOpt (m, strDisplayText, strAction, strImagePath);
}




アイテムの種類によってメニューをメニューを変更する事もできます。
20100514-2.jpg

function Custom_AddDocLibMenuItems(m, ctx)
{
AddMenu_YuzukiMenu(m, ctx);

AddMenu_YuzukiMenuFolder(m, ctx);

CAMSep (m); //区切り線を追加
}


function AddMenu_YuzukiMenu(m, ctx)
{
//メニューアイテムの作成
var strDisplayText = "めにゅ~";
var strImagePath = ctx.imagesPath + "addtofavorites.GIF";
var strAction = "javascript:window.alert('TEST');";

//メニューアイテムの追加
CAMOpt (m, strDisplayText, strAction, strImagePath);
}


function AddMenu_YuzukiMenuFolder(m, ctx)
{
//編集権限のあるフォルダにのみ追加
//アイテムの情報を取得
var currentItemFSObjType = GetAttributeFromItemTable(itemTable, "OType", "FSObjType");
var currentItemID = GetAttributeFromItemTable(itemTable, "ItemId", "Id");
var currentItemEdit = HasRights(0x0, 0x4);

if(currentItemFSObjType != "1" || currentItemFSObjType == null)
{
//フォルダ以外
return;
}
else if(!currentItemEdit || currentItemEdit == null)
{
//編集権限ナシ
return;
}//if

//メニューアイテムの作成
var strDisplayText = "ふぉるだめにゅ~";
var strImagePath = ctx.imagesPath + "ewr206s.gif";

var OpenURL = ctx.HttpRoot + "/_layouts/YuzukiMenuFolder.aspx?ID=" + currentItemID + "&List=" + ctx.listName;

var strAction = "javascript:location.href('" + OpenURL + "');";

//メニューアイテムの追加
CAMOpt(m, strDisplayText, strAction, strImagePath);
}



こんな感じのJavascriptを外部ファイルにして読み込むようにすると良いです。



Javascriptって苦手なんですが色々出来ますよね~。
SharePointのカスタマイズをするには必須なので色々と使ってますが、でもやっぱ苦手だorz

んでもまぁ、何とか頑張ります( ´ー`)

スポンサーサイト

● COMMENT FORM ●


管理者にだけ表示を許可する

トラックバック

http://sharepointyuzuki.blog54.fc2.com/tb.php/17-b27ab5fa
この記事にトラックバックする(FC2ブログユーザー)

サーバーコントロールでJavascriptを使用 «  | BLOG TOP |  » カスケード分類作ってみた!

プロフィール

柚木

Author:柚木
コメント・トラックバックなどお気軽にどうぞ(^^)

連絡先:yuzuki-sharepoint★mail.goo.ne.jp(★を@に変換)

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

リスト・ライブラリ (9)
検索関連 (3)
管理設定 (0)
開発 (14)
その他 (1)
未分類 (0)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。