Sharepoint 站点模板和站点定义、定制站点定义
站点模板和站点定义 |
定制SharePoint站点,你有两种方式,使用定制的模板或创建站点定义。
定制的模板使你能够通过使用用户接口来定制一个站点。例如,你可以通过一个已有的列表得到一个定制的列表,或者创建一个定制列表,作为一个列表模板来使用,而站点管理员可以从一个可用的列表模板的列表中来选择它。SharePoint Services将所有的定制模板存放在内容数据库中。你可以从“顶层站点管理”或使用FrontPage 2003来定制列表和站点范本。
站点定义由位于每个web服务器文件系统中的多个文档组成。站点定义和模板一起实现对一个站点的定义。定制的模板总是同其所依赖的站点定义关联。一个定制的模板依赖于文件系统中的站点定义以正常工作。一个定制的模板在一个模板被生成后是同一个站点定义和站点的状态不同的。模板会跟踪到存贮在配置数据库中的站点定义的改变。本文文件描述使用定制的模板和站点定义的好处和缺点,并为何时选择使用一个而不是另一个提供指南,以及当安装产品更新时,如何避免覆盖定制的模板和站点定义。
创建定制的范本
现在我们已经知道定制的模板会跟踪到SharePoint站点定义的改变,我们可以来看看定制模板的不同类型:列表模板跟踪到列、窗体、页面,以及可选择的,和一个特定列表相关的内容的改变。站点模板跟踪到站点导航系统、web part、站点上存在的列表以及可选择的,到一个站点内容的改变。你可以保存一个已有的站点作为站点模板。
注意:对于你可以存贮在一个站点模板中的内容的大小方面,SPS有10M的限制。你可以在“顶层站点管理”的“管理和统计”部分,点击“查看站点使用数据”来查看站点内容的尺寸。
一个定制范本以后缀为.stp的档存在,它其实上是一个.cab档,你可以将之改成.cab后缀的文件并在windows explorer中打开它。此文文件用服务器产生的caml语言包含一个manifest.xml文檔,而此manifest文檔是Microsoft SharePoint Migration Tool manifest文档格式的一个子集。
假如你创建了一个站点,通过添加列表、事件、文档库、定制的web part,并应用特定的主题对该站点进行了定制。你想将之共享给其它的站点管理员或在任何子站点利用这个站点范本。在“站点设置”菜单,点击“到站点管理”在“管理和统计”部分,点击“作为模板保存”。输入一个文件名,并以stp作为后缀,然后为你的站点模板输入一个标题和描述。你也可以选择“包括内容”选择框。你以一个模板的形式在内容数据库的模板库中保存你的站点并使它对于其它的子站点创建时是可用的。当后面创建的子站点是基于相同的站点定义(如,在一个文档工作区)而且具有相同的语言设置,你就可以使用这个模板来创建子站点。
要使你创建的范本出现在站点创建向导的范本列表中,你需要将模板输出到文文件系统,并运行STSADM命令。要输出模板,用鼠标右击模板然后点击“保存目标为”命令,然后跟随提示以保存范本。一旦将模板保存在文文件系统中,打开命令窗口,键入以下命令:stsadm.exe –o addtemplate –filename “local_drive:\site_template_file_name.stp” –tile “Site_Template_Name”
注意:你必须重启IIS以使该改动生效。在重启了IIS后,Site_Template_Name模板在站点模板列表中就可以看见了。
使用同样的方式,你可以输出一个列表模板,但是该列表模板只是在你输出到站点的站点集中的可用的。
关于协作应用程序标注语言CAML
它是一个基于XML的语言,用于定义一个站点的协作对象。在SharePoint Services中,它定义站点、列表、域、视图或窗体。
CAML实际上有两个主要的元素---它们用于域的rendering和schema的定义,以及那些用于页面rendering的东西。例如,当你需要提取一个特定域的属性并在页面上rendering它时,你可以使用用于page-rendering的CAML元素。
你也可以在实施站点的时候,使用CAML来定义在站点数据库中的表。你可以使用CAML来定制一个SharePoint站点,或在到SharePoint Services中的Web Service的SOAP的消息中使用CAML以同SharePoint Services进行远程的交互。在这种情况下,你通过方法的参数来传递CAML串,将它们设置为属性,或通过方法或属性返回它们。详细的信息请参见SPS的SDK。
创建站点定义
站点定义同模板类似。站点定义由位于在每个web服务器文文件系统中的一些文文件组成。站点定义档包括XML标注,这些标注为一个站点定义一个模板。SharePoint Services中包含的缺省站点类型都使用站点定义创建(如团队站点、空白站点、文档工作区等等)。在安装过程中,SharePoint Services创建每个站点定义的一个版本。站点定义文文件存放在下面位置的子目录中:
Local_drive:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\
建议你通过拷贝一个已有的站点定义来创建一个定制的站点定义,不要去修改SharePoint Services安装的原始文檔。因为你对原始文檔的修改在安装SharePoint Services的更新或Service Packs,或更新到产品的下一个版本时会丢失。
创建一个站点定义
1、 在下面的位置拷贝一个已有的站点模板文件:
a) Local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\Template\lcid
b) 例如,拷贝一个站点模板文件夹并改名为“TRAINING”。
2、 然后在下面位置拷贝WEBTEMP.XML文件
a) Local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\Template\XML
3、 将拷贝的文件改名,如改为:WEBTEMPTRAINING.XML
在初始化的时候,编译器会合并包含在有前缀之文檔WEBTEMP*.XML中的信息,并使用它们来创建站点。这为ISV提供了非常容易的扩展能力来创建同SharePoint产品和技术集成的站点定义。
注意:在SharePoint Portal Server中部署的区域都存贮在以/SPS*开头的目录中。
一个站点定义由下面三个档组成:WEBTEMP.XML, ONET.XML以及SCHEMA.XML。下面的表显示在文件系统中档的位置,以及它们的定义。
Site Definition File |
Location |
Description |
WEBTEMP.XML |
Local_drive:\Program Files\Common Files\Microsoft Shared\Web server extensions\60\TEMPLATE\1033\XML |
Specifies configurations of lists and modules for a site definition. |
ONET.XML |
Local_drive:\Program Files\Common Files\Microsoft Shared\Web server extensions\60\TEMPLATE\1033\*\XML |
Defines navigation bars such as the top link bar and the quick launch, available lists, document templates, base types, configurations, modules |
SCHEMA.XML |
Local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\TEMPLATE\1033\Custom_Site_Template\LISTS |
Defines the columns, views, and contents of a list |
WEBTEMP.XML
WEBTEMP.XML文件包含在创建站点的实例时,在“模板选择”页面中可用的站点定义。WEBTEMP.XML为一个站点定义定义站点模板。缺省情况下,SharePoint Services包含下面的站点范本:团队站点、空白站点、文档工作区、会议工作区。
你可以编辑缺省的WEBTEMP.XML文件来修改已有的范本列表。要在站点范本列表中隐藏特定的范本,在WEBTEMP.XML文件中,找到范本那一部分,然后设置configuration元素的Hidden属性为TRUE。设置Hidden属性为False使模板是可见的。
在你对缺省版本进行修改前,记得拷贝和重命名WEBTEMP.XML文件。在下面的例子中,我们使用拷贝和重命名的文件WEBTEMPTRAINING.XML来创建一个Training Team Site和一个Trainee Workspace。
WEBTEMPTRAINING.XML
<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft SharePoint">
<Template Name="TRAINING" ID="10101">
<Configuration ID="0" Title="Training Team Site" Type="0"
Hidden="FALSE"
ImageUrl="images/stsprev.jpg"
Description="This template provides a forum
for the team to create, organize, and share information
quickly and easily. It includes a document library, and
basic lists such as Announcements, Events, Contacts,
and Quick Links.">
</Configuration>
<Configuration ID="1" Title="Trainee Workspace" Type="0"
Hidden="FALSE"
ImageUrl="images/dwsprev.jpg"
Description="This definition creates a site for Trainees
to work together on specific documents.">
</Configuration>
</Template>
</Templates>
WEBTEMPTRAINING.XML文件包含一个Template元素,用来为一种站点定义一个模板。每个Template元素都有一个Name属性,它必须同前缀为webtemp的XML文件名相同。例如,在前面的代码中,Name的属性为Training,同有前缀webtemp的文件名字相同。在初始化过程中,SharePoint Services查看有webtemp前缀的文档,并将之装载到内存中去。
注意:要使更改生效,你必须重启IIS。只要你对WEBTEMP*.XML檔做了修改。
一个站点定义只需要一个Template根元素。为了避免同已有的SharePoint Services使用的ID冲突,为ID属性设置大于10000值。
WEBTEMPTRAINING.XML档为在创建站点时选择新的模板创建了其它的模板选择。
ONET.XML
ONET.XML文文件定义顶端链接条和快速访问条。它还为一个web part页面定义可用的缺省文文件和列表范本,如:文文件库、图片库、定制列表、讨论板、调查等等。ONET.XML文档还指定在创建站点时要包括的文文件的配置信息,以及在创建站点时确定这些文文件位置的module。对于详细的信息,请参看SDK。
为一个站点定制导航条
你可以定制一个存在站点的导航条,这通过在用于一个定制站点范本的ONET.XML文文件中的NavBar元素添加NavBarLink元素来实现。你可以增加一个到本地档、服务器上的页面或任何地方的任何文件和页面的链接。下面的例子添加了两个NavBarLink元素,一个提供到服务器上一个本地文件的链接,此文件名为Sample.aspx,一个提供到URL:http://example.microsoft.com/的链接。
<NavBars>
<NavBar Name="SharePoint Top Navbar" ID="1002">
<NavBarLink Name="Documents and Lists"
Url="_layouts/[%=System.Threading.Thread.CurrentThread.CurrentCulture.LCID%]/viewlsts.aspx">
</NavBarLink>
<NavBarLink Name="Create"
Url="_layouts/[%=System.Threading.Thread.CurrentThread.CurrentCulture.LCID%]/create.aspx">
</NavBarLink>
<NavBarLink Name="Site Settings"
Url="_layouts/[%=System.Threading.Thread.CurrentThread.CurrentCulture.LCID%]/settings.aspx">
</NavBarLink>
<NavBarLink Name="Get Current Data" Url="_layouts/Sample.aspx"></NavBarLink>
<NavBarLink Name="microsoft" Url="http://example.microsoft.com/"></NavBarLink>
<NavBarLink Name="Help" Url="javascript:HelpWindow()"></NavBarLink>
</NavBar>
<NavBar Name="Documents" ID="1004">
</NavBar>
<NavBar Name="Pictures" ID="1005">
</NavBar>
<NavBar Name="Lists" ID="1003">
</NavBar>
<NavBar Name="Discussions" ID="1006">
</NavBar>
<NavBar Name="Surveys" ID="1007">
</NavBar>
</NavBars>
使用site Configurations
当创建站点定义时,configuration元素确定包含哪些lists和modules。一项configuration允许一个站点定义在站点布局和设计方面提供多个选择,如团队站点、空白站点、文档工作区。每个以上所提及的站点模板都是对list和web parts进行不同的配置的结果,然后在这里用configuration元素代表。WEBTEMP.XML和ONET.XML都包括configuration元素。在WEBTEMP.XML文件中,此元素包含在Template元素里,并为站点定义确定需要包含的configuration选项。
在ONET.XML文件中,Configuration元素包含在Configurations元素里,它确定一个或多个包含lists和modules的配置。每个configuration元素都包含一个ID属性,在ONET.XML档中,对于一个列表定义的配置通过ID属性同一个站点模板中指定的配置关联。在Template元素中的Name属性的值和这个ID属性的组合提供到一个ONET.XML文文件中一个特定的Configuration元素之内容的引用。
你可以为一个站点定义重用在指定在ONET.XML档中的已有的列表定义。你也可以在一个ONET.XML档中创建多个Configurations。使用这种方式,每个配置---configuration允许创建拥有不同列表组、web parts和布局的站点。
表:配置元素属性
Name |
Description |
Description |
Optional Text. Contains the description of the site configuration that appears on the Template Selection page. |
Hidden |
Optional Boolean. Specifies whether the site configuration appears as an option on the Template Selection page. |
ID |
Required Integer. Specifies a unique ID for the configuration. |
ImageUrlURL |
Optional Text. Contains the URL for the preview image displayed on theTemplate Selection page. |
Name |
Optional Text. Contains the name of the configuration. |
Title |
Optional Text. Contains the title of the configuration that is displayed on the Template Selection page. |
Type |
Optional Text. Identifies the configuration with a specific site definition. |
要在站点定义中创建一项配置,在你自己的WEBTEM*.XML文件中使用configuration元素,在此引用一个或多个ONET.XML文件。
例如,在前面例子中的WEBTEMPTRAINING.XML文档使用了两个configuration来定义不同的站点配置,一个针对training团队站点,一个针对training文档工作区站点。这个例子在一个单一的站点定义里使用了两个配置---configuration,由此,你知道你可以在一个单独的WEBTEMPTRAINING..XML文件中用不同的配置包含多个定义,每个指向不同的站点定义目录以及相应的ONET.XML文件。
在ONET.XML档中,每一项configuration定义一个特定类型的站点,你可以依站点定义创建此站点。在此檔中的所有configuration都共享一组可用的列表定义,文文件模板,导航区域,基本的列表类型以及在档定义的modules。你可以通过在configuration元素中定义的列表集中添加一项list元素来添加一项到定义在ONET.XML档中的一个列表的引用。例如,假如你要在ONET.XML文件中用一个143的Type属性定义一个名叫“My Custom List”的列表类型,然后你添加<List Title=“My_Custom_List” Type=143 URL=”Lists/My_Custom_List”/>,以在configuration项中增加一个列表定义。下面的例子显示为特定的WEBTEMP*.XML文件,在ONET.XML档中对于configuration的安排。
<Configurations>
<Configuration ID="0" Name="Default">
<Lists>
<List Title="My_Custom_List" Type="143" Url="Lists/My_Custom_List" />
<List Title="Shared Documents" Url="Shared Documents"
QuickLaunchUrl="Shared Documents/Forms/AllItems.aspx"
Type="101" />
<List Title="General Discussion" Url="Lists/General Discussion"
QuickLaunchUrl="Lists/General Discussion/AllItems.aspx"
Type="108" />
<List Title="Announcements" Type="104" Url="Lists/Announcements" />
<List Title="Links" Type="103" Url="Lists/Links" />
<List Title="Contacts" Url="Lists/Contacts" QuickLaunchUrl="Lists/Contacts/AllItems.aspx" Type="105" />
<List Title="Events" Type="106" Url="Lists/Events" />
<List Title="Tasks" Url="Lists/Tasks" QuickLaunchUrl="Lists/Tasks/AllItems.aspx" Type="107" />
<List Title="Site Template Catalog" Type="111" Url="_catalogs/wt" RootWebOnly="TRUE" />
<List Title="Web Part Catalog" Type="113" Url="_catalogs/wp" RootWebOnly="TRUE" />
<List Title="List Template Catalog" Type="114" Url="_catalogs/lt" RootWebOnly="TRUE" />
</Lists>
<Modules>
<Module Name="Default"/>
<Module Name="WebPartPopulation"/>
</Modules>
</Configuration>
<Configuration ID="1" Name="DWS">
<Lists>
<List Title="Shared Documents" Type="101" />
<List Title="Image Library" Type="109" />
<List Title="General Discussion" Url="Lists/General Discussion"
QuickLaunchUrl="Lists/General Discussion/AllItems.aspx" Type="108" />
<List Title="Announcements" Type="104" Url="Lists/Announcements" />
<List Title="Contacts" Url="Lists/Contacts" QuickLaunchUrl="Lists/Contacts/AllItems.aspx"
Type="105" />
<List Title="Links" Type="103" Url="Lists/Links" />
<List Title="Events" Url="Lists/Events" QuickLaunchUrl="Lists/Events/AllItems.aspx"
Type="106" />
<List Title="Tasks" Type="107" />
<List Title="Site Template Catalog" Type="111" Url="_catalogs/wt" RootWebOnly="TRUE" />
<List Title="Web Part Catalog" Type="113" Url="_catalogs/wp" RootWebOnly="TRUE" />
<List Title="List Template Catalog" Type="114" Url="_catalogs/lt" RootWebOnly="TRUE" />
</Lists>
<Modules>
<Module Name="DWS"/>
<Module Name="WebPartPopulation"/>
</Modules>
</Configuration>
</Configurations>
使用Modules
Modules服务于两个目标。Modules确定和一个定义相关的所有档,并确定在一个新站点中这些文件的位置。例如,假如档是一个web part页面,module定义会确定web part页面本身以及确定包含在此页面上的web parts,或列表或文件。文件封装在作为module的子元素的File元素中。
你必须在Configuration元素中声明一个module作为一个元素。你也可以在configuration外面使用modules来定义作为站点定义一部分的任何档的URL。
下面是一个ONET.XML文件的例子,显示如何使用module。
<Module Name="Default" Url="" Path="">
<File Url="default.aspx" NavBarHome="True">
<View List="104" BaseViewID="0" WebPartZoneID="Left"/>
<View List="106" BaseViewID="0" WebPartZoneID="Left"
WebPartOrder="2"/>
<AllUsersWebPart WebPartZoneID="Right"WebPartOrder="1">
<![CDATA[
<WebPart xmlns=http://schemas.microsoft.com/WebPart/v2
xmlns:iwp="http://schemas.microsoft.com/WebPart/v2/Image">
<Assembly>Microsoft.SharePoint, Version=11.0.0.0,
Culture=neutral,
PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ImageWebPart
</TypeName>
<FrameType>None</FrameType>
<Title>Site Image</Title>
<iwp:ImageLink>/_layouts/images/homepage.gif
</iwp:ImageLink>
</WebPart>
]]>
</AllUsersWebPart>
<View List="103" BaseViewID="0" WebPartZoneID="Right"
WebPartOrder="2"/>
<NavBarPage Name="Home" ID="1002" Position="Start">
</NavBarPage>
<NavBarPage Name="Home" ID="0" Position="Start">
</NavBarPage>
</File>
</Module>
注意:HTML定义不允许嵌套<CDATA>标注。为了解决此问题,你需要在移去行内标注,而在它的内容上使用HtmlEncode。
URL属性是需要的,并为module指派执行的主要档。例如,URL指定一个web part的页面,叫着default.aspx,或一个特定web part的dwp檔。在Module元素中,你可以包括web part定义以及在web part区域的放置。前面的例子中,指定了一个单一的image web part,并显示在web part区域的右边。
你还能指定是否在页面的顶层导航区域显示一个module,或放置在页面的web part区域。在前面的例子中,在module中的view和web part显示在主页中。当创建站点后,此站点包括通过module定义的任何档。
使用SCHEMA.XML来定义域
SCHEMA.XML档为一个列表定义视图、窗体和任何特定的域。要定制一个拥有定制视图的列表,你可以修改SCHEMA.XML档并在列表定义中添加域。
在列表定义中添加一个域
1. Go to the following directory:
Local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\TEMPLATE\1033\Custom_Site_Template\LISTS
每个子目录都代表一个特定的列表。
- 打开一个你想定制的代表列表的子目录
- 在文本编辑器中打开SCHEMA.XML文件。
- 在檔的 Metadata 部分, 找到在包含一个列表类型中所有域定义的Fields 元素。 你可像如下所示那样在Fields元素下面增加新的域:
<Field Name="EmployeeID" DisplayName="Employee ID" Type="Number"Required="TRUE" Description="Enter the ID from your employee badge."/>
详细的信息,参考SDK。
为一个列表定制工具条Toolbar
如果要为列表定制工具条,你需要修高SCHEMA.XML文件中的Toolbar元素。要在工具条上增加一个新的链接,例如,你可以拷贝一个链接的已有定义然后再修改它。这种做法会保持用于显示链接的表的嵌套不变并确保你增加的链接的样子和其它的链接一样。
下面的例子在包含在Shared Documents档夹里的一个文档列表的工具条上增加一个链接。
<tr>
<td style="padding-left: 2px;padding-bottom: 2px" width=100%>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr>
<td width=100% class="ms-unselectednav" colspan=2>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td valign=top>
<img src="/Portals/3/http://www.cnblogs.com/_layouts/images/rect.gif">
</td>
<td>
<A HREF="]]></HTML><HttpVDir/><HTML><![CDATA[/Shared Documents/MeetingNotes.doc">]]></HTML><HTML>Type Conversions</HTML><HTML><![CDATA[</A>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
这个例子显示工具条嵌套在三个表之内。例子中的两个表被包含在属于第三个表的<tr>和<td>中,这第三个表用作包含所有工具条上链接的框。CAML的HttpVDir元素,它返回当前子站点的根目录,为URL构建完整的路径。
当基于这个范本创建一个新的列表时,一个到MeetingNotes.doc文件的链接会显示在工具条上。
使用模板来定制门户的区域
当在SharePoint Portal Server中创建一个区域时,你可以选择使用区域模板。区域模板是一个站点定义,同SharePoint Services中站点定义一样,它包括多个档并拥有相似的架构。它们被存贮在下面的位置:
Local_drive:\Program Files\Common Files\Microsoft Shared\Web server extensions\60\template\1033
一个区域模板可以包含:
l 一个站点主页
l 站点上的列表
l 文档库
区域模板目录缺省的命名规则是以SPS开始。下面的表列出了模板和它们对应的区域。
Template |
Maps to |
SPS |
Home |
SPSBWEB |
To create bucket Web sites |
SPSCOMMU |
Communities |
SPSMSITE |
Site Registry |
SPSNEWS |
Subareas under News |
SPSNHOME |
News Home |
SPSPERS |
MySite |
SPSTOC |
Topics Home |
SPSTOPIC |
Topic |
基于已有的定义创建一个区域模板
1. Copy and paste an area template folder (such as SPSCOMMU) and rename it, for example, SPSMyTemplate.
a) Note The new template name must begin with SPS.
2. Leave the default WEBTEMPSPS.XML file, and create a new one, such as WEBTEMPMySPS.xml, for the new template.
3. Optionally, you can create additional lists, either as described earlier in this article, or as described in "Creating a List Definition" (Microsoft SharePoint Products and Technologies 2003 Software Development Kit (SDK)).
4. In the new template folder, modify ONET.XML to add Web Parts and lists the same way you modify a SharePoint site. You can also modify default.aspx to suit your needs.
5. Reset IIS to have the changes take effect. The new area template should appear in the area template picker on the Create New Area page.
为子区域指定一个模板
当你改变同一个区域关联的模板,你可以为它的子区域指定一个模板。
为子区域指定一个模板
1. For any area you want to change, under Actions, click Manage Portal Site.
2. For the area of your choice, in the Edit drop-down list box, click Edit.
3. Click the Page tab. In the Subarea Templates section you can choose one of the following:
· Subareas can use any template (in the list of available area templates)
· All subareas will use the following template (which you choose from the drop-down list)
范本的继承
一个区域可以从它的父区域、一个页面、或从一个初始模板继承模板。
为当前区域设置一个模板
1. For any area you want to change, under Actions, click Manage Portal Site.
2. For the area of your choice, in the Edit drop-down list box, click Edit.
3. Click the Page tab. In the Area Templates section you can choose one of the following:
· This area uses the same template as the parent area Use the parent template to render this area.
· Note The area uses the parent's template and the default SharePoint lists, but portal listings are still sourced from the current area.
· This area uses the template originally specified for this area Use the template specified at area creation time to render the area. Picking this option reverts the template to the one used when the area was created.
· This area uses the following page as a template You provide any URL here that you want. You can add the relative URL to another area to use that area's template, for example, /topics/default.aspx. Or you can create your own page, and provide the URL to that page. Regardless of what you type here, if the page used has a Portal Listing Web Part on it, by default it uses the listing information from the current area as its source.
在缺省的情况下,一个子区域继承其父区域的安全性设置,但是你可以通过在该区域的动作菜单上,点击“管理安全性”来改变安全设置。类似,你可以增加用户和修改许可。你也可以改变当前区域上站点组的许可。修改子区域的安全设置会打断其安全性继承。你可以重建到父区域的安全性继承,选择在当前区域上的“从父区域继承许可”链接。
编辑已有的区域模板
一个区域模板实际上包括:一个样式表引用,在页面上运行的不同部件和控件的注册项,标准的HTML定义的布局,zones(包含web part的容器),web controls(例如,导航系统),以及在某些情况下,还包含web part的实例。主要的文件是每个模板文件夹根目录上的default.aspx。对于所有的模板来说,在一个拷贝的模板基础上创建是可行的,在这里例外的是站点的主页、事件日历和站点目录模板。因为站点的主页、事件日历和站点目录都已经使用了SPS模板创建,所以不可能使用其它的模板re-provision站点。你必须改变缺省的范本以修改主页的外观。假如你想基于一个新范本创建一个定制的站点目录,你也许会导致很多功能上的问题,因为新的站点目录页面会在/C*/中。从缺省的模板编辑站点目录页面会更有效,让站点区域留在这个位置(/SiteDirectory/)。当你创建一个新范本时,你必须将之添加到系统中,这样,才能让内容创建者选择它。
在系统中增加一个新范本
1. Note the name of the new template folder (such as SPSTOPICMSW).
2. In a text editor such as Notepad, open WEBTEMPSPS.XML located at \\FE_Server_name \c$\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\XML.
3. Within the <Templates> node, copy and then paste an existing <Template> node. For example:
<Template Name="SPSNEWS" ID="32">
<Configuration ID="0" Title="News area template" Type="0" Hidden="TRUE"
ImageUrl="../images/spshome.gif" Description="Area Template."></Configuration>
</Template>
4. Replace the Name property with the name of the new template folder.
5. Give the new template a unique ID.
6. Replace the Title, ImageUrl, and Description properties as appropriate.
7. Save the file, and then restart IIS.
8. The template is now available as a new item in the Template menu on the Create Area form.
前面我们提到过,一个模板实际上由一个样式表引用,在页面上运行的不同部件和控件的注册项,标准的HTML定义的布局,zones(包含web part的容器),web controls(例如,导航系统),以及在某些情况下,还包含web part的实例组成。
修改范本其实就是简单地在文本编辑器中打开选择的模板,做必要的修改,然后保存。你不需要重启IIS。
一些提示
如果你知道需要对范本做实质上的改变,建议你创建一个新的范本而不是去修改已有的范本。这将保证你的模板不会受产品更新的影响,以及不会发生同新的SPS代码冲突的可能。不要将你的模板存放已有模板的目录里,并以相同的名字调用它们,如果这样,在产品升级的时候,你的代码会被覆盖掉。
做一个“母板”页面----做为你自己模板的快速开始点。
使用模板和站点定义的指南
有多种方式你可以用来修剪站点来满足你的需求。当你定制一个站点的时候,你需要了解一些关键的因素,它们会帮助你决定是否选择模板或站点定义。
对站点进行修改,工作量的大小是一个关键的因素。缺省的站点模板在设计和多样性方面有一些限制,因为它被设计的主要目的是一个内部网的门户,而不是一个公司在Internet上的web网站。假如你需要一个同缺省站点显著不同的站点设计,那么一个新的站点定义也许是你最适合的选择。
典型地,整个站点的实施对用户的体验来说是一致的,但是,站点管理员一般都希望在站点的设计和布局方面能够进行一些定制。在一些情况下,在站点外观相对小的范围进行控制(包括logo,菜单,导航的方式等等)能使站点有独特的外观同时维持在整体实施上的一致性。在这种情况下,站点模板也许是合适的选择。
当使用站点定义时
使用站点定义来定制门户站点和其它的SharePoint站点对第三方开发人员和服务器管理员来讲是最合适的。因为站点定义需要访问web服务器上的文件系统,服务器管理员总是要被包括在站点定义的开发中的。假如你正在修改门户站点的区域,那你将需要使用站点定义。
虽然部署站点定义需要更多的工作,但是站点定义典型地会执行得更好,特别是当它被缓存在文件系统中而不是保存在数据库中时。另外,你能通过编辑所有的schema档而不是像站点模板一样依赖已有得站点定义来得到更好水平的定制。另外,假如你想加入新的档类型、视图风格,以及下拉的编辑菜单,你需要编辑形成站点定义的schema檔。
定制的站点定义不会受产品版本升级的影响。SPS产品版本的升级将影响和覆盖缺省的站点定义。而使用定制的站点定义则使你避免受到升级的潜在影响。
但是,一旦部署了站点定义的话,并没有一种容易的方式来修改它。一旦你修改了已有的站点定义,很可能破坏根据站点定义部署好的站点。你只能对站点定义做一次修改。
当使用站点模板
同站点定义相比较,站点模板更容易创建和部署。你可以通过用户接口或FrontPage 2003来完成所有的定制工作。另外,你不需要是web服务器上的服务器管理员就可以创建和部署站点模板。你可以修改站点模板而不会影响由此模板创建的站点。而部署则是很简单的,因为模板数据集中地存放在配置数据库中。
因为把模板存入数据库,然后又从数据库提取出来是需要时间的,因此站点模板会造成性能不是很好。在数据库中的模板会被编译,并在每次页面被输入的时候执行。SharePoint Service能提供一些性能优化,因为它把范本存放在本地Web服务器上,并把一个页面的拷贝(或者叫”ghost”)存放在配置数据库中。但是,你能容易地防止SharePoint Services使用ghost页面,你仅需要用FrontPage或Web Folders去打开、修改和保存它。从此以后,数据库被用来输入页面。阻值SharePoint Services使用ghost页面会导致页面停止从站点定义档处获取改变,所以,如果你想保持整个门户网站给用户的一致外观并只想修改站点定义档,那就不要阻止此优化。从数据库输出页面将导致初始的性能代价。
站点范本只能用于SharePoint站点,而不能用于门户站点(它不是基于SPS范本的)。此外,站点模板对于一个开发环境来说并不是很理想的。为了生效,它们仍是站点定义的定制。假如站点定义不在服务器上,站点模板将失效。
典型地,因为这些问题,在一个大规模的环境中,站点模板没有站点定义有效。
总结
不管你是开发者还是站点管理员,只要想对缺省的用户接口进行修改以满足特定的需要,那你在定制工作方面有很多的选择的方法。当你创建一个定制站点的时候,你可以做的事情是没有什么限制的。了解模板和站点定义是如何工作的将帮助你更好的定制用户接口以满足需求。定制的模板和站点定义都很容易使用,并且是相对安全的,因为不需要对你的门户部署做主要的更改或破坏任何SPS提供的缺省功能。
各站点定义文件解释
Site Definition Specific |
||
Directory\Files | Description | Sample URL |
MPS | 'Multi-page Team Site' Site Definition | |
SPS | Portal Home Site Definition | |
default.aspx | Portal Home | http://YourSiteName/default.aspx |
SPSBWEB | Bucket Web Site Definition | |
SPSCOMMU | Community Site Definition | |
SPSMSITE | 'My Site' Site Definition | |
default.aspx | Private View | http://YourSiteName/MySite/default.aspx |
public.aspx | Public View | http://YourSiteName/MySite/Public.aspx |
SPSNEWS | News Area Site Definition | |
default.aspx | News Area | |
SPSNHOME | News Home Site Definition | |
default.aspx | News Home | http://YourSiteName/News/default.aspx |
SPSPERS | 'My Site Team Site' Site Definition | |
SPSSITES | Site Registry Site Definition | |
SPSTOC | Topic Home or Contents Area Site Definition | |
default.aspx | Topic Home | |
SPSTOPIC | Topic Area Site Definition | |
default.aspx | Topic Area Home | |
STS | 'Team Site' Site Definition | |
Common with all Site Definitions |
||
Directory\Files | Description | Sample URL |
SiteDefName\DOCTEMP\SMARTPGS | Web Part Pages | |
spstd1.aspx | Full Page, Vertical | |
spstd2.aspx | Header, Footer, 3 Columns | |
spstd3.aspx | Header, Left Column, Body | |
spstd4.aspx | Header, Right Column, Body | |
spstd5.aspx | Header, Footer, 2 Columns, 4 Rows | |
spstd6.aspx | Header, Footer, 4 Columns, Top Row | |
spstd7.aspx | Left Column, Header, Footer, Top Row, 3 Columns | |
spstd8.aspx | Right Column, Header, Footer, Top Row, 3 Columns | |
SiteDefName\LISTS\ANNOUNCE | Announcements | |
AllItems.aspx | All Items View | |
SiteDefName\LISTS\CONTACTS | Contacts | |
AllItems.aspx | All Contacts View | |
SiteDefName\LISTS\CUSTLIST | Custom List | |
AllItems.aspx | All Items View | |
SiteDefName\LISTS\DISCUSS | Discussion Board | |
AllItems.aspx | Threaded View | |
Flat.aspx | Flat View | |
SiteDefName\LISTS\DOCLIB | Document Library | |
AllItems.aspx | All Documents View | |
Upload.aspx | Upload Documents | |
webfldr.aspx | Explorer View | |
SiteDefName\LISTS\EVENTS | Events | |
AllItems.aspx | All Events View | |
calendar.aspx | Calendar View | |
MyItems.aspx | Current Events View | |
SiteDefName\LISTS\FAVORITE | Links | |
AllItems.aspx | All Links View | |
SiteDefName\LISTS\GRIDLIST | Custom List in Datasheet View | |
AllItemsg.aspx | All Items View | |
SiteDefName\LISTS\IMGLIB | Image Library | |
AllItems.aspx | All Pictures View | |
selected.aspx | Selected Pictures View | |
upload.aspx | Add Picture | |
webfldr.aspx | Explorer View | |
SiteDefName\LISTS\ISSUE | Issues | |
active.aspx | Active Issues View | |
AllItems.aspx | All Issues View | |
MyItems.aspx | My Issues View | |
SiteDefName\LISTS\ListTemp | List Template Gallery | |
AllItems.aspx | All Templates View | |
Upload.aspx | Upload Template | |
SiteDefName\LISTS\TASKS | Tasks | |
active.aspx | Active Tasks View | |
AllItems.aspx | All Tasks View | |
byowner.aspx | By Assigned To View | |
DueToday.aspx | Due Today View | |
MyItems.aspx | My Tasks View | |
SiteDefName\LISTS\VOTING | Survey | |
AllItems.aspx | All Responses View | |
overview.aspx | Overview View | |
summary.aspx | Graphical Summary View | |
SiteDefName\LISTS\WEBTEMP | Site Template Gallery | |
Allitems.aspx | All Templates View | |
common.aspx | Default View | |
Upload.aspx | Upload Template | |
SiteDefName\LISTS\WPLIB | Web Part Gallery | |
AllItems.aspx | All Web Parts | |
Upload.aspx | Upload Web Part |
转载请注明:来自ChnCMS
本文地址:http://www.chncms.com/2010/12/7/MOSSTEMPLEATE.html