Sharepoint站点定义

一、概述:

1、基于站点定义创建完站点之后也不能将相关站点定义删除,站点集或站点穿件后都会对相关的站点定义文件有以来,删除将导致功能无法正常运行.

2、1033\XML下的XML文件是站点定义清单,具体的站点定义模版在Template\SiteTemplates下的文件中定义,通过ID和ConfigurationID进行关联

3、每个站点定义模版必须有一个ONET.XML文件

4、不建议使用自定义的站点定义,在迁移时如果没有将此模版部署,会导致无法使用的问题,只作为一种技术讨论

二、结构分析

Sharepoint根目录\1033\XML下的XML文件以WEBTEMPD为例:

 

<Templates xmlns:ows="Microsoft SharePoint">
 <Template Name="GLOBAL" SetupPath="global" ID="0">
    <Configuration ID="0" Title="Global template" Hidden="TRUE" ImageUrl="" Description="This template is used for initializing a new site." >   </Configuration>
 </Template>
 <Template Name="STS" ID="1">
    <Configuration ID="0" Title="Team Site" Hidden="FALSE" ImageUrl="/_layouts/images/stts.png" Description="A site for teams to quickly organize, author, and share information. It provides a document library, and lists for managing announcements, calendar items, tasks, and discussions." DisplayCategory="Collaboration" >    </Configuration>
    <Configuration ID="1" Title="Blank Site" Hidden="FALSE" ImageUrl="/_layouts/images/stbs.png" Description="A blank site for you to customize based on your requirements." DisplayCategory="Collaboration" AllowGlobalFeatureAssociations="False" >    </Configuration>
    <Configuration ID="2" Title="Document Workspace" Hidden="FALSE" ImageUrl="/_layouts/images/stdw.png" Description="A site for colleagues to work together on a document. It provides a document library for storing the primary document and supporting files, a tasks list for assigning to-do items, and a links list for resources related to the document." DisplayCategory="Collaboration" >    </Configuration>
 </Template>

 

第一个Template定义GLOBAL模版,在创建网站是先根据GLOBAL站点定义穿件基本的站点元素,之后根据指定的站点定义创建其他元素,Global站点定义的ONET.XML位于\Template\GLOBAR\XML下。

根元素Project下面包含NavVarsListTemplatesBaseTypesConfigurations以及Modules元素,

ListTemplates元素包含了对系统列表和库的定义,比如母版页库、解决方案库、用户列表、Web部件库等;

BaseTypes节点定义了支持的基础类型泛型列表、文档库、讨论版和Issue列表;

