【问题标题】:How do I implement user theme switching in SharePoint?如何在 SharePoint 中实现用户主题切换?
【发布时间】:2009-08-20 22:38:42
【问题描述】:

我的客户想要为 SharePoint 应用程序提供 2 个主题。在 MOSS 2007 中是否有实现这一目标的策略?

我们希望应用基于用户个人资料的主题选择,甚至可能应用下拉菜单来切换模式。

【问题讨论】:

  • AFAIK 主题是基于站点而不是基于用户的。也许你可以使用一些狂野的 JQuery 东西来替换 CSS 和其他东西,但我建议不要这样做,因为 SharePoint 不支持。
  • 谢谢托尼。这是我所怀疑的,但我希望有人以前尝试过这个......一个远非最佳的解决方案可能是运行具有不同模板的并行站点,并提供重定向。

标签: sharepoint moss profile branding


【解决方案1】:

我不知道您希望重新主题化的范围有多大。但是,如果它可能是纯 CSS 的,您可以使用这种方法:

  1. 将不同主题的 CSS 文件存储在样式库中。

  2. 创建一个列表来存储用户及其选择的主题。

  3. 编写功能和custom application page 以允许用户更改主题。

  4. 编写一个控件,对当前用户在列表中进行查找,并获得对样式库中相应 CSS 文件的引用。然后该控件会将CssRegistrationCssLink 控件输出到该文件的页面。

  5. 将此控件添加到母版页,以便它在每个页面上执行(应添加缓存)。

我不明白为什么微软不支持,因为你只是在更改 CSS。

如果您需要做的不止这些,那么另一种选择是编写一个 HTTP 模块来更改 HTML 输出。或者当然是 JavaScript。使用这两个选项,您可能会遇到可支持性问题(这取决于您的更改范围)。

【讨论】:

  • 虽然这听起来是个好主意,但看看 Sharepoint 的 HTML 和 CSS 会让你蜷缩成一个小球,来回摇摆。 ...然后当您查看网站的不同部分时,它们的组合当然完全不同。
  • SharePoint 的标记确实很烂。但是,有一些 CSS 资源可以帮助您对其进行解码:heathersolomon.com/content/sp07cssreference.htm。此外,如果您使用的是 MOSS 发布网站,您将拥有更多的控制权/更少的垃圾标记。
  • 我需要的不仅仅是 CSS,但这是一个彻底的答案。谢谢。
【解决方案2】:

Bjørn Furuknap 的 Codeplex 现在还提供了 SPThemes。用户可以选择自己的主题,并且可以应用于不同的范围。

【讨论】:

    【解决方案3】:

    以下是我从研究和反馈中得出的选项。两者似乎都不可行。

    • 在 JavaScript 中实现主要的 UI 布局更改。这将导致客户端速度变慢,难以编码,并且由于需要引用可能随后续 SharePoint 补丁而更改的 SharePoint 对象,因此 Microsoft 将完全不支持。

    • 提供两个基于相同数据的并行主题站点,并提供在它们之间切换的方法。这将要求我们将每个站点部署到多个位置,并且需要在代码中重新调整任何站点创建机制(因为它们需要针对两个站点而不是一个站点)。

    【讨论】:

      【解决方案4】:

      您可以尝试的另一件事是使用来自codeplexTheme Changer 和 ThemeChangerStaple,这是作为功能实现的,您可以使用相同的代码逻辑来归档您想要的内容,只需稍作修改,将其作为使用 CustomAction 的用户的选项。

      【讨论】:

        猜你喜欢
        • 2021-01-31
        • 1970-01-01
        • 1970-01-01
        • 2020-09-02
        • 2011-05-22
        • 2015-09-28
        • 1970-01-01
        • 2021-04-26
        • 2014-10-23
        相关资源
        最近更新 更多