续-在sharepoint中利用文档库扩展新闻应用

    《在sharepoint中利用文档库扩展新闻应用》发出之后,收到许多朋友的诸多反馈,这篇随笔意在抛砖引玉,提出一种解决问题的思考方向,在实际应用中还需要根据实际情况和需求,灵活运用。
    在文章中,对于新闻内容的保存,是用的xml,这种方式的好处不再多说。然而也有很大的缺点,比如使用原有的搜索搜索之后,得到的是这个xml文件,而想要正确浏览内容的话,就必须对搜索做一些开发。还有很多其他的不便之处。
    解决这个问题的另外一种方法是使用模板,把内容直接保存到模板上。举一个简单的例子:
    首先,建一个文档库,利用文档库的文件夹及其层次表达内容的分类以及层次。
    第二,按照整个站点的风格,创建一个内容页作为模板,并在上面做好标记,如<$TITLE$>,<$CONTENT$>等,这些标记标明了文章的标题、作者、浏览量发表日期、正文内容等。
    第三,使用编辑器创建文章
    第四,保存。保存的时候,使用web.GetFileAsString得到第二步中的模板的string,然后用相应的内容替换掉标记,然后把该string转为byte[],使用folder.Files.Add添加到某个文件夹之内即可,注意保存的格式需要和模板一致,如.aspx,或者静态页面。    同时编辑文章时的标题、创建者等内容作为一个字段保存为这个文件的属性。
    看到这里,又出现的问题是,保存之后如何编辑?浏览量怎么显示?
    保存后的编辑问题。在做模板时,可以在内容开始和结束的地方加以标记,编辑的时候,首先获取该文件的string,然后查找开始和结束标记,然后截取之间的内容就是正文了,其他的标题等到字段里面取。
    浏览量的问题。这个问题的难点在于是动态变化的,每次都不一样,因而无法和正文一样固定下来。但是也有很多解决方式,在SPS中最常用的,莫过于引用控件或者web部件了,如果保存格式是aspx页面,完全可以写一个usercontrol,然后从里面获取、显示、更新浏览量,至于control的引用方式,可以把ascx文件拷贝到sps控件的那个目录CONTROLTEMPLATES下,按照sps的引用方式标记到页面里面就可以了。
    使用这种方式还需要考察性能、安全等诸方面。
    下图是我们最近项目中的页面截图:

    在这个项目中,对于新闻内容,我们使用了类似上述的方式,并集成了多个业务系统以及单点登录等。页面上每一个区域块,都用web部件方式部署。
    时间关系,先写这么多,欢迎交流。
posted @ 2008-07-16 09:39  大田  阅读(1752)  评论(6编辑  收藏  举报