本任務中將演示如何創建一個自定義列表模板的Feature,並將其添加到創建頁面中的可供選擇的可用列表模板中。添加一個自定義列表定義需要您提供下列3個文件:
Feature.xml 用於注冊列表模板。
Elements.xml 將列表模板添加到創建頁面中。
Schema.xml 定義了該列表的架構,與哪些內容類型相關聯,字段和視圖的定義,窗體和工具欄的引用等。
步驟
在Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATES\FEATURES 下創建一個文件夾,起個合適的名字,比如SimpleListFeature。
在新文件夾裡創建一個IFeature.xml 文件,指定 title, ID, 和Feature的scope,以及 Elements.xml 文件的位置,如下所示:
<Feature Title="Simple List Feature" Id="GUID" Scope="Web" xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Elements.xml" />
</ElementManifests>
</Feature>
用新創建的GUID替換上面的 GUID 占位符。通過運行 guidgen.exe可以得到一個新的GUID,該命令行工具位於Local_Drive:\Program Files\Microsoft Visual Studio 8\Common7\Tools下。
在新文件夾裡創建一個 Elements.xml 文件來標識列表模板,並指定其顯示在創建頁面中的信息。 給它指定一個大於10000的Type 值,並且不要與其他自定義列表定義的值相同。
<Elements>
<ListTemplate Name="SimpleList" DisplayName="Simple List" Type="10001"
Description="This is my simple list." BaseType="0" OnQuickLaunch="FALSE" SecurityBits="11" />
</Elements>
創建一個子文件夾,名稱與前面指派給列表模板的名字一樣,比如, SimpleList。
在該子文件夾中新建一個 Schema.xml 文件,定義該列表。
在命令行中,輸入下列命令來安裝並在特定子網站上激活該Feature。
a. stsadm -o installfeature -filename SimpleListFeature\Feature.xml
b. stsadm -o activatefeature -name SimpleListFeature -url http://Server/Site/Subsite
通過導航到創建頁面來看看效果,可以通過套用該模板創建一個列表。
Schema.xml 文件
在Schema.xml的開頭部分定義了列表所需的任何自定義字段,如下面例子中為該列表定義了一個選項類型的字段:
<List Name="SimpleList" Title="Simple List" BaseType="0" Direction="" Url="">
<MetaData>
<FIElds>
<Field Type="Choice" Name="FavoriteColor" DisplayName="Favorite Color">
<CHOICES>
<CHOICE>Red</CHOICE>
<CHOICE>Green</CHOICE>
<CHOICE>Blue</CHOICE>
</CHOICES>
</Field>
</Fields>
<Views>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main"
DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;"
DefaultView="TRUE" SetupPath="pages\viewpage.aspx"
ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
添加該字段的一個引用到ViewFields一節中,以便將該字段顯示在列表視圖和列表項窗體中。
<ViewFields>
<FieldRef Name="DocIcon"/>
<FieldRef Name="Attachments"/>
<FieldRef Name="LinkTitle"/>
<FieldRef Name="FavoriteColor"/>
</ViewFields>
您可以拷貝一個已有列表定義的 Schema.xml 文件,然後在此基礎上進行修改。通過這種方法可以快速創建出一個自定義的列表。