.NET FISHER

专注.NET, Sharepoint, MCMS, WinFX, Ajax....

导航

Sharepoint 的定制 - I

Posted on 2004-11-26 14:03  FISHER  阅读(1999)  评论(1编辑  收藏  举报

Sharepoint是一种非常新而且很有用的技术. 现在微软把基本的功能集成到了Windows 2003 Server里, 那就是Windows Sharepoint Service简称WSS. 他使开发个性化的复杂的应用程序变得非常简单.

在我的经验里, Sharepoint的开发主要分为三部分: 定制(customization), Web Part, 配置和集成. (这里不包括Sharepoint Portal Server) 先讲一下customization. 主要讲我的经验, 而且想到那降到那, 错误的地方请大家指出, 条理不清楚的地方请原谅.

定制Sharepoint最简单的办法是FrontPage 2003. 但是它对开发大型的应用没有什么帮助, 这里就不讨论了, 有兴趣的请看 http://www.sharepointcustomization.com/default.aspx

开发和定制主要是要下面几个部分进行修改.

Virtual Server : 也就是你的web目录

Site Definition (也有人叫Template): 在 c:\Program Files\Common Files\Microsoft Shared\windows server extersions\60\template\1033 or 1066 or ... 下, 它是一些创建网站, List和Document的模板.

Layouts: 也就是virtual server里的_layouts, 一般指向c:\Program Files\Common Files\Microsoft Shared\windows server extersions\60\template\layouts. 他有一些很有趣的用法,以后有空再说。

Themes: 网站的Theme, 即CSS和他的图片

VTI_BIN: 放Web Service的地方,在virtual server里是_vti_bin。指向c:\Program Files\Common Files\Microsoft Shared\windows server extersions\60\ISAPI.

1. 做一个新的Theme.

第一步当然是UI设计拉. 叫你的Designer画一个界面并选好颜色, Font等等. 在c:\Program Files\Common Files\Microsoft Shared\windows server extersions\60\template\themes下拷贝一套theme, 照着样子修改theme.css. 参考 http://msdn.microsoft.com/library/en-us/odc_SP2003_ta/html/ODC_SPSCustomizingSharePointSites3.asp?frame=true的OWS.CSS用法.

2. Site Definition (Site的template)

这个就点复杂啦. 干活之前先要学一下CAML. 这不是一个好玩的东东. 自己去看吧: http://msdn.microsoft.com/library/en-us/spsdk11/CAML_Schema/spxmlconCAML.asp?frame=true

首先把STS复制一套, 改成你需要的名字. 修改WEBTEMP.XML(在c:\Program Files\Common Files\Microsoft Shared\windows server extersions\60\template\1033\xml下), 把新的template加上.

Site Definition的修改最重要的是ONET.XML. 它包括了页面上的Navigation Bar(顶上的和左边的), List Template和Fields的定义和UI, 各个Page的Modules.

首先改Project tag的Title attribute, 改成你需要的名字, 也就是网站生成的时候的缺省名. 第二步可以按照需要改Navigation Bar. List Templates 和Fields一般不需要改动, 可以先不管. 然后找到Modules和Name="Default"的Module. 在下面Url="default.aspx"的File就是你要改的网站主页.

这里的内容将会显示在default.aspx的WebPartZone里面. Web Part 用AllUsersWebPart表示, List用View 表示, View 的 List 对应于上面相应的List ID. 例如, 我想加一个Text/Html Web Part在左栏的顶端.

                <AllUsersWebPart WebPartZoneID="Left" WebPartOrder="1">
                   <![CDATA[
                   <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
                        <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
                        <TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
                        <FrameType>None</FrameType>
                        <Title>My Info</Title>
                   </WebPart>
                   ]]>
                </AllUsersWebPart>

或加一个Task Web Part在右栏的底部.

                <View List="107" BaseViewID="7" WebPartZoneID="Right" WebPartOrder="3"/>

当然, 你也可以加上你自己的web part.

ONET.XML的修改只影响新的Site, 已经存在的site将不会有任何改变.