在WSS中有兩種方式可以實現對站點的定制:站點定義和站點模板。無論是一個站點定義還是一個站點模板都可以包含對一個WSS站點的定義:其中包括站點的列表、文件、Web part、feature和設置。?
? 模板實際上是包括站點模板和列表模板,當用戶通過Web界面或是SharePoint Designer更改一個站點或是列表的定義時,模板中僅僅記錄了更改的內容而并沒有包含全部定義。一個標準的自定義模板中實際上是引用了其原始的站點定義,所以當一個站點模板部署到一個新的站點上時,其引用的站點定義發生了變化,站點模板有可能就會出錯。?
? 站點模板文件的后綴名為.stp,站點模板stp文件中包含了一個站點模板庫和一個Mainfest.xml文件,stp文件實際上是一個cab文件,使用站點設置中的將網站另存為模板的功能,可以將把網站模板導出到網站模板庫中,下載該stp文件,可以把.stp的后綴名改稱.cab打開看看里面的內容。
? 注意在使用將網占另存為模板這個功能的時候,可以選擇包含當前站點的數據的。而保存的.stp文件也可以通過stsadm導入到一個新的站點中。例如導出的stp文件為 DemoSite.stp ,則執行?
? stsadm -o addtemplate -filename DemoSite.stp -title NewDemoSite -description It's a new site from DemoSite Template?
? 結果就是可以建立一個新的站點名字為NewDemoSite。?
? 站點定義是用來記錄站點類型的,這里的站點類型指的是類似于空白站點、工作組站點、會議類型站點等等的站點,在MOSS 2007中有一句話叫做:Everything is site. 沒錯,所有的MOSS的用戶界面都是依托于站點實現的,其中包括MOSS的管理中心和SSP宿主站點中的定義,這些站點實際上都是依托站點定義實現的,每一個不同類型的站點都有其對應的一套站點定義。像MOSS中新增加的blog站點,wiki站點實際上只是新增一個站點的類型而已,在WSS底層方面并沒有為這些不同站點定義什么特殊的功能點。在12-hive文件夾下面有一個template目錄,里面是WSS中各種站點類型的定義文件。如果你更改了這些站點定義文件,那么之后新建的站點也會隨之更改。打開站點定義的內容會發現,站點定義的內容比較復雜,有xml\aspx\ascx\master\ dot\html各種各樣類型的文件,其中xml文件中
存儲
了站點的定義規則而其他類型的文件都是為了實現這個站點定義所使用的功能性文件和模板文件。?
? 實際上開發者也可以自己對站點定義新增aspx頁面文件,但是這些新增的文件都應處于一個unghosted的狀態,并且要在web.config中聲明為
安全
類型,否則將不能被執行,這是為了彌補上載aspx文件后未經聲明而采取
服務器
端調用產生的漏洞。?
? 站點定義中包括著名的四個xml配置文件,可以說這四個文件包含了一個站點的主要定義。?
Onet.xml:最重要的定義文件,其中包括站點導航區域、列表定義、模板定義、內容類型定義、站點的配置和功能模塊信息等等。位置在:\TEMPLATE\1033\STS\XML.?
? Schema.xml:定義了列表的視圖、表單、特殊字段,每一個不同的列表類型有其獨立的Schema.xml。位置在:\TEMPLATE\1033\STS\LISTS\.?
? WebTemp.xml:包含了站點定義的一些配置信息。位置在:\TEMPLATE\1033\XML.?
? DocIcon.xml:顧名思義,定義了不同文檔類型的打開方式和圖標。位置在:\TEMPLATE\XML.?
? 微軟強烈不推薦更改以上四個文件,即使新的站點定義也要在試圖修改這四個文件。因為這四個文件的更改可能會導致你的MOSS站點徹底崩潰或影響以后的升級等等...?
? 那么當開發人員對一個站點進行定制化開發的時候,使用哪種方法比較合適呢?其實兩種方式有各自的優缺點,要根據不同情況來選擇,微軟在MSDN中給出了如下的一些比較:?
? * 站點定義比站點模板的優勢在于:?
? 數據直接存儲與web server上,性能上要好。?
? 直接修改Schema.xml能達到更高的定制化程度。其中包括新的文件類型定義、視圖樣式、一些菜單的更改等等。?
? * 站點定義的缺點有:?
? 自定義站點的難度比較高,需要開發人員熟悉站點定義所使用的CAML語言。?
? 開發站點定義文件之后,部署一個新的站點定義是一個難題。?
? 站點定義中不能指定站點的主題。?
? 站點定義需要具有
服務器
的管理員權限,直接操作服務器的文件。?
? * 站點模板比站點定義的優勢在于:?
? 站點模板的建立比較簡單,通過Web界面定義過的站點可以直接導出成為一個.stp文件,幾乎沒有任何難度。實際上大部分站點模板中能自定義的東西在通過Web同樣可以對站點進行定義,然后導出成.stp文件。站點模板易于部署,一行命令就可以搞定。?
? * 站點模板的缺點在于:?
? 站點模板不是用來在開發環境中開發的,使用站點模板對站點進行定義,如果站點比較多的話會比較麻煩。站點模板依賴于站點定義,一旦生成站點模板的那個站點定義類型改變了,站點模板就不能在使用了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
