2

イントラネットには MOSS 2007 (SharePoint) を使用しています。最近、私たちの農場で複数の企業のブランディングをサポートする任務を負いました。アプリケーション ページ (変更された application.master によって生成される) は、複数のブランド テンプレート (テーマ以外) を提供できないことにすぐに気付きました。

適切な修正は、アプリケーション ページで既定の Microsoft ブランドを維持することだと思います (サーバー上でホストされているファイルへの変更はなく、開発で既にこれに取り組んでいました)。

ただし、簡単な修正として、jQuery を使用して、アプリケーション ページの 1 つのロゴ、いくつかのナビゲーション イメージ、およびいくつかの色を置き換えることができるのではないかと考えていました。基本的に、ページが完全にレンダリングされる前に、ブランド 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>

カスタムCSSをに含めます_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 に答える