Мда, запустил я свой блог.
У меня есть пару черновиков статей, но сейчас не могу никак найти время, чтобы довести их до ума. Поэтому сейчас коротенькая запись и опять на работу.
На данный момент работаю над проектом под SharePoint Server 2010 и вчера возникла необходимость добавить custom link на панель быстрого запуска в Central Administration (далее, CA). Сперва поискал ("погуглил") на эту тему в интрнете, ничего внятного не нашел. Некоторые разработчики говорили, что это возможно, но сложно, а некоторые - невозможно вообще.
Теперь я вам докажу, что это возоможно! :)
Итак, предположим, что нам нужно поместить CustomActionGroup с кучей CustomAction в ней на главную страницу CA. Но при этом хотелось бы, чтобы она добавилась на панель быстрого запуска. Nintex смог такое сделать, почему и мы не можем сделать то же самое? Даже несмотря на то, что в Nintex работают бывшие разработчики SharePoint.
Итак прошу взглянуть на elements.xml файл, в котором описана CustomActionGroup:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomActionGroup Id="CAG_Front"
Title="$Resources:CAG_Front;"
Description="$Resources:CAG_FrontDescription;"
Location="Microsoft.SharePoint.Administration.Default"
ImageUrl="/_layouts/images/SiteSettings_Galleries_48x48.png"
Sequence="100">
<UrlAction Url="/_admin/TenantsManager/Management.aspx" />
</CustomActionGroup>
<CustomAction Id="CA_FrontTenantsAction"
Title="$Resources:CA_FrontTenants;"
Sequence="1"
Location="Microsoft.SharePoint.Administration.Default"
GroupId="CAG_Front">
<UrlAction Url="/_admin/TenantsManager/Tenants.aspx" />
</CustomAction>
<CustomAction Id="CA_TMFrontFeaturePacksAction"
Title="$Resources:CA_FrontFeaturePacks;"
Sequence="2"
Location="Microsoft.SharePoint.Administration.Default"
GroupId="CAG_Front">
<UrlAction Url="/_admin/TenantsManager/FeaturePacks.aspx" />
</CustomAction>
</Elements>
Как видите, ничего сложного. Описание группы и привязка действий к данной группе. Теперь самое интресное творится в файле feature.xml:
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
AlwaysForceInstall="TRUE"
AutoActivateInCentralAdmin="TRUE"
DefaultResourceFile="TenantsManager"
Description="$Resources:FeaturesTenantsManagerDescription;"
Hidden="TRUE"
Id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
ImageUrl="TenantsManager/CompanyLogo.png"
Scope="Web"
Title="$Resources:FeaturesTenantsManagerTitle;">
<ElementManifests>
<ElementManifest Location="TenantsManagerActions\Elements.xml" />
<ElementManifest Location="SafeControls\Elements.xml" />
<ElementManifest Location="TenantsManagerRibbons\Elements.xml" />
</ElementManifests>
</Feature>
Итак, основной момент в описании данной фичи это то, что она имеет область действия: Web. Если фича будет иметь другую облать действия, то данная группа не появится на панели быстрого запуска. Данный метод был протестирован и опробован при установке его непосредственно на CA. При установке на другую коллекцию сайтов данное решение не тестировалось.
Вот результат:

Комментариев нет:
Отправить комментарий