我的客户想要为 SharePoint 应用程序提供 2 个主题。在 MOSS 2007 中是否有实现这一目标的策略?
我们希望应用基于用户配置文件的主题选择,甚至可能应用下拉菜单来切换模式。
我的客户想要为 SharePoint 应用程序提供 2 个主题。在 MOSS 2007 中是否有实现这一目标的策略?
我们希望应用基于用户配置文件的主题选择,甚至可能应用下拉菜单来切换模式。
我不知道你希望你的重新主题有多广泛。但是,如果它可能是纯 CSS 的,您可以使用这种方法:
将不同主题的 CSS 文件存储在样式库中。
创建一个存储用户及其选择的主题的列表。
编写功能和自定义应用程序页面以允许用户更改他们的主题。
编写一个控件,针对当前用户在列表上进行查找,并获得对样式库中相应 CSS 文件的引用。然后该控件会将CssRegistration和CssLink控件输出到该文件的页面。
将此控件添加到母版页,以便它在每个页面上执行(应添加缓存)。
我不明白为什么微软不支持这一点,因为您只是在更改 CSS。
如果您需要做的不止这些,那么另一个选择是编写一个更改 HTML 输出的 HTTP 模块。或者当然是 JavaScript。使用这两个选项,您可能会遇到可支持性问题(这取决于您的更改范围有多大)。
Bjørn Furuknap的 Codeplex 现在还提供了 SPThemes。用户可以选择自己的主题,并且可以应用于不同的范围。
以下是我从研究和反馈中得出的选项。这两者似乎大多是不可行的。
在 JavaScript 中实现主要的 UI 布局更改。这将导致客户端速度变慢,难以编码,并且由于需要引用可能随后续 SharePoint 补丁而更改的 SharePoint 对象,因此 Microsoft 将完全不支持。
提供两个基于相同数据的并行主题站点,并提供在它们之间切换的方式。这将要求我们将每个站点部署到多个位置,并且需要在代码中重新调整任何站点创建机制(因为它们需要针对两个站点而不是一个站点)。
您可以尝试的另一件事是使用来自codeplex的Theme Changer 和 ThemeChangerStaple,这是作为功能实现的,您可以使用相同的代码逻辑通过一些修改来归档您想要的内容,将其作为使用 CustomAction 的用户的选项。