WSS3SDK之:如何通过Feature预置一个文件
想要在SharePoint网站中预先放置一个文件,您必须用到Feature或站点定义中的Module元素。 Module 元素允许您添加一个或多个文件,或文件集,到SharePoint网站或文档库中。
注意:
WSS 3.0最大支持通过Feature预置1000个文件,无论是1000个模块分别包含1个文件,还是一个模块包含了1000个文件。
Module 元素包含了 File 元素,用来定义每个预置的文件,也可以是一些需要添加的WebPart的定义。如果您将文件通过Module预置到子文件夹,WSS会自动确保目录结构已创建,来匹配您的文件。
通过 Module 元素您既可以预置文件到文档库,也可以添加一般的文件(如default.aspx)到文档库以外的位置。当添加到文档库时,您必须指定 File 元素的属性Type="GhostableInLibrary"
。这个设置告诉WSS当把文件添加到库中之后创建一个对应得列表项。如果您是要在文档库以外放置文件,则指定 Type="Ghostable"
。
下面的例子将预置一些新的母版页到母版页库。
Feature.xml
Title="New Master Pages"
Scope="Web"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="newmasterpages.xml" />
</ElementManifests>
</Feature>
newmasterpages.xml
<Module Name="MPages" List="116" Url="_catalogs/masterpage">
<File Url="Minimal.master" Type="GhostableInLibrary" />
<File Url="ContosoRed.master" Type="GhostableInLibrary" />
</Module>
</Elements>
下面的例子来自一个WSS 2.0的网站定义,展示了如何通过Onet.xml文件预置一个文件。您要区分出放在本地硬盘上的文件和预置的文件。请注意 default.aspx 存放在 dws\default.aspx
是相当于站点定义的根,但是它被预置到网站的根 /default.aspx
。
该例子同时也展示了如何使用View元素来包含列表视图WebPart,或任意WebPart(AllUsersWebPart元素,用于添加非列表视图WebPart)到页面中。该例还包含了NavBarPage元素,用于声明该页为SharePoint网站的主页。
<File Url="default.aspx">
<View List="104" BaseViewID="3" WebPartZoneID="Top"/>
<View List="103" BaseViewID="3" WebPartZoneID="Right" WebPartOrder="2"/>
<View List="101" BaseViewID="6" WebPartZoneID="Left">
<![CDATA[
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
<Title>Members</Title>
</WebPart>
]]>
</View>
<View List="107" BaseViewID="7" WebPartZoneID="Left" WebPartOrder="2"/>
<AllUsersWebPart WebPartZoneID="Right" 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.MembersWebPart</TypeName>
<Title>Members</Title>
<Description>Use the Members Web Part to see a list of the site members and their online status.</Description>
<FrameType>Standard</FrameType>
<IsVisible>true</IsVisible>
</WebPart>
]]>
</AllUsersWebPart>
<NavBarPage Name="Home" ID="1002" Position="Start"> </NavBarPage>
<NavBarPage Name="Home" ID="0" Position="Start"> </NavBarPage>
</File>
</Module>
预置一个文件夹
通过Module元素的 Url 属性可以预置把文件夹作为模块的一部分来预置。下面的例子将在一个网站中预置一个名为MyImages的文件夹,其中包含了一个特定的图片文件。
<File Url="MyImage.jpg" Type="GhostableInLibrary" />
</Module>