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

时间:2009-07-23 16:06:46

标签: sharepoint moss profile branding

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

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

4 个答案:

答案 0 :(得分:1)

我不知道你希望你的重新训练有多广泛。但是,如果它只能是CSS,你可以使用这种方法:

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

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

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

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

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

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

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

答案 1 :(得分:1)

BjørnFuruknap现在还提供SPThemes Codeplex。用户可以选择自己的主题,也可以在不同的范围内应用。

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

您可以尝试的另一件事是使用codeplex中的 Theme Changer和ThemeChangerStaple ,这是作为功能实现的,您可以使用相同的代码逻辑来存档您想要的位修改,使用CustomAction将其作为用户的选项。