Configuration节中定义了Lists创建时要创建的列表)、Modules元素(为站点中生成相应的文件,如引入基础母版页等

 

第二个Template定以STS模版,在STS中包含三个站点模版:Team SiteBlank SiteDocument Workspace

Template\SiteTemplates文件夹下有对应的STS站点模版文件夹

XML文件夹中有一个ONET.XML定义文件,default.aspx定义Team SiteBlank Site的主页,defaultdws.aspx定义Document Workspace的主页

ONET.XML:

 

<Project Title="$Resources:onet_TeamWebSite;" Revision="2" ListDir="$Resources:core,lists_Folder;" xmlns:ows="Microsoft SharePoint" UIVersion="4">
<NavBars>                    定义导航
</NavBars>
<ListTemplates>               定义List模版,向后兼容,通常不使用
</ListTemplates>
<DocumentTemplates>                 定义Document模版,向后兼容,通常不使用
</DocumentTemplates>
<Configurations>                            定义创建站点时的列表、Feature等的定义
</Configurations>
<Modules>                                             在站点中生成相应的文件
</Modules>
<ServerEmailFooter>$Resources:ServerEmailFooter;</ServerEmailFooter>

 

站点定义的结构基本分析完了,接下来我们新建一个站点定义

三、测试代码:

(一)在VS2010中新建

 

 

(二)新建后,vs会帮我们建好定义文件

 

 

在onet.xml中添加以下代码:
<Project Title="SiteDefinitionDemo" Revision="2" ListDir="" xmlns:ows="Microsoft SharePoint" xmlns="http://schemas.microsoft.com/sharepoint/">
  <NavBars>
    <NavBar Name="$Resources:core,category_Documents;" Prefix="&lt;table border='0' cellpadding='4' cellspacing='0'&gt;" Body="&lt;tr&gt;&lt;td&gt;&lt;table border='0' cellpadding='0' cellspacing='0'&gt;&lt;tr&gt;&lt;td&gt;&lt;img src='/_layouts/images/blank.gif' id='100' alt='' border='0'&gt;&amp;nbsp;&lt;/td&gt;&lt;td valign='top'&gt;&lt;a id='onetleftnavbar#LABEL_ID#' href='#URL#'&gt;#LABEL#&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;" Suffix="&lt;/table&gt;" ID="1004" />
    <NavBar Name="$Resources:core,category_Lists;" Prefix="&lt;table border='0' cellpadding='4' cellspacing='0'&gt;" Body="&lt;tr&gt;&lt;td&gt;&lt;table border='0' cellpadding='0' cellspacing='0'&gt;&lt;tr&gt;&lt;td&gt;&lt;img src='/_layouts/images/blank.gif' id='100' alt='' border='0'&gt;&amp;nbsp;&lt;/td&gt;&lt;td valign='top'&gt;&lt;a id='onetleftnavbar#LABEL_ID#' href='#URL#'&gt;#LABEL#&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;" Suffix="&lt;/table&gt;" ID="1003" />
  </NavBars>
  <Configurations>
    <Configuration ID="0" Name="SiteDefinitionDemo">
      <Lists>
        <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title;" Url="$Resources:core,shareddocuments_Folder;" QuickLaunchUrl="$Resources:core,shareddocuments_Folder;/Forms/AllItems.aspx" />
        <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" Type="108" Title="$Resources:core,discussions_Title;" Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;/AllItems.aspx" EmailAlias="$Resources:core,discussions_EmailAlias;" />
        <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" Type="104" Title="$Resources:core,announceList;" Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;">
          <Data>
            <Rows>
              <Row>
                <Field Name="Title">$Resources:onetid11;</Field>
                <Field Name="Body">$Resources:onetid12;</Field>
                <Field Name="Expires">&lt;ows:TodayISO/&gt;</Field>
              </Row>
            </Rows>
          </Data>
        </List>
      </Lists>
      <SiteFeatures>
                  <!-- BasicWebParts Feature -->
        <Feature ID="FDE5D850-671E-4143-950A-87B473922DC7" />
      </SiteFeatures>
      <WebFeatures>
                  <!-- TeamCollab Feature 不加也可以-->
        <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" />
      </WebFeatures>
      <Modules>
        <Module Name="Default" />
      </Modules>
    </Configuration>
  </Configurations>
  <Modules>
    <Module Name="Default" Url="" Path="">
      <File Url="default.aspx">
      </File>
    </Module>
  </Modules>
</Project>

 

1、在代码中,<NavBars>节定义了在页面快速导航中显示文档库和列表,如果不添加,则不在页面中显示。

2、在<Lists>中创建3个列表:共享文档(shareddocuments),讨论区(discussions),通知(announceList)。在创建网站的同时会创建者三个列表。

3、创建通知列表同时定义了1条数据,用<Data>定义。

4SiteFeaturesWebFeatures中定义了要激活的Feature

5Modules中创建站点主页

 

 

(三)部署解决方案

 

部署解决方案后,手动重启IIS,进入网站,点击新建站点,在自定义中找到我们定义的网站模版并创建

 

 

 

 

创建完成效果:

 

 

posted @ 2013-01-27 20:12  任泽华Ryan  阅读(1071)  评论(0编辑  收藏  举报