Хотя SharePoint поставляется с несколькими шаблонами сайтов, которые упрощают их создание, часто администраторы выражают желание создать пользовательский шаблон, чтобы пользователи могли добавить в него все, что им необходимо, и сделать свою работу более эффективной. Существует два способа переделать шаблон: через шаблоны сайта и определения сайта. Рассматривая шаблоны и определения сайта в этой статье, я хочу пояснить разницу между этими двумя методами и помочь организовать вашу работу в процессе создания и настройки шаблона сайта SharePoint. Это очень богатая тема, я попытался вместить огромное количество информации в одну статью, но все же получилось очень поверхностно. Я буду приводить ссылки на примеры и сайты, которые содержат более детальную информацию и помогут вам более глубоко изучить данную область.
Шаблоны против определений
Шаблон сайта — это пакет, содержащий набор отличий от базовых определений сайта. Шаблоны сайта позволяют задействовать браузер для создания шаблонов сайта на базе существующего сайта SharePoint. Сайт, включая списки, страницы, библиотеки и контент, заархивирован в один файл. stp.
Определения сайта — это набор файлов, которые определяют вид и поведение сайта SharePoint и хранятся на внешней веб-системе (WFE) в папке 12\TEMPLATE\SiteTemplates. Создание или модификация определений сайта требуют навыков программирования, а сам процесс сложнее, чем просто использование шаблонов при создании, поскольку вам нужно создать XML-файлы, которые описывают компоновку сайта и его контент, и упаковать все это в решение для развертывания.
Очень часто администраторы SharePoint хотят изменить или добавить определенные функции к стандартным шаблонам сайта. Давайте используем образец с сайта управления документами, в который требуется добавить некоторые функции. Эти функции не включены в стандартный шаблон. Таким образом, вместо того чтобы создавать сайт, используя шаблон стандартного сайта документов и вручную настраивая его, пользователь может просто применить пользовательский шаблон, который уже был создан для управления документами.
Шаблоны сайта и определения сайта: что использовать?
Итак, чем мы будем руководствоваться, выбирая между шаблонами сайта и определениями сайта при настройке шаблона? Давайте взвесим «за» и «против» каждого метода. Чем больше вы узнаете о каждой из этих методик, тем более обоснованный выбор сможете сделать для настройки собственных сайтов.
«За» шаблон сайта. Шаблон сайта дает администраторам право создавать определенные сайты для упрощения создания сайта с точки зрения пользователя. Сайты, которые создаются с их помощью, обладают теми же свойствами, что улучшает работу и управление. Страницы хранятся только в одном месте — базе данных контента.
«Против» шаблона сайта. Поскольку страницы хранятся в базе данных контента, может произойти снижение производительности. Однажды создав и сохранив шаблон, вы не сможете обновить его для того, чтобы он был совместим с чем-либо другим.
«За» определения сайта. Администраторы должны программным способом создавать определения сайта, что дает им больший контроль над процессом создания. Сайты можно легко развернуть, пользователям не нужно настраивать их. Определения сайта дают больший контроль над видом и поведением. Поскольку сайты четко описаны, будет меньше звонков в службу технической поддержки.
«Против» определений сайта. Создание определений сайта требует навыков программирования (а именно знания Visual Studio). Определения сайта сложны в управлении. Файлы определений хранятся на каждом внешнем сервере. Именно поэтому все обновления должны осуществляться под четким контролем, когда в процесс вовлечено несколько внешних серверов.
Проектирование сайтов
Многие администраторы SharePoint полагают, что, для того чтобы создать сайт, нужно просто открыть шаблон, создать несколько веб-частей и любые другие требуемые столбцы, установить настройки безопасности — и все готово. Но вы и ваши пользователи, скорее всего, будете разочарованы, если не затратите некоторое количество времени на проектирование сайта, чтобы снабдить сайт функциями в соответствии с потребностями пользователей. Так, первый шаг в процессе — это организация встречи с пользователями для того, чтобы:
- понять, какие задачи облегчает сайт; это поможет вам уяснить суть требований (своеобразный список пожеланий) и их значение для выполняемых работ;
- определить требуемые веб-части и нужна ли настройка веб-части или свойств;
- понять профессиональный сленг, который применяют пользователи, и задачи, решаемые с помощью сайта; это позволит назвать сайт, веб-части, столбцы и представления так, чтобы обозначения были понятны пользователям.
Создание шаблона сайта
Первый шаг в подготовке шаблона сайта — создать сайт, который будет базовым для вашего шаблона. Заметим, что шаблон сайта создается с использованием стандартных страниц Site Actions в SharePoint; Visual Studio не требуется. Этот шаг предполагает, что вы знакомы с добавлением сайтов и веб-частей или модифицированием столбцов.
Для создания сайта откройте браузер, введите URL сервера SharePoint и следуйте инструкциям.
- Выберите Site Actions, Manage Hierarchy. Правой кнопкой мыши щелкните по области в иерархии сайта, где вы хотите создать сайт, и выберите Add Site.
- При подсказке относительно имени сайта введите TemplateSite, а в URL добавьте TemplateSite. Выберите шаблон сайта (в нашем примере — Team Site) и щелкните OK. Запишите URL, поскольку он потребуется в дальнейшем.
- Чтобы настроить сайт, введите его URL, нажмите Enter и ждите загрузки. Выберите Site Action, затем Edit Page. Добавьте веб-части, приведенные в таблице, на страницу. Чтобы узнать, как добавлять веб-части, обратитесь к статье Microsoft «Add or remove Web Parts from a page» (http://office.microsoft.com/en-us/sharepointserver/HA011605831033.aspx). На экране показан сайт в завершенном виде.
- Чтобы сохранить сайт как шаблон, введите URL сайта, нажмите Enter и ждите загрузки. Выберите Site Action, затем Site Settings. В разделе Look and Feel щелкните Save Site as Template. На странице Save Site as Template в разделе File Name введите TemplateSite. Затем выберите переключатель Include Content и щелкните OK. Запишите имя шаблона сайта.
- Чтобы использовать шаблон, введите URL сайта развертывания (веб-страницы). Выберите ссылку Create a New Site. Затем появится предложение ввести имя сайта, его URL и описание.
- Внизу страницы будет подсказка с шаблоном сайта. Здесь можно выбрать один из сайтов Template SharePoint. Выберите пользовательский шаблон сайта, который вы создали, и продолжайте следовать подсказкам.
Определения сайта
Определения сайта, как было сказано выше, являются группой файлов настроек, которые обеспечивают базис для создания сайтов SharePoint с определенной структурой и функциональностью. Каждое определение сайта содержится в собственной папке на Local_Drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates. Файлом, который содержит определение сайта, является onet.xml; он размещен в подпапке, называемой \TEMPLATE\SiteTemplates\SMS\XML\ONET.XML. Следующие секции описывают ключевые файлы настроек для определений сайта и показывают, как создать определение и проводить простые изменения для подстройки.
Создание определения
Первый шаг — это создание определения, с которым вы можете работать, путем копирования существующего определения сайта. Чтобы это сделать, откройте Windows Explorer и перейдите к Local_Drive:\ Program Files\Common Files\ MicrosoftShared\Web Server Extensions\12\TEMPLATE\SiteTemplates. Создайте папку под названием MYCUSTOMSITE. Скопируйте содержание папки STS в папку MYTEMPLATESITE.
Webtemp.xml
Файл Webtemp.xml описывает, как определения сайта перечислены в различных элементах управления, которые использует SharePoint для создания новых коллекций сайтов и подсайтов (я называю это мастер-списком шаблона сайта). Этот файл расположен в папке для соответствующего языка в каталоге 12: 12\TEMPLATE\1033\XML\ для английского языка. SharePoint подсоединяет любой файл, который начинается с Webtemp, в один список доступных определений сайта.
Каждый внешний сервер при развертывании SharePoint (как WSS 3.0, так и MOSS 2007) имеет как минимум изначально заданный файл Webtemp.xml, размещенный в папке Local_Drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LCID\
XML, где LCID является числовым ID языка/страны (например, 1033 для английского). Может быть также один или больше пользовательских файлов Webtemp*.xml. Файлы Webtemp*.xml содержат настройки определений сайта, которые находятся в разделе Template Selection на странице New SharePoint Site. В листинге 1 показан образец файла Webtemp.xml.
Каждое определение сайта идентифицируется по имени и уникальному ID. Если ваш ID не является уникальным в ферме, вы получите сообщение об ошибке в связи с отсутствующим шаблоном. Обычно я работаю с диапазоном, который далек от различных ID от Microsoft (например, 2002, 2003). Вам необходимо также содержать список всех ID, которые вы задействовали в своем пользовательском проекте (например, в проекте сайта SharePoint).
Я мог бы добавить пользовательский сайт, вставляя следующие строчки XML в элемент Template:
Name="MYTEMPLATESITE"
ID="2002">
ID="0"
Title="My Template Site"
Hidden="FALSE"
ImageUrl="/_layouts/images/
mwsprev.png"
Description="Description of my
template site."
DisplayCategory="Collaboration"/>
Заметим, что имя Name должно быть в верхнем регистре (то есть MYTEMPLATESITE). Закройте браузер и запустите IISRESET из командной строки (так вы убедитесь, что SharePoint работает с новым файлом XML). Теперь вы можете работать с новым шаблоном, экспериментируя с изменениями и редакциями.
Onet.xml
Файл onet.xml обеспечивает контент (веб-части) и макет определения сайта (я называю его мастер-определением). Официальное определение Microsoft: «В файле Onet.xml (http://msdn.microsoft.com/en-us/library/ms474369.aspx) элемент Feature используется внутри определения сайта, чтобы указывать на экземпляр Feature и значения свойств по умолчанию. Элемент Configuration определяет списки и модули для использования во время создания сайтов SharePoint».
Будьте осторожны, работая с onet.xml. Не модифицируйте контент глобального файла onet.xml (\TEMPLATE\GLOBAL\XML), поскольку это может нарушить всю установку. Файл onet.xml содержит определения сайта для следующих элементов:
- NavBars — линейка навигации на страницах сайта команды;
- ListTemplates — доступные списки и библиотеки документов для сайта;
- DocumentTemplates — шаблоны библиотек документов для сайта;
- BaseTypes — базовые списки и определения полей, имеющихся на сайте;
- Configurations — дает примеры созданных списков и библиотек и содержит указатели на модули;
- Modules — модули определяют на каждой странице ASP.NET веб-части, которые должны быть показаны.
Для начала давайте взглянем на элемент NavBars в файле onet.xml:
href='#URL#' accesskey='J'>#LABEL#"
ID="1002">
Url="viewlsts.aspx"/>
Url="create.aspx"/>
Url="settings.aspx"/>
Я мог бы добавить ссылку на Google, вводя следующие строчки XML-кода внутрь элемента NavBar:
Url="http://www.google.com">
Секция ListTemplates определяет все списки и библиотеки, которые вы делаете доступными в определении сайта. Обратите внимание, что список ListTemplates не включен в файл onet.xml стандартного определения сайта SharePoint, который вместо этого использует список определения Features и файлы. xml элементов для определения его шаблонов списков. Пример, показанный в листинге 2, взят из файла onet.xml.
Шаблоны документов
Раздел DocumentTemplates определяет шаблоны документов, перечисленные на новой странице. Он также содержит коллекцию шаблонов библиотек документов, которые доступны для создания библиотек документов. Эта коллекция приведена в списке диалогового окна Template Type на странице New Document Library.
Path="STS"
DisplayName="$Resources: core,
doctemp_Word;"
Type="121"
Default="TRUE"
Description="$Resources: core,
doctemp_Word_Desc;">
Name="doctemp\word\wdtmpl.dotx"
TargetName="Forms/template.dotx"
Default="TRUE"/>
…
Вы могли бы отредактировать этот тег
Name="doctemp\word\CustomerOrder.dotx"
TargetName="Forms/CustomerOrder.dotx"
Default="TRUE"/>
Не забудьте, что вам нужно заменить template.dotx в каталоге форм на новый шаблон.
BaseTypes
Элемент BaseTypes глобального файла onet.xml используется во время создания списков или сайтов для определения пяти типов сайта, на которых базируются все определения списков SharePoint. Каждый шаблон списка, который определен в разделе ListTemplate, идентифицирован с одним из следующих базовых типов: Generic List (общий список), Document Library (библиотека документов), Discussion Forum (форум для обсуждения), Vote or Survey (голосование или опрос) или Issues List (список проблем). Листинг 3 показывает код для элемента BaseTypes.
Настройки
Каждый элемент в разделе Configurations, как показано в листинге 4, определяет списки и модули, которые созданы по умолчанию, когда настройки определений сайта инициируются. Например, одна настройка может определять макет сайта, при его создании в качестве корневого в коллекции сайтов, а другая настройка в том же файле onet.xml может давать содержание и макет страниц нового сайта, когда он создан как подсайт в коллекции сайтов. Более подробную информацию можно найти в статье «Configuration Element (Site)» на msdn.microsoft.com/en-us/library/ms476942.aspx.
Обзор свойств и пример
В WSS 3.0 и MOSS 2007 разработчики Microsoft ввели свойства Features. По существу, свойства дают вам право добавлять новые функции в SharePoint или делают пользовательскую настройку сайта легкой и последовательной. Инфраструктура Features дает вам право ограничивать свойства на уровне фермы, веб-приложения, сайта и сети в зависимости от назначения вашего свойства. Свойство реализуется, используя файл feature.xml. Ниже я привожу пример файла свойства, который создал в Visual Studio и который добавляет ссылку на панель инструментов:
xml version="1.0 encoding="utf-8"?>
microsoft.com/sharepoint/"
Id="Simple Link"
Title="MySite Link"
Description="Add link to toolbar menu
for MySite"
Scope="Web"
Hidden="FALSE"
AlwaysForceInstall="TRUE">
Откройте Visual Studio и скопируйте упомянутый выше код в файл. Сохраните файл в C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\MySiteToolBar\Feature.xml.
Следующий код из файла toolbar.xml, который добавляет ссылку на MySite:
Id="MySite Toolbar «
Sequence="10"
RegistrationType="List»
RegistrationType="101»
Description="Add a MySite link to
the tool bar. " >
Сохраните файл в C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\MySiteToolBar\ToolBar.xml. Однажды создав свойство, вы устанавливаете его, используя Stsadm. Вот синтаксис команды:
Stsadm.exe -o installfeature-filename c:\features\Toolbar\Feature.xml
После завершения установки вы активируете свойство, открывая браузер и вводя URL на свой портал. Щелкните Actions, Site Settings, затем Under Site Administration, щелкните ссылку Site Features. Найдите функцию и нажмите кнопку Activate. Альтернативный подход — использование Sysadm, в следующем виде:
C:\Program Files\Common Files\MicrosoftShared\Web Server Extensions\12\bin\stsadm -o activatefeature -filenameMySiteToolBar\Feature.xml -url http://ServerName/Sitecollection
MSDN предлагает лабораторную работу «How to: Add Actions to the User Interface», которая показывает, как создавать функцию, которая проведет по процессу добавления функций в разные меню интерфейса пользователя в WSS. Пример показывает, как добавлять действия в различные меню, используя свойства, и как активировать действия при развертывании. Я предлагаю вам посмотреть эту лабораторную работу и создать собственный шаблон сайта, чтобы понять инфраструктуру свойств и их мощь. Посмотреть лабораторную работу можно по адресу http://msdn.microsoft.com/en-us/library/ms473643.aspx. Две другие статьи — «Features for SharePoint» (http://msdn.microsoft.com/en-us/magazine/cc163428.aspx) и «Working with Features» (http://msdn.microsoft.com/en-us/library/ms460318.aspx) — дают более детальную информацию об использовании свойств.
Все об удобстве работы
Шаблоны сайта и определения сайта могут помочь компании правильно организовать работу с SharePoint, создавая сайты с одинаковым внешним видом и поведением, что помогает сократить обучение и оправдать затраты. Они также предоставляют способ проектирования шаблонов сайта, который отвечает требованиям организации и поможет сократить время, затрачиваемое на развертывание сайта. Используя инфраструктуру свойств, ваша организация может дополнять свойства сайтов в целом или только конкретных сайтов для расширения функциональности или повышения удобства работы пользователей.
Рон Чарити (Ron.charity@hp.com) — архитектор решений в HP, специализируется на решениях для управления документами и записями, совместной работы и поиска