Adding Breadcrumb Navigation to Application Pages in SharePoint Central Administration

It is great to find out people like the articles you write on your blog, and it's even more fun when people actually contribute to your blog as well. That's how I received an update to a blog post I wrote some time ago, about adding breadcrumb navigation to Application Pages. Bart Snyckers explained that the mechanism described in my post worked a little bit different if you want to add Application Pages to the Central Administration site. Bart doesn't have a development blog yet (but he told me he's working on one, and he's running a photo blog already), so I'm posting Bart's findings below. Thanks Bart!

 

Recently we also wanted to add breadcrumb navigation to some Application Pages for SharePoint, which we were using in our Central Administration, like the out-of-the-box Application Pages have. But it didn't worked out the way I wanted to. Google showed me the way to Jan Tielens’ blogpost about Adding breadcrumb navigation to SharePoint Application Pages, The easy way.

 

But after some research I found out that Application Pages that you want to show in the SharePoint Central Administration Site should be placed in different folders than normal Application Pages (in collaboration or publishing sites for example). When you are building up your 12-hive structure you should use 12\TEMPLATE\ADMIN for the Application Pages (*.aspx) and sitemap (admin.sitemap.*.xml) files, instead of the 12\TEMPLATE\LAYOUTS. If you mix up the .aspx and .sitemap files between the ADMIN and LAYOUTS folder, the breadcrumbs just don't appear at all and if you place everything in the LAYOUTS folder, the breadcrumbs don't work like you expect them to do. Further you have to reference the correct MasterPageFile from the ADMIN folder as well.

 

To deploy your feature and let SharePoint add the sitemap entries, you can use the methods described in Jan's article.Below you can find a small example to provision an Application Page in the Operations tab in your Central Administration:

 

Application Page (.aspx), deployed to 12\TEMPLATE\ADMIN

<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>

<%@ Assembly Name="Example.SharePoint.CentralAdminApplicationPage, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2de06805bd3065de"%>

 

<%@ Page Language="VB" MasterPageFile="~/_admin/admin.master"

         Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>

 

<asp:Content ID="content1" ContentPlaceHolderID="PlaceHolderMain" runat="server">

      Central Administration Application Page

</asp:Content>

 

<asp:Content ID="content2" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">

    Central Administration Application Page

</asp:Content>

 

<asp:Content ID="content3" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">

   Central Administration Application Page

</asp:Content>

 

Sitemap (admin.sitemap.*.xml), deployed to 12\TEMPLATE\ADMIN

<?xml version="1.0" encoding="utf-8" ?>

<siteMap>

      <siteMapNode title="Central Administration Application Page" url="/_admin/CentralAdminApplicationPage.aspx" parentUrl="/_admin/operations.aspx"/>

</siteMap>

 

Feature (feature.xml)

<Feature xmlns="http://schemas.microsoft.com/sharepoint/"

  Id="{25397E25-C142-423a-97D2-AEA7BA6C0879}"

  Title="Central Administration Application Page"

  Description="Enables the Central Administration Application Page."

  Scope="Site"

  ReceiverAssembly="Central Administration Application Page, ..."

  ReceiverClass="Example.SharePoint.CentralAdminApplicationPage.FeatureHandler">

  <ElementManifests>

    <ElementManifest Location="customactions.xml"/>

  </ElementManifests>

</Feature>

 

Customactions (Customactions.xml)

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

      <CustomActionGroup

        Id="{79C8B7A7-E258-4835-B12D-D592F9CE100E}"

        Title="Central Administration Application Page"

        Location="Microsoft.SharePoint.Administration.Operations"

        Sequence="100" />

      <CustomAction

            Id="{828008F8-20DB-4224-8D2C-A4826C66E874}"

            Title="Example Application Page"

     

            GroupId="{79C8B7A7-E258-4835-B12D-D592F9CE100E}"

            Location="Microsoft.SharePoint.Administration.Operations"

     

            RequireSiteAdministrator="TRUE"

            Sequence="10">

            <UrlAction Url="/_admin/CentralAdminApplicationPage.aspx"/>

      </CustomAction>

</Elements>

1 Comment

  • Well, you are almost there, but not quite.

    You want to make sure your central Admin sitemap is recalculated. The syntax for this is different from what Jan states in his original article.

    In your Farm Feature's FeatureActivated event put the following line:

    SPWebService.AdministrationService.ApplyApplicationContentToLocalServer();

Comments have been disabled for this content.