пятница, 15 апреля 2011 г.

SharePoint 2010: How to add custom page to Central Administration

Появилась цель добавить некоторую информацию о нашем продукте в Central Administration. В MSDN есть пример как это сделать используя VS2010, но на мой взгляд это слишком сложно.

Я нашел более простое решение, основанное на WSPBuilder. Обращаю внимание на то, что использовать надо именно BETA-версию, т.к. последний релиз не поддерживает SharePoint 2010.

Прежде всего создаем структуру каталогов:

В MyPageFolder кладем файл Extension.aspx , содержащий:

<%@ Page MasterPageFile="~/_admin/admin.master"%>
<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
</asp:Content>
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
Hello World!
</asp:Content>
<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
My Product Extension
</asp:Content>
<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
My Product Extension
</asp:Content>
 

Это и есть страничка, которая будет показываться.

После этого необходимо создать фичу в рамках которой будет работать наша страничка. Для этого в каталоге MyFeatureName создаем два файла elements.xml и feature.xml

elements.xml:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <CustomActionGroup
       Id="MyProduct"
       Location="Microsoft.SharePoint.Administration.GeneralApplicationSettings"
       Title="My Product"
       Sequence="100"
    ImageUrl="/_layouts/images/centraladmin_generalapplicationsettings_myproduct_page_32x32.png" />
    <CustomAction
       Id="MyProductAction"
       GroupId="MyProduct"
       Location="Microsoft.SharePoint.Administration.GeneralApplicationSettings"
       Sequence="10"
       Title="Some Action"
       Description="Description of Action">
        <UrlAction Url="_admin/MyPageFolder/Extension.aspx" />
    </CustomAction>
</Elements>

В elements.xml указываем, что хотим добавить отдельную группу My Product во вкладку Central Administration\General Application Settings (Microsoft.SharePoint.Administration.GeneralApplicationSettings) и создать в ней ссылочку с именем Some Action открывающую нашу страничку.

Файл feature.xml будет содержать описание фичи:

<Feature Id="952BA447-450D-47E1-9C7E-940A494E8333"
   Title="My Product"
   Scope="Farm"
   Description="Description of my product"
   xmlns="http://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="elements.xml" />
    </ElementManifests>
</Feature>
 

Так же в каталог IMAGES кладем файл с иконкой продукта и именем centraladmin_generalapplicationsettings_myproduct_page_32x32.png (на него мы ссылались в elements.xml)

Теперь остается лишь запустить WSPBuilder в этом каталоге
"C:\Program Files (x86)\WSPTools\WSPBuilderExtensions\WSPBuilder.exe" -WSPName MyProduct.wsp
И получим готовый солюшен для развертывания на SharePoint 2010.

Деплоим:
stsadm -o addsolution -filename MyProduct.wsp
stsadm -o deploysolution -name MyProduct.wsp -immediate

А вот что должно получится:

Комментариев нет: