2

我们的 Intranet 使用 MOSS 2007 (SharePoint)。最近,我们的任务是为我们农场的多家公司提供品牌支持。我们很快意识到应用程序页面(由修改后的 application.master 生成)无法提供多个品牌模板(主题除外)。

我认为正确的解决方法是在应用程序页面上保留默认的 Microsoft 品牌(我们已经在 dev 中处理此问题 - 不修改服务器上托管的文件)。

然而,作为一个快速修复,我想我可以使用 jQuery 来替换应用程序页面上的一个徽标、少量导航图像和一些颜色。基本上在页面完全呈现之前从品牌 A 到品牌 B。

我的问题是……这个想法有多糟糕?与此相关的陷阱是什么?鉴于这只是一个临时解决方案,我应该尝试一下吗?

4

2 回答 2

4

要添加到Kobi 的答案,您可以使用委托控制功能进行部署。

在 下放置一个用户控件_controltemplates,例如:

<%@ Control Language="C#" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %>
<SharePoint:CssRegistration name="/_layouts/custom/app.css" runat="server"/>

编写委托控制功能(这里是elements.xml):

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
 <Control ControlSrc="~/_ControlTemplates/CustomBranding.ascx"
                 Id="AdditionalPageHead" Sequence="1" />
</Elements>

_layouts/custom/app.css.

于 2009-09-10T13:53:20.463 回答
3

我认为你的大部分问题都可以用一个好的 CSS 文件来解决。根据我的经验,这比 javascript 更好,因为它的加载速度要快得多。请记住,SharePoint 会生成大量页面(DOM 明智),因此 jQuery 需要很长时间才能到达$(document).ready,甚至需要更长的时间来操作过大的 DOM - 在 IE6 上这可能需要几秒钟,给人的印象与缓慢站点或服务器。
我使用 CSS 对 SharePoint 进行了许多自定义:可能需要一些臭味!important,但结果比 javascript 更好。
另外,请记住,您可以设置每个站点的 CSS 文件(在您设置子站点母版页的同一页面上) - 这可以用来代替实际为每个品牌创建母版页。

于 2009-09-10T12:57:21.690 回答