代码之家  ›  专栏  ›  技术社区  ›  paulwhit

如何在SharePoint中实现用户主题切换?

  •  0
  • paulwhit  · 技术社区  · 16 年前

    我的客户希望为SharePoint应用程序提供两个主题。在2007年,是否有一个战略来实现这一目标?

    我们要应用基于用户配置文件的主题选择,甚至可能是下拉菜单来切换模式。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Alex Angas Colin    16 年前

    我不知道你希望你的主题有多广泛。但是,如果它只能是CSS,则可以使用此方法:

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

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

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

    4. 编写一个对当前用户进行列表查找的控件,并获取对样式库中相应CSS文件的引用。然后控件将输出 CssRegistration CssLink 此文件页的控件。

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

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

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

        2
  •  1
  •   Alex Angas Colin    16 年前

    也有 SPThemes 现在可以在codeplex上从bjrn furuknap获得。用户可以选择自己的主题,并且可以在不同的范围应用它们。

        3
  •  0
  •   paulwhit    16 年前

    以下是我从研究和反馈中得出的选择。这两种方法似乎都不可行。

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

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

        4
  •  0
  •   Kusek    16 年前

    另一件事你可以尝试使用 主题转换器和主题转换器磁带 codeplex ,这是作为特性实现的,您可以使用相同的代码逻辑来存档您想要的内容,并对使用customAction的用户提供它作为选项。

    推荐文章