Eric Hartwell's InfoDabble

Welcome to Eric Hartwell's InfoDabble
About | Site Map
Home Tech Notes Apollo 17: Blue Marble Apollo 17 Flight Journal   Calendars About me  

HowTo: Customize Community Server Navigation

By Eric Hartwell - last updated March 19, 2006

Community Server 2.0 was designed to be customized and extended, so it's extremely easy to add links to other site components to the navigation tab bar.

Tab Bar

The site's addresses are specified in SiteUrls.config, and XML text file at the root of the Community Server installation. The navigation links are specified in the <navigation> section, or the format:

<link name="name" resourceUrl="url" resourceName="text" roles="roles" />
<link name="name" navigateUrl="url" text="tabtext" />

  • name: look up value (identifier)
  • resourceUrl: maps to url name in SiteUrls/Urls
    navigateUrl: fixed, absolute URL
  • resourceName: Text for link/tab. Maps to the language resource files
    text: Text for link/tab, single language
  • roles: Which users can view this link. If no roles attribute is given, it will assume it is for Everyone. You can specify multiple roles by separating them with a comma

The Siteurls.config for my site looks like this:

Siteurls.config (changes/additions in white)
name: look up value
resourceUrl: maps to url name in SiteUrls/Urls
resourceName: text for link. Maps to the language resource files
roles: Which users can view this link.

You can also specify actual links here like the following:
<link name="mylink" navigateUrl="" text="My Link" />
If no roles attribute is given, it will assume it is for Everyone. You can
specify multiple roles by separating them with a comma (,).
<!-- link name="home" resourceUrl="home" resourceName="home" roles="Everyone" / -->
<link name="home"  navigateUrl="" resourceName="home" roles="Everyone" />
<link name="mywiki" navigateUrl="" text="Wiki />
<link name="blog" navigateUrl="" text="Blog" />
<link name="myarchive" navigateUrl="" text="Archive" />
<link name="blogs" resourceUrl="webloghome" resourceName="weblogs" roles="Everyone" applicationType = "Weblog" />
<link name="forums" resourceUrl="forumshome" resourceName="forums" roles="Everyone" applicationType = "Forum" />
<link name="gallery" resourceUrl="galleryhome" resourceName="photos" roles="Everyone" applicationType = "Gallery" />
<link name="files" resourceUrl="fileshome" resourceName="files" roles="Everyone" applicationType = "FileGallery" />
<link name="reader" resourceUrl="readerhome" resourceName="reader" applicationType = "FeedReader"
   type ="CommunityServer.Reader.Controls.ReaderMenuValidator, CommunityServer.Reader" />
<link name="roller" resourceUrl="rollerhome" resourceName="roller" applicationType = "BlogRoller" />
<link name="controlpanel" resourceUrl="controlpanel" resourceName="controlpanel"
   FileAdministrator,ReaderAdministrator,MembershipAdministrator" />
<link name="mytechnotes" navigateUrl="" text="Tech Notes" />
<link name="myapollo17" navigateUrl="" text="Apollo 17" />
<link name="myabout" navigateUrl="" text="About me" />


Unlike most other parts of the application, the Community Server footer is not designed to be easily customized. This is largely a licensing issue:

The Express Edition of Community Server is recommended for organizations or individuals that want to quickly and easily (on a budget) create a community site. It includes fully functional blogs, forums, and photo gallery tools. However, it is limited in that add-ons cannot be used and it has a required “Power By” advertisement in the footer of every page.

However, provided you don't violate the license agreement, you can customize the footer by editing the theme's Master.ascx file. Comment out Community Server's <CS:Footer> code, and replace it with the HTML from the bottom.htm shared border we already built for the FrontPage part of the site - plus the "Powered By Community Server" advertisement, of course.

Master.ascx (changes/additions in white)
<div id="CommonBody">
   <table cellspacing="0" cellpadding="0" border="0" width="100%" id="CommonBodyTable">
<div id="CommonFooter">
    <CS:MPRegion id="BodyFooterRegion" runat="server" >
        <CS:Footer runat="server" id="Footer1"/>
<div id="CommonFooter" style="font-size: 9px">
   <table border="0" cellspacing="0" cellpadding="0" width="100%">
     <td nowrap width="108">
        <a rel="license" href="">
        <img alt="Creative Commons License" border="0" src="/images/somerights20.png" hspace="10" width="88" height="31"></a>
     <td nowrap align="left">
        Unless otherwise noted, all material by <a href="">Eric Hartwell</a> is licensed under <br>
        the <a href=""> Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License</a>
     <td width="90%">
         <a href=""><img border=0 hspace="10" width="114" height="40" src="/cs2/images/EULA.gif" /></a>
Next Step: Customize FrontPage Navigation and Skin

Revision History
  • 20060319 - Added footer
  • 20060316 - Initial version
Creative Commons License

Unless otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License


Site Map | About Me