SharePointにJavaScriptでTickerを実装する - jQueryプラグイン化(MOSS Client) (2)
詳細はソースをみてもらうとして、それぞれ簡単に例示を。
共通事項
関数の呼び出しはすべて非同期で実行される
MOSS.<endpoint>.<functionName>({ url : '/_vti_bin/<endpoint>.asmx', callback: function(data, error) { }, <param1>:..., <param2>:..., });
<endpoint> | Lists.asmx の場合、Lists というように asmx をのぞいた部分 |
<functionName> | <endpoint> にある関数名 |
url | エンドポイントへのURLを指定する場合は設定する。指定しなくてもかまわない。 |
callback | 呼び出しが完了した際にここで指定した関数が呼ばれる。 第一引数の data は$.ajax({ complete : function (data) {} }); の第一引数(data)がそのまま入る 第二引数の error は SOAP Fault があれば値が入り、エラーがなければ null |
<param1> 他 | それぞれの関数の必要に応じていろいろ指定 |
MOSS.SiteData
SiteData.asmx で提供される関数のラッパー
getWeb
GetWeb 関数、主に WebID 調査用のため。
MOSS.SiteData.getWeb({
callback: function(result) {
alert(result.webMetadata.title + ' のWebIDは下記の通りです\n\n' + result.webMetadata.webID);
}});
result.webMetadata | webID, title, description, author, lastModified についてまとめたもの |
result.data | $.ajax({ complete : function (data) {} }); の data |
result.error | エラー情報(SOAP Fault) |
MOSS.Lists
getListCollection
GetListCollection 関数、主にリストの一覧取得のため。
MOSS.Lists.getListCollection({
callback: function(result) {
if ( result.error ) {
alert('Code : ' + result.error.code + '\nReason : ' + result.error.reason + '\nDetail' + result.error.detail);
}
var html = '<ul>';
for ( var i = 0; i < result.lists.length; i++ ) {
html += '<li><a href="' + result.lists[i].url + '">' + result.lists[i].title + '</a></li>';
}
html += '</ul>';
$('body').html(html);
}});
result.lists | 比較的よく使いそうな id, title, url, description の配列 |
result.rows | selectNodes('/soap:Envelope/soap:Body/GetListCollectionResponse/GetListCollectionResult/Lists/List'); の結果 |
result.data | $.ajax({ complete : function (data) {} }); の data |
result.error | エラー情報(SOAP Fault) |
getListItems
GetListItems 関数、アイテムの取得のため。
MOSS.Lists.getListItems({
listName: '{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}',
//viewName: 'ビュー名(GUID)',
//query: '<query>〜〜</query>',
//fields: '<ViewFields><FieldRef Name="ID" /><FieldRef Name="Title" /><FieldRef Name="Body" /></ViewFields>',
//rowLimit: '5',
//options: '<QueryOptions>〜〜</QueryOptions>',
//webID: 'WebID(GUID)',
callback: function(result) {
var html = '<dl>';
for ( var i = 0; i < result.rows.length; i++ ) {
html += '<dt>' + result.rows[i].getAttribute('ows_Title') + '</dt>';
html += '<dd>' + result.rows[i].getAttribute('ows_Body') + '</dd>';
}
html += '</dl>';
$('body').html(html);
}});
result.rows | selectNodes('/soap:Envelope/soap:Body/GetListItemsResponse/GetListItemsResult/listitems/rs:data/z:row'); の結果 |
result.data | $.ajax({ complete : function (data) {} }); の data |
result.error | エラー情報(SOAP Fault) |
MOSS.Imaging
Lists.asmx の画像ライブラリー版(みたいなもの)
listPictureLibrary
ListPictureLibrary 関数、画像ライブラリの一覧取得のため。関数名が違うだけで MOSS.Lists.getListCollection とほぼ同じ。
MOSS.Imaging.listPictureLibrary({
callback: function(result) {
var html = '<ul>';
for ( var i = 0; i < result.lists.length; i++ ) {
html += '<li>' + result.lists[i].title + '</li>';
}
html += '</dl>';
$('body').html(html);
}});
getListItems
GetListItems 関数、画像ライブラリのアイテム取得のため。
MOSS.Imaging.getListItems({
listName: 'リスト名(listPictureLibraryで取得できる title を指定する)',
//folder: 'フォルダ名',
callback: function(result) {
if ( result.error ) {
alert('Code : ' + result.error.code + '\nReason : ' + result.error.reason + '\nDetail' + result.error.detail);
}
var html = '<ul>';
for ( var i = 0; i < result.rows.length; i++ ) {
html += '<li>' + result.rows[i].getAttribute('ows_EncodedAbsUrl') + '</li>';
}
html += '</ul>';
$('body').html(html);
}});