Customizing the Site Directory in MOSS 2007

July 23, 2006

Like most SharePoint implementers out there I typically like to modify the Site Directory for my customers. I find that the out of the box options for Region and Division are pretty lacking and really fall short of how my clients want to organize and search for SharePoint sites. Luckily, MOSS 2007 makes it quite easy to customize these options. Here’s how.

tnsite-directory.gifFirst, navigate to the Sites page in your MOSS implementation. You’ll see the standard list of categories and a few tabs (see figure 1). The first things I thought when I saw this view was 1) how can I change those categories to be something I care about and 2) how can I change the tabs?

The first step to customizing both of these items is to click View all Site Content above the quick launch bar on the left-hand side. Scroll down to look at the lists. You will see two lists which are quite conspicuous: Sites and Tabs.

First let’s customize the site categories. Click on the Sites list. Then from the Settings drop down, choose List Settings. Add a new column called “Site Type”, make it a choice column, and give it the values “Project” and “Initiative”.

Next, while still on the list settings page, scroll down to the list of views. Click on the Categories view. This view defines what properties are shown on the Categories tab. In the list of columns, find Site Type and check the box so that it will be shown in the view. By choosing to have the property shown in the view it will be shown on the Categories tab on the site directory page.

tnmodified-site-directory.gifSave the view and return to the list settings page. Now locate the view called Site Creation Categories. This view determines what fields are displayed when a new site is created. Modify this view to include Site Type as well.

Now, navigate back to the site directory page. You should now see Site Type listed in the categories list (figure 2). If you click the Create Site button you should see Site Type in the list of Site Categories as well (figure 3).

tncreate-site-page.gifYou can see that with further customization you can make the site categories fit whatever site organization model you need.

Next, let’s change the tabs. I don’t like Top Sites and I’d like another tab called Project Dashboard.

Go back to View All Site Content and click on the Tabs list. Immediately you will see what drives the list of tabs on the site directory page. The tabs list contains a list of pages, one (or more in the case of Categories) for each tab. First, let’s get rid of the Top Sites tab. Simply click the Edit icon and then click Delete Item.

tncreate-dashboard-page.gifNext to add a new tab called Project Dashboard. From the Site Actions drop down select Create Page. Make the URL name of this new page “ProjectDashboard.aspx”. For the Page Layout, select (Welcome Page) Site Directory Home and click OK.

You will now be taken to the newly created page in edit mode. Add a web part for the Sites list to the page and configure it to filter the list to only display sites where the Site Type property is equal to “Projects”.

tnproject-dashboard.gifNow, navigate back to the Tabs list. From the New menu, select New Item. Call the new tab “Project Dashboard”. In the Page text box, enter “ProjectDashboard.aspx”. Click OK. Navigate back to the Site Directory page to see your handy work.

As you can see, this was pretty easy to do. With all of the filter web parts, content aggregation web parts, and other goodies MOSS 2007 comes equipped with it should be possible to build any number of different views into your SharePoint sites.

kick it on SharePointKicks.com

