使用Module自定义网站定义(Site Definition)

在WSS SDK中有一篇文章介绍了使用Modules添加文件到网站定义中(可以在http://msdn.microsoft.com中搜索Using Modules to Add Files to a Site Difinition找到),不过很多东西只是稍微提了一下,具体怎么操作并没有讲到。
一般的,我们可以用下面的方法使用Module,
  1. 修改默认的Module
    在STS网站定义中的ONET.XML中有一个默认的Default Module:
    <Modules>
       
    <Module Name="Default" />
    </Modules>
    然后在下面的 <Modules/Module Name="Default">中有<File>子元素。我们可以按照它的格式添加新的File元素即可。如:
    <File Url="mslst.aspx">
       
    <AllUsersWebPart WebPartOrder="1" WebPartZoneID="Body">
          
    <![CDATA[
             <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
                <Assembly>AssemblyName, Version=Version, Culture=neutral,
                                    PublicKeyToken=PublicKeyToken</Assembly>
                <TypeName>TypeName</TypeName>
                <Description></Description>
                <FrameType>None</FrameType>
             </WebPart>
          
    ]]>
       
    </AllUsersWebPart>
    </File>
    其中, <AllUsersWebPart>就是用来指定页面上WebPartZone中的Web部件的。当然,如果不需要指定Web部件的话,就不需要使用<AllUsersWebPart>了。
    另外需要注意的是,上面示例代码中的<File>元素的Url属性值指定的是网站定义中此文件的路径,也是需要在网站中访问此文件的路径自定义Module。由于<Module Name="Default">的Path属性的值为空,因此,此文件(mslst.aspx)的路径应该也在网站定义的根路径下,和default.aspx在同一个目录。
  2. 使用默认的Module不能添加子目录(至少我还没有试出来。不知道哪位高手有这方面的经验),这是不太方便的。如果需要添加子目录的话,可以照下面的方法做:
    • 新建一个Module
      添加一个Module可以在ONET.XMl中的Project/Configurations/Configuration/Modules下新建一个Module子元素,如:
      <Modules>
        
      <Module Name="Default" />
        
      <Module Name="NewMd" />
      </Modules>
    • 更改此Module的属性然后需要相应的在 Project/Modules元素下新建一个Module元素,其中: Path属性指定此Module对应的文件夹的相对路径(相对与此ONET.XMl),Url属性指定在网页中访问此网站的路径。另外还有一个 RootWebOnly 属性指定此Module是否只有在根网站才有。如:
      <Module Name="NewWd" Url="_New" Path="New/">
      <Module />
    • 添加文件然后就是象上面一样,在这个Module元素下添加File元素了。
使用上面介绍的方法可以帮助我们定义自己的网站定义。

posted on 2004-10-08 09:22  Liner  阅读(1240)  评论(0编辑  收藏  举报

导航