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.
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>