Развертывание пользовательской темы в SharePoint

Узнайте, как развернуть пользовательскую тему на сайте SharePoint с помощью пользовательского интерфейса или путем внедрения приемника компонента.

SharePoint содержит предустановленные темы. Кроме того, можно создавать пользовательские темы с помощью собственных дополнительных цветовых палитр, эталонных страниц и схем шрифтов. После отправки файлов в коллекцию тем и коллекцию эталонных страниц можно приступать к развертыванию темы на сайте с помощью пользовательского интерфейса или кода. Дополнительные сведения о цветовых палитрах и схемах шрифтов см. в статье Цветовые палитры и шрифты в SharePoint.

Примечание.

Информация в этой статье относится только к классическим сайтам SharePoint. Сведения для современных сайтов SharePoint см. в статье Настройка тем для сайтов SharePoint.

Основные сведения о развертывании темы

В таблице 1 перечислены статьи, содержащие основные понятия, которые нужно знать при развертывании тем.

Таблица 1. Основные понятия, которые нужно знать при развертывании темы

Название статьи Описание
Общие сведения о темах для SharePoint Сведения о работе с темами в SharePoint.
События компонента Сведения о событиях компонента, позволяющих отслеживать события, возникающие при установке компонента в ферму серверов, и реагировать на них должным образом.

Для создания пользовательских тем можно использовать собственные дополнительные цветовые палитры и схемы шрифтов. Отправьте их в коллекцию тем, чтобы получить к ним доступ при изменении дизайна во время работы с темами или при программном применении темы. Аналогично в коллекцию эталонных страниц можно отправить дополнительные эталонные страницы и соответствующие файлы предварительного просмотра для добавления дополнительных макетов сайта. Ниже описано, куда помещать эти файлы.

  • Коллекция главных страниц Списки файлы master страниц и соответствующие файлы предварительного просмотра (файлы предварительного просмотра). Если вы хотите, чтобы страница master была доступна в мастере изменения внешнего вида, требуется файл предварительного просмотра master страницы. Файлы JavaScript и другие файлы для оформления также можно отправлять в коллекцию эталонных страниц.

    Чтобы получить доступ к коллекции эталонных страниц из пользовательского интерфейса SharePoint, в разделе Коллекции веб-дизайнера на странице Параметры сайта выберите Эталонные страницы. Вы также можете перейти непосредственно на сайт по ссылке http://{SiteName}/_catalogs/masterpage/.

  • Коллекция тем Списки цветовые палитры и схемы шрифтов, доступные для работы с темами. SharePoint ищет доступные цветовые палитры и схемы шрифтов в папке 15.

    Чтобы получить доступ к коллекции тем из пользовательского интерфейса SharePoint, в разделе Коллекции веб-дизайнера на странице Параметры сайта выберите Темы. Вы также можете перейти непосредственно на сайт по ссылке http://{SiteCollectionName}/_catalogs/theme/15/.

  • Библиотека стилей. Содержит пользовательские файлы CSS, необходимые при работе с темами. Чтобы перейти непосредственно к библиотеке стилей, замените SiteCollectionName и language в этом URL-адресе: http://{SiteCollectionName}/Style Library/язык/Themable/.

    Примечание.

    Поместите пользовательские файлы CSS в папку Themable, которая находится в библиотеке стилей, а не в коллекции эталонных страниц. Обработчик тем распознает только файлы CSS, хранящиеся в папке Themable в библиотеке стилей.

Примечание.

Если в коллекции эталонных страниц и коллекции тем включено управление версиями, необходимо также опубликовать файлы для оформления прежде, чем обработчик тем сможет их использовать.

Развертывание темы с помощью пользовательского интерфейса

Вариант оформления, или макет, включает в себя цветовую палитру, схему шрифтов, фоновое изображение и эталонную страницу, которые определяют внешний вид сайта. Список вариантов оформления содержит те из них, которые доступны в коллекции макетов. Чтобы создать макет, добавьте элемент в список вариантов оформления и укажите для него эталонную страницу, цветовую палитру, схему шрифтов и фоновое изображение.

Примечание.

Если вы хотите, чтобы эталонная страница была доступна в коллекции макетов, потребуется файл предварительного просмотра эталонной страницы.

