Udostępnij za pośrednictwem


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
    Продолжим наращивание решения, которое мы создали в предыдущей части. Попробуем добавить в наш пустой