SharePoint: TOC Web Part: Slightly different
The Table of Contents web part has been part of SharePoint's make-up for a while now. It is a useful function, normally used to display a sitemap or to provide navigation for a sub site. "The Table of Contents Web Part has three main sections in the configuration pane:"
- Content: This is where you configure what part of "site hierarchy the Web Part displays. Enter the path to the page where you want to Table of Contents to begin in the Start From field. You can choose how many levels to display in the Table of Contents by using the Levels to Show drop-down list.
- Presentation: This section controls how the items display. You can choose to display everything in a single column or multiple columns and select how the header is styled by selecting an option from the Header Style drop-down list.
- Organization: Decide how you want the items sorted by selecting either the Sort Contents as They Are Sorted in Navigation or the Sort Contents Using the Following Settings radio button. If you choose the latter option, select applicable options from the Sort Sites By, Sort Pages By, and Sort Direction drop-down lists." [www.dummies.com]
For the most part, this functionality has remained exactly the same throughout the versions. However looking at the configuration options in SharePoint 2013 reveals one slight omission: the Display Columns setting. This setting allowed you to specify the number of columns that the content was displayed in. However, in SharePoint 2013 / SharePoint online, the default column number is one. What this can potentially result in is a web part that displays its content in a very elongated, vertical manner. To get around this, you can use the linked PowerShell Script to set the display column count. Please note that 7 is the maximum column count that you can use. The variables that you will need to amend are:
- $web: Set this to the site level with the Table of Contents Web Part
- $pages: Set the page name here that has the Table of Contents Web Part
Script
$web = get-spweb http://sp/sites/retu
$webpub = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)
$pages = $webpub.GetPublishingPages()
$pages | select url
$webpub
$page = $pages | ?{$_.url -like "*p2.aspx*"}
$page.url
$page.checkout()
$manager = $web.GetLimitedWebPartManager($page.Url,[System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
#$manager.WebParts.Count
$webpart = $manager.WebParts | ?{$_.title -eq "table of contents"}
$webpart.DisplayColumns
# set the number of columns you want to display
$webpart.displaycolumns = 7
$page.update()
$page.checkin("Checked in through PS")
Download
Please note that the page itself must be checked in and published. The script can be downloaded from the TechNet Gallery here.