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>