Использование jQuery для изменения страниц application.master в SharePoint

StackOverflow https://stackoverflow.com/questions/1405072

Вопрос

Мы используем MOSS 2007 (SharePoint) для нашей интрасети. Недавно нам была поручена поддержка брендинга для нескольких компаний на нашей ферме. Мы быстро поняли, что страницы приложения (созданные модифицированным application.master) не могут обслуживать несколько фирменных шаблонов (кроме тем).

Я думаю, что правильное решение - сохранить фирменный стиль Microsoft по умолчанию на страницах приложений (мы уже работали над этим в dev - никаких изменений в файлах, размещенных на сервере).

Однако в качестве быстрого исправления я подумал, что смогу использовать jQuery для замены одного логотипа, нескольких навигационных изображений и нескольких цветов на страницах приложения. В основном происходит переход от бренда A к бренду B до полного отображения страницы.

Мой вопрос ... насколько плоха эта идея? Какие подводные камни связаны с этим? Учитывая, что это только временное решение, я должен попробовать?

Это было полезно?

Решение

Я думаю, что большинство ваших проблем можно решить с помощью хорошего файла CSS. По моему опыту, это лучше, чем javascript, поскольку загружается намного быстрее. Имейте в виду, что SharePoint создает тяжелые страницы (с точки зрения DOM), поэтому jQuery требуется много времени, чтобы добраться до $ (document) .ready , и еще больше времени, чтобы манипулировать этим слишком большим DOM - в IE6. это может занять несколько секунд, создавая такое же впечатление, как медленный сайт или сервер.
Я сделал много настроек для SharePoint с помощью CSS: это может занять несколько вонючих ! Важный , но результат лучше, чем 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