Я использую объект SPLongOperation в своем проекте, чтобы ввести задержку при переходе на новую страницу. На встроенной странице используются стили и брендинг css по умолчанию.
Я хочу настроить дизайн этой страницы и применить собственную тему и фирменный стиль.
Подскажите, пожалуйста, как применить пользовательскую главную страницу к странице, на которой отображается вращающееся колесо SharePoint 2007 с анимированным изображением gears_an.gif.
Заранее спасибо.
Ответ 1 · рейтинг 2 · dahlbyk
Алекс прав в том, что единственный (неподдерживаемый!) способ изменить макет страницы - это обновить gear.aspx в файловой системе каждого WFE. Обратите внимание, что это будет изменение для всей фермы, если только вы не используете копию LAYOUTS, что обычно рекомендуется, если вы решите пойти по этому пути.
Если вы действительно хотите поумничать, значения свойств операции LeadingHTML и TrailingHtml не экранируются до того, как они будут записаны в поток ответа. Вы можете использовать одно из этих свойств, чтобы написать <script> для управления DOM, вставки ссылки на таблицу стилей и т. д.
Обновление: я собрал быстрое доказательство концепции внедрения скрипта здесь.
Ответ 2 · рейтинг 2 · Magnus Johansson
Я не согласен с тем, что нужно было только изменить файлы OOB.
Вы можете решить эту проблему, не нарушая правил, разработав собственный HTTPModule. Этот HTTPModule обнаружит, обращаетесь ли вы к рассматриваемой странице, и изменит ее главную страницу в соответствии со следующим фрагментом кода:
private void page_PreInit(object sender, EventArgs e)
{
Page page = sender as Page;
// Do your checking/filtering here
if (true)
{
page.MasterPageFile = "<whatever you have.master";
}
}
Ответ 3 · Alex Angas
К сожалению, класс SPLongOperation запечатан, а также жестко кодирует файл Gears ASPX.
Похоже, единственный способ изменить это - отредактировать файл 12\template\layouts\gear.aspx. Обратите внимание, что это может вызвать проблемы с будущими обновлениями продукта, которые вносят изменения в этот файл.