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()事件里面输入:

 

  SPWeb mySite = SPContext.Current.Web;

        
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的部署方法,部属。

一个图库系统,只要十几行代码,是不是很爽呢?

当然,如果,你不需要在图库的首页展示缩图,只要求以文字形式列出更新,那么一行代码,也不要。

 

posted @ 2007-03-16 12:23  dosboy  阅读(4481)  评论(6编辑  收藏  举报