创建WSS站点时自动应用主题

wss站点定义不支持默认主题的设定。但是我们还是有办法实现该功能。

管理员通常有3种选择,每一种都不推荐。

  1. 在站点创建后由用户手工设置一个主题(很不好!)
  2. 为公司中的站点设置统一的一个主题,保存成模板然后分发。(复杂化,同时将站点和文件系统中的模板分离,使得在将来难于改变)
  3. 改变默认的css文件或不用之(极不好。主题是用来干什么的???同样不支持不同主题的多模板)

问题的解决办法是在站点定义中增加一个链接到一个自定义页,该页将在站点创建后运行应用指定主题的代码。

第一步-更改站点定义

  1. 创建您需要的站点定义
  2. 进“xml”目录,编辑“onet.xml”文件
  3. 在最下面找到“Configurations”标签,对每一个您需要变更的configuration,在“Configuration”标签中添加下面的内容(在“THEMENAMEHERE”的位置写下您的主题名。注意大小写)

第二步-创建ThemeSetter.aspx

  1. 打开"c:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\LAYOUTS\2052"
  2. 新建一个文本文件,重命名为"ThemeSetter.aspx"
  3. 编辑该文件,粘贴下面的代码。

第三步-重新启动IIS

(在运行栏中执行“iisreset”),使得变更生效。

现在,使用您创建的站点定义创建的站点将自动的应用指定主题。

本文翻译msd2d上的文章而来,原文在此。http://msd2d.com/newsletter_tip.aspx?section=sharepoint&id=493c0348-5b00-4ef5-9410-018eebe84d67


<html dir="ltr">
<%@ Page Language="C#" ValidateRequest="False" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%

SPWeb myNewWeb 
= SPControl.GetContextWeb(Context);
myNewWeb.AllowUnsafeUpdates 
= true;
myNewWeb.ApplyTheme(this.Page.Request[
"Theme"].ToString());
myNewWeb.Update();
Response.Redirect(myNewWeb.Url);

%>
</html></body></html></body></html></body></html></body></html>
posted @ 2008-07-18 10:16  一瞬间  阅读(502)  评论(0编辑  收藏  举报