Мда, запустил я свой блог.
У меня есть пару черновиков статей, но сейчас не могу никак найти время, чтобы довести их до ума. Поэтому сейчас коротенькая запись и опять на работу.
На данный момент работаю над проектом под 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. При установке на другую коллекцию сайтов данное решение не тестировалось.
Вот результат:
Комментариев нет:
Отправить комментарий