Collaboration features on SharePoint 2007 are undisputedly excellent, but there is occasional quirk which impede serious usability. One of them is absence of left navigation, or “quick launch”, on custom created web-part pages in any SharePoint site. Though you can choose from various web-part page layout style during creation, there is no option to make the left navigation visible other than playing page-by-page with SharePoint Designer! In large utilizations, its impossible to go to each web-part page and hope to fix it in SharePoint Designer. Not everyone has it, nor they know how to play with mark-up of page/master page.
So I set out to figure how I can fix this for all existing web-part pages and those created in future in any site, site-collection, or web-app in my farm, so that same site left-navigation is available on all web-part pages. It’s another thing that system pages (_layouts/*.aspx) will continue to come without left-navigation of a site.
How to enable left navigation – quick launch – for all web-part pages?
In SharePoint’s “12 hive” folder, at following path, there is template of all web-part page layouts used for creation from Create > Web Part Page.
Web-Part Page Layouts: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\1033\STS\DOCTEMP\SMARTPGS
Note: This screen capture is from a Windows 7 x64 dev machine (build 7100); I am running SharePoint on it instead of Windows Server. Details here.
If you open any of the 8 aspx pages in the folder, you’ll notice following 3 Content controls:
Now these 3 are responsible for hiding out Page image on top-left, quick-launch, and appropriate width required for quick-launch. All we have to do is comment these, so that what’s already defined in master page in these placeholders remains populated for the web-part pages using these layouts/templates.
Now there is one issue I additionally want to fix/enhance. The PlaceHolderPageImage responsible for top-left image icon on each page will come empty and wouldn’t look nice, so I’m going to place a image for generic use already present in /Images folder. This will result in following:
So here is the final result, once above changes are implemented on each web server in a farm…
I’m sure your SharePoint site designers and their user’s will love this trick.
PS: In my next post, I’ll talk about better way’s of dealing with deployment/management of changes/replacements done to system files in “12 hive” folder of SharePoint server. Remember, Microsoft doesn’t want you to do system-file changes and have a support clause against them, but reality is that many necessary changes can’t be achieved without touching them…