質問

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

正しい修正は、アプリケーションページでデフォルトのMicrosoftブランドを維持することだと思います(devですでにこれに取り組んでいました-サーバーでホストされているファイルに変更はありません)。

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

私の質問は...このアイデアはどれほど悪いですか?これに関連する落とし穴は何ですか?暫定的な解決策に過ぎないため、試してみるべきですか?

役に立ちましたか?

解決

ほとんどの問題は、適切なCSSファイルで解決できると思います。私の経験では、これはjavascriptよりもずっと高速です。 SharePointは重いページを生成する(DOMの観点から)ので、jQueryは $(document).ready に到達するのに時間がかかり、IE6でその大きすぎるDOMを操作するのにさらに時間がかかることに注意してください。これには数秒かかる場合があり、遅いサイトまたはサーバーと同じ印象を与えます。
CSSを使用してSharePointに多くのカスタマイズを行いました。いくつかの臭い!important が必要になる場合がありますが、結果はjavascriptよりも優れています。
また、サイトごとにCSSファイルを設定できることを覚えておいてください(サブサイトのマスターページを設定したのと同じページで)-これは、すべてのブランドのマスターページを実際に作成する代わりに使用できます。

他のヒント

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 にカスタムCSSを含めます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top