Windows SharePoint Services 3.0: Создание и развертывание решений (часть 3)
Продолжим наращивание решения, которое мы создали в предыдущей части. Попробуем добавить в наш пустой шаблон Feature (фичу).
Feature - специальный механизм в WSS 3.0, позволяющий определять и развертывать новые элементы, такие как веб-части, модули, меню, определение списков и др. Сам по себе мезанизм Features очень удобен, так как позволяет сконцентироваться на разработке отдельных небольших элементов, которые могут быть использованы как на готовом сайте, так и в новом шаблоне сайта. Если Вам нужно что-то изменить в существующем сайте, первым делом подумайте о Feature. Чтобы научится работать с этим механизмом нужно обратиться к разделу "HowTo:..." в SDK и посмотреть на различные варианты использования этого механизма. Очень часто приходится видеть, как разработчики создают не гибкие решения или вовсе изобретают колесо, не умея работать с Features. Пример: Вы хотите заменить SearchBox на свою реализацию. Неправильный вариант решения: создать новую эталонную страницу или изменить существующую (что еще хуже). Правильный вариант: использовать Feature, позволяющую заменять элементы управления, объявленные как DelegateControl. Такую Feature можно развернуть в любой момент, как и деактивировать.
Разработаем простую Feature, которая позволит добавить новый пункт меню в Site Actions.
Создадим файл feature.xml со следующим содержимым:
<Feature xmlns="https://schemas.microsoft.com/sharepoint/"
Id="91E266BE-CAFB-4197-B920-31E6627C2056"
Title="Add News"
Description="Add news to the main page"
Scope="Web"
Hidden="FALSE"
ImageUrl="menuprofile.gif">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>
</Feature>
Этот файл описывает уникальный идентификатор для Feature, ее имя, область видимости, а также ссылки на файлы с описанием элементов.
Одним из элементов, допустимым в описании Feature является CustomAction. С помощью этого элемента можно добавить пункт в меню Site Actions. Вот как выглядит описание этого элемента в файле elements.xml:
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
<CustomAction Id="AddNewsAction"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="100"
Title="Add News"
Description="Manage news"
ImageUrl="_layouts/images/menuprofile.gif">
<UrlAction Url="https://www.microsoft.com"/>
</CustomAction>
</Elements>
Чтобы развернуть Feature необходимо задекларировать ссылку на нее в manifest.xml. Это можно сделать с помощью элемента FeatureManifest:
<FeatureManifests>
<FeatureManifest Location="AddNewsSiteAction\feature.xml"/>
</FeatureManifests>
Нужно отметить, что развертывание Feature не активирует эту фичу на сайте, созданном по нашему шаблону. Один из способов активировать вичу, разместить ссулку на нее в файле onet.xml. Тут мы можем использовать WebFeatures или SiteFeatures элементы (в зависимости от области видимости самой Feature).
<WebFeatures>
<Feature ID="91E266BE-CAFB-4197-B920-31E6627C2056"></Feature>
</WebFeatures>
На последнем этапе расширим .ddf файл новыми элементами. При этом все элементы Feature мы пакуем в папки с соответствующим именем не добавляя имя корневой директории \Features:
Template\Features\AddNewsSiteAction\feature.xml AddNewsSiteAction\feature.xml
Template\Features\AddNewsSiteAction\elements.xml AddNewsSiteAction\elements.xml
Аналогичным образом можно добавлять и активировать другие Features в наш шаблон. Отдельно стоит выделить веб-части, так как они имеют немного более сложную схему развертывания.
Comments
- Anonymous
February 04, 2009
Продолжим наращивание решения, которое мы создали в предыдущей части. Попробуем добавить в наш пустой