我從一個基本站點創建了一個站點模板,該站點本身是從基本團隊站點模板創建的。現在我想在創建它的網絡外部使用該網站模板,這樣它就像一個全局模板。如何引用/查找SharePoint 2010網站模板?
例如,我希望我的新模板出現在get-spwebtemplate顯示的模板列表中,或將「stp」文件複製到測試系統,並使用捆綁模板在那裏創建新站點。
這可能嗎?如果不可能,分享點的正確方法是什麼?
(使用SharePoint 2010 Server RC)
謝謝!
我從一個基本站點創建了一個站點模板,該站點本身是從基本團隊站點模板創建的。現在我想在創建它的網絡外部使用該網站模板,這樣它就像一個全局模板。如何引用/查找SharePoint 2010網站模板?
例如,我希望我的新模板出現在get-spwebtemplate顯示的模板列表中,或將「stp」文件複製到測試系統,並使用捆綁模板在那裏創建新站點。
這可能嗎?如果不可能,分享點的正確方法是什麼?
(使用SharePoint 2010 Server RC)
謝謝!
我相信我現在知道如何做到這一點。我很感激任何人都可以權衡這樣做的「正確」方式,因爲這個過程似乎有點奇怪。
使用用戶界面,您可以使用網站集中的庫存模板創建網頁,並通過向網頁集添加小塊並刪除不需要的內容來對其進行自定義。然後,選擇您希望用作模板的網頁,以管理員身份選擇「網站設置」,然後選擇「將網站另存爲模板」,然後在其中指定文件名,友好名稱和描述性文本。這樣做會將生成的模板顯着放置到數據庫中,並在「網站設置」頁面上的「解決方案」列表中創建一個引用。 (如果您訪問'解決方案'列表,您可以單擊模板並將其保存爲本地文件,然後可以將其上載到另一個站點,這很有幫助)。
它相當知名的,你可以通過添加一個新的網頁到網站的網頁集合,它看起來像這樣在代碼中創建一個網站:
SPWeb newWeb = subSite.Webs.Add(
"pathtoweb",
"Title of New Web",
"Web Description",
1033,
template,
false, false);
這裏這裏「模板」是的一個實例您要使用的SPWebTemplate。如果它是其中一個股票模板,則通常可以通過名稱來引用它們,例如「STS#0」等,而不是此處顯示的模板引用。問題是:如何獲取自定義模板的名稱以在API調用中使用它。
要查找已創建的模板的「名字」,我用PowerShell中這樣
$x = get-spsite http://machine/managedpath/sitecollectionname
$x.GetWebTemplates(1033)
其傾倒在該子網站所有模板,包括我修改的模板在末尾用不是很方便我複製並粘貼到我的C#程序中的名稱。
我沒有在這裏探索所有的排列,例如,你可能只需要在.Add調用中使用基於GUID的名字,但要明確,這是我的工作順序。我很想聽聽這是瘋狂的 - 請讓我知道更優雅的東西:
// or any of the other hundred ways to do this...
SPSite s = new SPSite("your url here");
SPWeb subSite = s.RootWeb;
// 1033 is the locale id for English
SPWebTemplateCollection wtc = s.GetWebTemplates(1033);
// use the name for the index
SPWebTemplate template =
wtc["{8925048C-DF71-guidguidguidguid}#MyTemplate"];
SPWeb newWeb = subSite.Webs.Add(
"pathtoweb",
"Title of New Web",
"Web Description",
1033,
template,
false, false);
SharePoint!
那裏有一個用於SharePoint 2010的RC? – Flo 2010-02-08 09:09:30