4

I'd like to display the Quick Launch menu on a blog site above the standard blog navigation on the left hand side (e.g. above the categories and archives webparts), the quick launch menu displays on the AllPosts.aspx page of the Posts list but not on the default page of the site or the Post.aspx page of the Posts lists (and possibly others). I think these pages are different from the standard team site pages which is why the quick launch isn't being displayed.

Is there a way of displaying this across all pages within the Blog site?

2
  • Where specifically are you not seeing the quick launch where you'd like it? Nov 4, 2011 at 15:08
  • @PirateEric, I've updated the question to helpfully explain more clearly.
    – Pete Davis
    Nov 4, 2011 at 15:28

1 Answer 1

3

The answer to this lies in the blog site definition. Open this file:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\SiteTemplates\Blog\Xml\onet.xml

This file is what deploys all the lists and each of their associated views or pages. If you scroll down to the Modules section, you'll see all the web parts being added to each of these pages. Look for the following node inside each page declaration:

<AllUsersWebPart List="x" WebPartZoneID="BlogNavigator" WebPartOrder="x">

This is where the blog-specific navigation (which is a web part inside a zone with the ID "BlogNavigator") is being pushed into the left-hand navigation area of your masterpage. So if you open one of the blog lists' view pages in Visual Studio, e.g:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\SiteTemplates\Blog\Lists\Posts\Post.aspx

You will see that it is replacing the default contents of the "PlaceHolderLeftNavMenu" content placeholder in your masterpage with its "BlogNavigator" web part zone. To add the default current navigation above this, merely copy and paste the existing menu declaration from the masterpage above the blog's "BlogNavigator" web part zone declaration.

It goes without saying, that whenever a developer says "copy and paste", he really means "cut out the existing code, place it in a usercontrol, and reference that usercontrol in both locations". This way you only have your left hand menu declared in a single place. But you knew that already...

2
  • I have tried it, but its not working...
    – user10278
    Aug 23, 2012 at 13:26
  • Can you add some details Jash? Post your code, and also let me know exactly what page / URL it is you're having trouble with.
    – user4545
    Aug 23, 2012 at 22:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.