39 Responses to “Customizing the Site Directory in MOSS 2007”

  1. Daniel Says:

    Great article. But, my question is… is it possible to remove the categories that MS has created in the first place or not? Couldn’t this cause confusion when a user is trying to categorize their site if they have options that may conflict?

  2. glenc Says:

    Yep. You can remove the categories that are there by default (in fact we usually do just that). The nice thing about the site directory is that you can change all of those settings by changing the columns in the Sites list and associated views.

  3. Alan Says:

    A great article and very helpful, however which web part would you add for the sites list that allows you to then apply a filter. I am unable to locate an appropriate web part or to configure it correctly.

  4. Matt Says:

    Nice post dude. V. helpful.

  5. mayumi Says:

    Great article. One request. Would you eraborate “Add a web part for the Sites list to the page and configure it to filter the list to only display sites where the Site Type property is equal to “Projects”.” etween Figure 4 and Figure 5? What webpart to use and how to filter….
    Thanks in advance.

  6. Puneetn Says:

    First to answer posters 3 and 5. There are multiple ways to acheive what you want in MOSS
    1. You can use the List view web part which is tied to Sites List. If you look in your gallery there will be a webpart with the name Sites. I believe it take a url to the view and will display whatever in the view. So you can create a view on the list which does what you want and then hook it up with the list view webpart. This method works for any list in WSS and not just Sites list

    2. The second way to deal with this is use Content By Query webpart and point it to the Sites list and use the filter criterion as you want.

    Advantage of the first approach is that probably it is more performant than 2 but the second approach gives you the advantage of using xsl stylesheets to customize the look and feel.
    Other customizations that you can do are:
    1. In the Tabs list if you have multiple tabs with the same name then we will show you only 1 tab pointing to the first page and the second tab will only be used for selection purposes. To give you an example OOB there are 2 entries in the Tabs list with tab name Categories one for category.aspx and the other for categoryresults.aspx. When you are on category.aspx (default home page for Site directory) and you click on a category you will be taken to categoryresults.aspx that show the sites in that category but you will notice that Category tab is still selected and if points to the category.aspx page.
    2. You can also change the ordering of tabs from the Tabs lists view
    3. You can also change the home page of the site directory web like any other web by changing the welcome page from site settings of that web.

    I hope you find at least some of the information useful 🙂

  7. Pascal Says:

    Great article. I do have one question: Somehow I managed to mess up the sitedirectory. The checkbox “list site in site directory” plus the items from the “site creation categories” view don’t appear in the create site wizard anymore.

    I created a new webapplication to understand it better but in this webapplication the “site creation categories” are displayed when i want to create a new site.

    How can I solve this because i don’t want the start over again with a new webappliction.

    Many thanks in advance.

  8. glenc Says:

    Most likely what happened is that the site collection became disconnected from the site directory site. This can happen if you delete the site directory site and create a new one.

    To fix this, go to the administration page for the site collection (_layouts/settings.aspx from the root site) and you should see some links relating to the site directory. In one of these links you should have the ability to specify the URL to the site directory site.

    Hope this helps.

  9. Pascal Says:

    Thanks glenc: U’re right the site directory is not connected to the main site collection, so I tried to connect it again by specifying the relative url. So I entered: /SiteDirectory, but when i click test, then the browser navigates to _layouts/SiteDirectory/ wich results in an error.

    Somehow the _layouts directory is added before the entered relative path. This reminds me of the moment when it all started:

    I wanted to place a list wich resides on the home site. So I connected sharepoint designer to the site dir and added a dataview connected to the list on the mainsite. I think I accidently edited one of the layout pages, wich resulted in this problem.

    I don’t really need the sitedir because I have a list at the toplevel site with calculated urls. But I want to display a lookup column in the site creation wizard where users can lookup the corresponding site id.

    How can I repair the _layout/ page?

  10. David Says:

    Glen, can you add a category which links to a Site Column? When I try to do this, the Category does not appear in the Categories, however when I try to add it using a Choice field, it works.

    I am using a Site column which refers to a Custom list which is made up of a simple list containing a Title only. The Site column then refers to this list.

    Am I being overly complicated? I would like to do this because the Site column is likely to be used in a number of areas, and therefore I would like to avoid having to change a number of areas when the list grows / shrinks.

  11. glenc Says:

    David – if you have tried two different Site Columns where one is a Choice Field and one is a Lookup, and they are both identical except for that difference (both located in the same site for example), and the Choice one works where the Lookup doesn’t, then I’d say it isn’t supported.

    I haven’t done this myself but I know Lookups are handled a little differently under the covers than Choice columns so I could see there being a limitation here.

  12. Fabre Says:

    David,

    I have tried the same thing.
    Once again, within 5 minutes of installing Sharepoint, I find what is clearly a HUGE limitation.
    I totally agree with David here: I want to create a site for each project my company is working on. These projects all are with one of our resellers. It therefore would make sense to be able to have a custom list with our resellers, and use that list as a category for the project sites. But no, Microsoft decided that Choice were OK, but not Lookups…

    Hugely disappointed… again…

  13. Fabre Says:

    I actually found a problem. I followed the instructions above, created a Choice column, added it to both Categories and Site Creation Categories, deleted the Region and Division columns and…
    The “Categories” tab indeed now only shows my new column, but when I try to create a new site, I still have the old Region and Division choices (god knows where MOSS finds the values from), and still not my new column…

    Any idea why that could be?

  14. Jennifer Says:

    I added a new site category called STATUS. The question is how do I modify this value after a site has already been created? I can’t find an option in site settings.

    Also, is the site directory option only available at the top-level site? I want to be able to search for sites based on status but I want to do it from site that isn’t set up as “top level”.

  15. Jake Says:

    Regarding post #3 and your response – i don’t have a ‘sites’ web part. i only have ‘site categories’ so i tried using this. the only way i could make this display ANY sites was to set the URL to /sitesdirectory/. if i tried to point the url to the URL of my view, it would say ‘unable to display web part’. i know the view works because i tested it. could i be using the wrong web part?

    as for the content query web part, it restricts makes me select a specific content type (announcement, link, doc libraries, etc.) what i want is to display the SITES but i don’t see how to do this here either.

    any help you can offer would be very much appreciated! i’ve been banging my head on this for a while now!!!

  16. glenc Says:

    Okay – let’s see if I can answer these 🙂

    Fabre – each site collection has one “known” site directory. From the top level site settings page you should see a link about the Site Directory. In there you’ll find a text box to specify where the site directory is located. Make sure this is pointing to the site you’re customizing and it should pick up your custom categories etc.

    Jennifer – once a site has been created the data lives in a list called “Sites” in the site directory site. You should be able to find your site in that list and modify the data. The site directory can be anywhere in your site hierarchy, but you pretty much need to limit yourself to a single site directory per site collection.

    Jake – if you’re editing a web part page in the Site Directory site, when you go to add a web part, up at the very top you should see one called “Sites”. This is where web parts for lists and document libraries would normally show up. And in fact, this is the list view web part for the Sites list. With this web part you should be able to apply your view.

    Remember – you must do this in the Site Directory site. This will not work from other sites. If you want to display a list of sites from another site you’ve got a couple of options. First you could use the Table of Contents web part and point it at the Site Directory. Or, you could use a combination of the Site Categories and Sites in Category web parts and point those to the site directory.

  17. MJ Says:

    I am not able to change the xslt so that the site owner is listed in site directory. I only see the owner when I open the Sites list. I like users to be able to see a site owner when they click on a Category. Can someone please try adding it and let me know how it is done?

  18. Fabre Says:

    glenc,

    (with regard to your answer in post #16)
    So, if I understand well, there is only one site directory possible for each site collection, fair enough.
    As I understand as well, Sharepoint 2007 by default doesn’t create site collections when you create new sites. Therefore creating a subsite of my main site, with the aim of using it as a site directory and creating sub-subsites inside it, is not the way to go.
    I’ve read somewhere that I can force sharepoint 2007 to create site collections every time I create a new site, but that’s not really what I want either.
    Do you have any idea how I could go about doing it?

    (Just in case I’ve not explained myself clearly, the aim is to have one site collection for my company, with a lot of sites inside it for staff. In there would also be a link to a (site? site collection?) called “Projects”, under which a lot of subsites would be created, one for each of our projects, categorised according to a “project type” and “client”. When you are at the “Project” level, I need a specific site directory for all these projects that allows my staff to quickly find projects according to “type” and “client”)

    Thanks

  19. glenc Says:

    Fabre – yes what you describe is possible. What you want to do is turn on Self Service Site Creation Mode (I’m prettu sure it’s still called that). You can do this from the central admin I believe. What this will do is allow you to specify that when new users create sites from the site directory they will create a new site collection for each new site. This is very similar to how the My Sites work where each My Site is it’s own site collection.

  20. Judy Says:

    Thanks! I could not find my way into this stuff, though I knew it must be there. Microsoft help wasn’t…


  21. Thanks for this article! A couple questions…

    1. Is it possible to hide and/or preset other options on the New Sharepoint Site page? Say I want to by default set Permissions to “Use Unique Permissions” and not let the user change it.

    2. What’s the advantage of creating a site collection

    3. Is it possible to automatically assign values from the user’s AD info into columns? I’d like to be able to pull things like Company, Country, Manager, etc. and associate it with the site and display in the Site Directory.

    4. Can these be routed into a workflow, requiring approval before creation?


  22. […] Click here to read Configuring the Sites Directory taxonomy in SharePoint Server 2007. UPDATE: There’s a better version of this article at Customizing the Site Directory in MOSS 2007 […]

  23. A Goodwin Says:

    Hi Glen, nice post – but could you edit your main post and add in a summary of the thread points 13, 16 & 18, 19 with Fabre regarding the site collections & visibilty of the Site Categories. It may make this problem a bit clearer – I still can’t get rid of the damn defaults & display my custom ones !!

  24. Ben Steinwand Says:

    Following these instructions does not change the Regions or Divisions displayed while creating a site. I even deleted the Regions column from the sites list and STILL the regions show up when creating a site.

  25. Lilith Says:

    Excellent post. Only one problem I have is the inability to remove a site from a category that should have ended up there.

    Default listings:
    Divsion
    >Information Technology
    Finanicail services (can not remove)

    any thoughts/ideas?

    Thanks!

  26. Tim Says:

    Ok, what if none of your site collections have a site directory (or none that I can find). When I go to the site collection main page, then site settings, there is no site directory link.

    Any ideas?

  27. Colleen Says:

    Thanks for the instructions – I couldn’t find anything else re configuring the site directory and I really struggled with this feature. I have a quick question (hopefully) for you. On our site directory page, if you click on one of the items below a category it takes you to a list of options within the category, which is perfect. But it lists both the title and the URL. Clicking on either will take you to the page you want. It looks cluttered so I am wondering if there’s a way to eliminate the URL and just display the title? Thanks!

  28. glen Says:

    There’s probably a way to do that with a custom web part or a DataView web part but I don’t think that’s an option out of the box. I could be wrong, but I’d try looking at the page with SharePoint Designer if I were you.

  29. Ricardo Garrido Says:

    Hi Glen, thank’s for the information, that excelent, but i have other question. My problem is this:

    Let’s suppose that I have a site in the category that you mencioned in your example, Site Type in Initiative, well when i click on the “Initiative” the next windows display the sites that contained, ok but that view i want to change the format, i want to add fields. By default only display the title and the url, and i need display more fields, do you how?

    Thank’s !

  30. Greg Turnbull Says:

    I like the article but however I have a problem with users seeing the new sites I have created.

    If I create a site and list it under the new category I have created, the owner can see it, but when i log in with user with standard viewer permissions I can no longer see the site I created under the new category, only the category itself.

    Im sure I am missing something obvious but cant work it out.

    Any ideas

    Cheers

  31. Amy Says:

    Great piece of information, thank you it has helped a lot. I have a some questions if you don’t mind…

    1) I would like to force the user to always enter the information (divisions, etc) when they create a site. At the moment, I see two problems. The first is that you have to tick the checkbox labelled ‘List this new site in the site directory’ to have a record created in the sites list. The second is none of those fields are mandatory, even if I mark them as so from the list settings. This is only enforced when editing a list record later. Any way to sort these two problems out?

    2) If I add a field to the list to capture a user or group, this information will appear when creating the site, but it will not show the helper buttons to look up/search for a user name and validate it. Again, this only appears when editing the site record in the list later.

    3) When creating new fields / columns, they appear on this site creation page in the order they were created, and seem to ignore the order I set them up as in the list. Is there somewhere (XML?) I can change the order?

  32. glen Says:

    Greg – the most likely cause is that the second user you are testing with doesn’t have access to the new site. Make sure that the second user has at least reader access and the site should show up in the site directory.

    Amy – you can force sites to be listed in the site directory from the root site’s site settings page. If you go to the root site, go to site settings, you should see a “Site Directory Settings” link in the far-right column.

    I don’t have any answers to questions 2 and 3. You may be able to fix both of those issues by modifying the page for creating new sub webs, but I wouldn’t recommend it.

  33. Greg Turnbull Says:

    Glen – Thanks for replying.

    Ive already tried giving the user read permission to the site (I even gave the test user owner rights to the sight, but no luck), and so far I have been unable to get it to work. I am almost ready to give up on categories and just use tops sites because all users seems to be able to see any site in the topsites category. Any other ideas would be greatly appreciated. Could it be a some sort of profile issue (not that Im using my sites yet)

    Cheers
    GregT

  34. Greg Turnbull Says:

    Dont worry I figured it out. The sites were pending approval. Once I approved them they were fine.

    Cheers GregT

  35. paisleygo Says:

    The custom projectdashboard page I created – that my tab points to – doesn’t have the tabs on it. So whn you get there you have no way to get to the next tab

    Is there a way to add the tabs to the “projectdashboard.aspx” page

    can I edit this one in spd?

  36. Sham Says:

    Help! Is there any way of undoing a site content type that I created. It did something unexpected and changed colmns that i dod not expect it to change

  37. Ross Says:

    Glenn,
    I was wondering if you knew another way besides adding the sites into the site list to add categories to them?

  38. Dave Says:

    Glen,
    I’m trying to create a new tab and I followed your instructions but when I get to the page where you choose (Welcome Page)Site Directory Home… that option does not exist for me. So I am unable to create the tab the way it looks in figure 5. Do you know why that option is not available?


  39. Excellent weblog right here! Also your site loads up very fast!

    What web host are you the use of? Can I am getting your affiliate link in your host?
    I desire my site loaded up as fast as yours lol


Leave a reply to glen Cancel reply