문제

인트라넷에는 Moss 2007 (SharePoint)을 사용합니다. 최근에 우리는 농장의 여러 회사를위한 브랜딩을 지원하는 임무를 맡았습니다. 우리는 응용 프로그램 페이지 (수정 된 응용 프로그램에서 생성)가 여러 브랜드 템플릿 (테마 제외)을 제공 할 수 없다는 것을 신속하게 깨달았습니다.

올바른 수정은 응용 프로그램 페이지에서 기본 Microsoft 브랜딩을 유지하는 것입니다 (우리는 이미 DEV에서 작업 중이었다 - 서버에서 호스팅 된 파일에 대한 수정이 없음).

그러나 빠른 수정으로, 나는 jQuery를 사용하여 하나의 로고, 소수의 NAV 이미지 및 응용 프로그램 페이지의 몇 가지 색상을 대체 할 수 있다고 생각했습니다. 기본적으로 페이지가 완전히 렌더링되기 전에 브랜드 A에서 브랜드 B로 이동합니다.

내 질문은 ...이 아이디어는 얼마나 나쁜가요? 이 작업과 관련된 함정은 무엇입니까? 그것이 단지 임시 솔루션이라는 것을 감안할 때 시도해야합니까?

도움이 되었습니까?

해결책

나는 당신의 문제의 대부분이 좋은 CSS 파일로 해결 될 수 있다고 생각합니다. 이것은 훨씬 더 빨리로드되기 때문에 내 경험상 JavaScript보다 낫습니다. SharePoint는 무거운 페이지 (Dom Wise)를 생성한다는 점을 명심하십시오. 따라서 jQuery는 오랜 시간이 걸립니다. $(document).ready, 그리고 크기의 DOM을 조작하는 데 시간이 길어도 IE6에서는 몇 초가 걸릴 수 있으며 느린 사이트 나 서버와 동일한 인상을 줄 수 있습니다.
CSS를 사용하여 SharePoint에 많은 사용자 정의를 수행했습니다. 몇 가지 냄새가 필요할 수 있습니다. !importants이지만 결과는 JavaScript보다 낫습니다.
또한 사이트 별 CSS 파일 (하위 사이트 마스터 페이지를 설정하는 동일한 페이지에서)을 설정할 수 있습니다. 실제로 모든 브랜드의 마스터 페이지를 작성하는 대신 사용할 수 있습니다.

다른 팁

추가합니다 코비의 대답, 배포에 대의원 제어 기능을 사용할 수 있습니다.

아래에 사용자 컨트롤을 배치하십시오 _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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top