2

有时我喜欢 MOSS 2007,有时我想把它扔到窗外。这是它应该走出窗外的时代之一。

我试图想出一种简单的方法让设计师为我们的网站更新 WSS 3.0 主题。网站集中的每个网站都使用此主题。以下对设计师不友好(特别是第 4 步)作为更新主题的一种方式...

  1. Designer 对 theme.css 进行编辑并将其复制到生产环境中
  2. 将所选主题更改为站点设置中的任何其他主题
  3. 执行 IISRESET
  4. 在站点设置中重新应用主题

请记住,主题不会被子网站继承。此外,很多时候上述内容还不够,您还必须更新 theme.inf 文件以增加下面的“版本”和“格式”。

[info]
title=ThemeName
codepage=65001
version=3.10
format=3.10
readonly=true
refcount=0

现在,我尝试在我们的品牌功能(设置母版页并为新站点设置主题)中包含重置主题的功能。但是,这并没有真正起作用(使用 asp 按钮设置为 Wheat 并使用另一个按钮将其设置回自定义主题)。它不起作用可能是因为它没有重新启动 IIS 并更新上面提到的 theme.inf 中的版本号。

    for (int x = 0; x < SPContext.Current.Site.AllWebs.Count; x++)
    {
        using (SPWeb site = SPContext.Current.Site.AllWebs[x])
        {
            site.ApplyTheme(themeName);
            site.Update();
        }
    }

所以...您是否为您的设计师提供了一种解决方案来更新/重置主题?如果是这样,您的解决方案是什么?您的答案不应该是Heathers 解决方案,它在农场中不可扩展。

4

1 回答 1

1

我从不关心主题。他们只是一种痛苦。我们的设计师创建自定义 css、母版页和页面布局。自定义图像可以放在样式库或 12-hive 中。所有子站点的更改都是即时的,因为它们都引用来自根站点的工件。

如果它 - 必须 - 成为主题,则将其开发为自定义 css 并稍后将其构建为主题仍然更容易。

您可以直接在设计器中编辑主题。应用主题后,它会被复制到您可以更改它并立即查看结果的站点中。不过不要忘记再次复制它。

于 2009-06-25T12:31:54.413 回答