SharePoint WebPart:扩展SharePoint 2007中图片展示功能
有一个企业需要做内部的多媒体管理系统, 以前用SPS做过OA方面的应用
做这个方面的系统不一定是WSS的强项,
但多媒体文件无非就是:文件管理+媒体展示,
困难:
1 效率问题, WSS V3,效率还可以。
2 媒体文件的展示, 可以开发自定的WEB PART。(经过测试,放在WSS的内容数据库中文件,可以被播放器播放)
3 大媒体文件的上传(超过50M),可以做Event Handler,上传时直接上传文件到流媒体服务上,WSS自己做检索。
4 不知道MOSS 2007和流媒体服务器可不可以安装在一台机器机上。
刚才搞定了多媒体管理里面最容易搞定的事情:图库管理功能。
用SharePoint做企业图库管理系统的优势
如图:
于Windows文件夹一样的管理页面,不用上传,直接粘贴就好了。
*如果想用网页,可以方便的上传
美中不足的是,系统内置的Webpart没有提供这个功能,
就是:把当前网站下的所有的图片库中的最新8张图片,按照库分类,以缩略图的形式展示。
有了这个,WebPart,我们就可以,在几分钟之内,搞定一个强大的图库系统。
开发后如图:
这个Webpart可以放在图库的首页,用来展示,子站点下最新的图片的缩略图:
这个WEBPART的开发,要用到KaneBoy的QuickPart, 这个控件,可以把ASP.NET的用户控件,包装成一个WebPart,。
OK,下面就是开发,WEB Control的内容了:
首先我们要知道,图片库的缩略图在什么地方,一般在,图库的“_t/ ”下面。
所有的缩图,扩展名全为:JPG,文件名为:原图主文件名_原图扩展名.JPG
在VS2005中新建Web Application,删除default.aspx, 新建一个“用户控件”组件,加入一个:DIV,然后右击,“作为服务器控件运行”,在代码的Page_load()事件里面输入:
string strRe = "";
for (int j = 0; j < mySite.Lists.Count; j++)
{
if (mySite.Lists[j].BaseTemplate == SPListTemplateType.PictureLibrary)
{
SPListItemCollection listItems = mySite.Lists[j].Items;
if (mySite.Lists[j].Items.Count > 0) {
strRe += "<table width = \"100%\" border = \"0\"><tr><td colspan=\"4\" style=\"font-weight: bold; font-size: 11pt; color: #ffffff; background-color: #566ea5\">";
strRe += mySite.Lists[j].ToString() + "</td></tr><tr>";
for (int i = 0; i< (listItems.Count>8? 8:listItems .Count ) ; i++)
{
SPListItem item = listItems[listItems.Count -i-1];
strRe += "<td><table><tr><td><img src=\"" + item.ParentList.ParentWebUrl + "/" + item.Url.ToString().Replace(".", "_").Replace("/", "/_t/") + ".jpg\"/></td></tr>";
strRe += "<tr><td>" + item["名称"].ToString() + "</td></tr></table></td>";
if ((i + 1) % 4 == 0)
strRe += "</tr><tr>";
}
strRe += "</tr></table>";
}
}
}
DIV1.InnerHtml = strRe;
编译后,按照QiuckPart的部署方法,部属。
一个图库系统,只要十几行代码,是不是很爽呢?
当然,如果,你不需要在图库的首页展示缩图,只要求以文字形式列出更新,那么一行代码,也不要。