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

如何在SharePoint中实现用户主题切换?,sharepoint,moss,profile,branding,Sharepoint,Moss,Profile,Branding,我的客户希望为SharePoint应用程序提供两个主题。在MOSS 2007中是否有实现这一目标的策略 我们希望应用基于用户配置文件的主题选择,甚至可以使用下拉菜单切换模式。以下是我从研究和反馈中得出的选项。这两种方法似乎都不可行 在JavaScript中实现主要的UI布局更改。这将导致客户端速度减慢,难以编写代码,并且由于需要引用可能随后续SharePoint修补程序更改的SharePoint对象,Microsoft将完全不支持这一点 基于相同的数据提供两个平行主题站点,并提供在它们之间切换

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


我们希望应用基于用户配置文件的主题选择,甚至可以使用下拉菜单切换模式。

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

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

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


您可以尝试的另一件事是使用主题变换器和MechangersTaplefrom,这是作为功能实现的,您可以使用相同的代码逻辑来存档您想要的内容,只需稍加修改,将其作为使用CustomAction的用户的选项

我不知道你希望你的主题化有多广泛。但是,如果它可以是CSS,那么您可以使用以下方法:

  • 在样式库中存储不同主题的CSS文件

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

  • 编写一个功能并允许用户更改其主题

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

  • 将此控件添加到母版页,使其在每个页面上执行(应添加缓存)

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


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

    现在,Bjørn Furuknap的Codeplex上也提供了该选项。用户可以选择自己的主题,它们可以应用于不同的范围。

    AFAIK主题是基于站点的,而不是基于用户的。也许你可以用一些疯狂的JQuery来代替CSS和动态的东西,但我建议你不要这样做,因为SharePoint不支持这一点。谢谢Toni。这是我所怀疑的,但我希望有人曾经尝试过。。。一个远不是最佳的解决方案可能是使用不同的模板运行并行站点,并提供重定向。虽然这听起来是个好主意,但只要看一下Sharepoint的HTML和CSS就会让你蜷缩在一个小球里,前后摇摆。。。当你看到网站的另一部分时,这当然是完全不同的,SharePoint的标记的确很糟糕。但是,有CSS资源可以帮助您解码:。另外,如果你使用MOSS发布网站,你可以有更多的控制/更少的垃圾标记。我需要的不仅仅是CSS,但这是一个彻底的答案。谢谢