Развертывание пользовательской темы в 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 в библиотеке стилей.
Примечание.
Если в коллекции эталонных страниц и коллекции тем включено управление версиями, необходимо также опубликовать файлы для оформления прежде, чем обработчик тем сможет их использовать.
Развертывание темы с помощью пользовательского интерфейса
Вариант оформления, или макет, включает в себя цветовую палитру, схему шрифтов, фоновое изображение и эталонную страницу, которые определяют внешний вид сайта. Список вариантов оформления содержит те из них, которые доступны в коллекции макетов. Чтобы создать макет, добавьте элемент в список вариантов оформления и укажите для него эталонную страницу, цветовую палитру, схему шрифтов и фоновое изображение.
Примечание.
Если вы хотите, чтобы эталонная страница была доступна в коллекции макетов, потребуется файл предварительного просмотра эталонной страницы.
Добавление варианта оформления
Щелкните значок Параметры, затем выберите пункт Параметры сайта.
В разделе Коллекция веб-дизайнера щелкните ссылку Варианты оформления.
В списке Варианты оформления щелкните ссылку Создайте элемент.
В текстовом поле Название введите название макета.
В текстовом поле Имя введите имя макета. Имя отображается в списке Составные элементы и в коллекции конструкторов.
В текстовом поле URL-адрес главной страницы введите URL-адрес страницы master. Можно использовать относительный URL-адрес.
В текстовом поле URL-адрес темы введите URL-адрес цветовой палитры (URL-адрес файла *.spcolor ). Можно использовать относительный URL-адрес.
В текстовом поле URL-адрес изображения введите URL-адрес фонового изображения. Этот шаг необязательный. Можно использовать относительный URL-адрес.
В текстовом поле URL-адрес схемы шрифтов введите URL-адрес схемы шрифтов (URL-адрес файла *.spfont ). Этот шаг необязательный. Можно использовать относительный URL-адрес.
В текстовом поле Порядок отображения введите номер заказа на отображение. Это определяет, где макет отображается в коллекции конструкторов.
Выберите Сохранить.
Примечание.
Если в значениях варианта оформления допущена ошибка, он не будет добавлен в коллекцию макетов, а в файлах журнала не появится соответствующая запись. Вот некоторые из возможных причин, по которым вариант оформления не может быть добавлен: не удалось найти файл, возникла проблема с форматированием одного из файлов либо SharePoint не удалось получить доступ к файлам.
Теперь вы можете использовать библиотеку макетов, чтобы применить новый дизайн. в статье Выбор темы для сайта публикации на веб-сайте Office.com.
Развертывание темы с помощью кода
Вы можете выполнить развертывание темы, используя приемник компонента.
Для этого:
Создайте класс приемника компонента, наследующий из класса SPFeatureReceiver.
В методе 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();