Добавление варианта оформления

  1. Щелкните значок Параметры, затем выберите пункт Параметры сайта.

  2. В разделе Коллекция веб-дизайнера щелкните ссылку Варианты оформления.

  3. В списке Варианты оформления щелкните ссылку Создайте элемент.

  4. В текстовом поле Название введите название макета.

  5. В текстовом поле Имя введите имя макета. Имя отображается в списке Составные элементы и в коллекции конструкторов.

  6. В текстовом поле URL-адрес главной страницы введите URL-адрес страницы master. Можно использовать относительный URL-адрес.

  7. В текстовом поле URL-адрес темы введите URL-адрес цветовой палитры (URL-адрес файла *.spcolor ). Можно использовать относительный URL-адрес.

  8. В текстовом поле URL-адрес изображения введите URL-адрес фонового изображения. Этот шаг необязательный. Можно использовать относительный URL-адрес.

  9. В текстовом поле URL-адрес схемы шрифтов введите URL-адрес схемы шрифтов (URL-адрес файла *.spfont ). Этот шаг необязательный. Можно использовать относительный URL-адрес.

  10. В текстовом поле Порядок отображения введите номер заказа на отображение. Это определяет, где макет отображается в коллекции конструкторов.

  11. Выберите Сохранить.

    Примечание.

    Если в значениях варианта оформления допущена ошибка, он не будет добавлен в коллекцию макетов, а в файлах журнала не появится соответствующая запись. Вот некоторые из возможных причин, по которым вариант оформления не может быть добавлен: не удалось найти файл, возникла проблема с форматированием одного из файлов либо SharePoint не удалось получить доступ к файлам.

Теперь вы можете использовать библиотеку макетов, чтобы применить новый дизайн. в статье Выбор темы для сайта публикации на веб-сайте Office.com.

Развертывание темы с помощью кода

Вы можете выполнить развертывание темы, используя приемник компонента.

Для этого:

  1. Создайте класс приемника компонента, наследующий из класса SPFeatureReceiver.

  2. В методе FeatureActivated создайте объект SPTheme , который использует цветовую палитру и схему шрифтов, а затем примените тему к сайту.

    Ниже показано, как развернуть дополнительную цветовую палитру и шрифтовую схему на сайте.

    // Get the SPColor file. Replace with the path to your SPColor file.
    SPFile colorPaletteFile = Web.GetFile("path to .spcolor file");
    if (null == colorPaletteFile || !colorPaletteFile.Exists)
    {
        // TODO: handle the error.
        return;
    }
    
    // Get the SPFont file. Replace with the path to your SPFont file.
    SPFile fontSchemeFile = Web.GetFile("path to .spfont file");
    if (null == fontSchemeFile || !fontSchemeFile.Exists)
    {
        // TODO: handle the error.
        return;
    }
    
    // Open an SPTheme with the two files. Replace NewTheme with the name for your theme.
    // Note: If you have a background image, you can specify the following:
    // SPTheme.Open("NewTheme", colorPaletteFile, fontSchemeFile, backgroundURI)
    SPTheme theme = SPTheme.Open("NewTheme", colorPaletteFile, fontSchemeFile);
    
    
    // Now apply your theme to the site.
    // The themed CSS output files are stored in the Themed folder of the Theme Gallery of the root web
    // of the site collection. To specify that the files should be stored in the _themes folder within the root
    // web, pass false to the ApplyTo method.
    theme.ApplyTo(Web, true);
    

Примечание.

Параметр shareGenerated в методе ApplyTo указывает, можно ли совместно использовать тематические файлы между сайтами в семействе веб-сайтов. Как правило, этому параметру присваивается значение true для сайтов SharePoint Server и SharePoint Online, а для сайтов SharePoint Foundation — значение false. Параметру shareGenerated должно быть присвоено значение true, если файлы темы предназначены для совместного использования. Дополнительные сведения см. в разделе ApplyTo(SPWeb, Boolean).

Если пользователь применяет тему в мастере изменения оформления, мастер также обновляет тему с именем "Текущая" в списке вариантов оформления и коллекции макетов. При программном применении такую тему необходимо будет обновить вручную. В следующем примере показано, как обновить эту тему.

SPList designGallery = Web.GetCatalog(SPListTemplateType.DesignCatalog);
if (null == designGallery)
{
    // TODO: Handle the error.
    return;
}

SPQuery q = new SPQuery();
q.RowLimit = 1;
q.Query = "<Where><Eq><FieldRef Name='DisplayOrder'/><Value Type='Number'>0</Value></Eq></Where>";
q.ViewFields = "<FieldRef Name='DisplayOrder'/>";
q.ViewFieldsOnly = true;

SPListItemCollection currentItems = designGallery.GetItems(q);

If (currentItems.Count == 1)
{
    // Remove the old Current item.
    currentItems[0].Delete();
}

SPListItem currentItem = designGallery.AddItem();

currentItem["Name"] = SPResource.GetString(CultureInfo.CurrentUICulture, Strings.DesignGalleryCurrentItemName);
currentItem["Title"] = SPResource.GetString(CultureInfo.CurrentUICulture, Strings.DesignGalleryCurrentItemName);

// Change this line if you want to specify a different master page.
currentItem["MasterPageUrl"] = Web.MasterUrl;

// Replace with the path to your SPColor file.
currentItem["ThemeUrl"] = "path to .spcolor file";

// Delete the following line if you do not have a background image. Otherwise, replace with the path to
// the background image.
currentItem["ImageUrl"] = "path to background image";

// Replace with the path to your SPFont file. Or, you can delete this line if you want to use
// the default font scheme of the selected master page.
currentItem["FontSchemeUrl"] = "path to .spfont file";

currentItem["DisplayOrder"] = 0;
currentItem.Update();

См. также