SharePointにJavaScriptでTickerを実装する - Tickerの作成(1)
jQuery プラグインとして Ticker としてリスト(ul要素など)を表示するものは結構あったけど、下記を満たすものがなかったので自前で作成することに。
- 定期的(30分とか)に最新のアイテムを取りに行く
- アイテムが右から流れてきて、左端で停止、しばらく表示したら消えて、次のアイテムへといったような動き
- アイテムにマウスを乗せると詳細が表示される
まずは Ticker として表示させるデータを前回までに作成した MOSS Client jQuery Plugin で表示させてみる。定義リスト(dl)を使って、アイテムのタイトルと dt として、本文を dd として作成する。
MOSS.Lists.getListItems({
listName: '{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}',
query: '<Query><OrderBy><FieldRef Name="Modified" Ascending="FALSE"></FieldRef></OrderBy></Query>',
fields: '<ViewFields><FieldRef Name="ID" /><FieldRef Name="Title" /><FieldRef Name="Body" /><FieldRef Name="ServerUrl" /><FieldRef Name="Modified" /></ViewFields>',
rowLimit: '5',
callback: function(result) {
if ( result.error ) {
alert('Code : ' + result.error.code + '\nReason : ' + result.error.reason + '\nDetail' + result.error.detail);
}
var html = '<dl>';
for ( var i = 0; i < result.rows.length; i++ )
{
var r = result.rows[i];
var vals = r.getAttribute('ows_ServerUrl').split('/'); vals.pop();
var url = vals.join("/") + '/DispForm.aspx?ID=' + r.getAttribute('ows_ID'); // アイテムへのリンク
html += '<dt><a href="' + url + '">' + r.getAttribute('ows_Title') +
'</a><span>(' + r.getAttribute('ows_Modified') + ')</span></dt>'
html += '<dd>' + r.getAttribute('ows_Body') + '</dd>';
}
html += '</dl>';
$('body').html(html);
}});
こんな感じで。あとは作成した定義リストから前述のような動きを実装していく。