views:

893

answers:

2

I am a beginner in SharePoint and I need to create publishing site that will have multilevel menu. Requirement is that levels will not be fixed and that client should be able to add pages and customize menu.
If I am not mistaken pages can be created only in the first level under the site. I don't see something like folders concept. For the navigation purposes I can add heading and it will be shown as another level. If I need more levels I need to create sub sites.

Site
   Page1
   Page2
   Heading
     Page3

Is this correct?

Site
   Page1
   Page2
   Sublevel_1
     Page1_1
     Sublevel_2
        Page2_1
        Sublevel_3
            Page3_1
         ...

Can I do something like this without creating SharePoint sub sites ? If I don't need I will skip writing some custom menu control or write custom SiteMapProvider. I will than need to write UI for managing navigation also.

EDIT:
I have managed to create Folder in Pages list and create (actually move) pages to that folder and even create sub folder but they are not showing on the menu not even in the navigation settings page. I can't approve folder, it is in pending status what ever I try.

I looks like this is not possible by the Andrew Connell: Subfolders are not Supported in the Pages Library in MOSS Publishing Sites

A: 

You can create multiple document libraries in a site and then put the pages in the various libraries. That way you wouldn't need to create sub-sites

OTisler
As I said I am beginner, can you provide me some link or some more info ? Thanks for answer, I will surely investigate this.
Robert Vuković
You can't put publishing pages into doc libraries other than the Pages on though, so this technique has limited use..
marcus.greasly
+1  A: 

Out of the box, you can modify the navigation for a Publishing site manually.

I assume that you are after a more automated way to do this. Unfortunately, the way to modify the navigation for a PublishingWeb is through the object model and the PublishingWeb.CurrentNavigationNodes object, which would require a timer job or some other method to update as pages are edited/added/deleted.

This is non-trivial and you will still need to create a solution/feature package. The other way is to create a custom navigation provider. The issue with both of these options (aside from the actual coding and release) is caching the navigation structure. We have used the standard web cache for the object holding the navigation structure, but using the standard user browsing (i.e. the menu code itself) to kick of a refresh of the navigation is fraught with threading issues.

Nat