I wanted to create a structure of sites and allow easy navigation between them. Sharepoint 2007 (or rather, WSS3) has a fantastic tree view of the site hierarchy that you can activate if you want through the site administration page.
One of the grate things about the tree view is that it expands on the server side. This means that the page wont suffer from bad performance even if the site tree is large (unless there are a lot of sites directly underneath it and not in a hierarchy).
I will explain in this article how to tweak some features of this control.
Step 1 - Turn on the tree-view navigation:
- Open the site you want to display the tree in
- Open the "site actions" dropdown and select site settings
- From the site actions, under "Look and Feel" click "Navigation Options"
- Tick the "Enable Tree View" box to show the tree view. Notice that you also have an option to disable quick launch, but that is for another article.
- Go back to the home page in your site:
So far, so good.
Now - my problem was that I wanted the users to see only the sites and not the document libraries. As you can see - the tree view by default is showing everything (my sites were blank sites so they didnt have any lists, but I want them to have lists and not to display them) including the "Form Templates" library in the top level site!
Step 2 - Modify the Control in the Master Page
- Open the site in frontpage.
- In the folder list, expand the "_catalogs" folder and then the "masterpage" folder and find the "default.master" page and open it.
- I prefer to work in split view - that way I can get to where I want in the code much faster. Just click on the tree control in the bottom pane, and the code pane at the top will jump to the code section of the tree.
- Find the piece of code that says ">SharePoint:sphierarchydatasourcecontrol<" as shown below:
- Modify the code- under "IncludeDiscussionFolders" add a new line and write (frontpage offers intellisense so it will help you write it) the code that says not to show document libraries, lists and folders:
- Save the file and exit sharepoint designer.
You can see that now the navigation shows a tree of only sites. You also learned how to show only document libraries, or only lists and so on. (note - there is a way to tell it not to show sub webs...can you figure it out yourself?)
I have been asked by people "why can we not see the treeview after enabling it". Well, the answer is simple - the tree view control isn't in the master page for the page you are looking at. You will need to either change the master page itself, or set a different master page for the page.