Question

$session = Get-SPTaxonomySession -Site $sitename
$termStore = $session.TermStores[“Managed Metadata Application”]
$group = $termstore.CreateGroup(“My New Group”)
$group.Description = "My Term Group"
$termStore.CommitAll()
$termSet = $group.CreateTermSet(“My TermSet”,1033)
$termSet.Description = “My TermSet”
$termSet.IsAvailableForTagging = $true
$termSet.IsOpenForTermCreation = $true
$termStore.CommitAll()

Here like $termSet.IsAvailableForTagging I want to enable "Use this Term Set for Site Navigation" using powershell.

Thanks in advance

Was it helpful?

Solution

Finally I achieved it with following code.

 $navigationSet = $group.CreateTermSet($termsetName)
 $navigationSet.SetCustomProperty("_Sys_Nav_IsNavigationTermSet", "True")
 $navigationSet.SetCustomProperty("_Sys_Nav_AttachedWeb_SiteId", $site.ID.ToString())
 $navigationSet.SetCustomProperty("_Sys_Nav_AttachedWeb_WebId", $site.RootWeb.ID.ToString())    
 $navigationSet.SetCustomProperty("_Sys_Nav_AttachedWeb_OriginalUrl", $site.RootWeb.Url )

OTHER TIPS

You do this in powershell by converting the TermSet to a NavigationTermSet

$site = Get-SPSite -Identity $sitename 
$navTermSet = [Microsoft.SharePoint.Publishing.Navigation.NavigationTermSet]::GetAsResolvedByWeb($termSet, $site.RootWeb, "GlobalNavigationTaxonomyProvider");

Now you have access to the navigation term set object in powershell and can use it like in oldbam's answer

This code should help you:

     // Obtain navigation term set
     NavigationTermSet navigationTermSet = NavigationTermSet.GetAsResolvedByWeb(termSet, web, "GlobalNavigationTaxonomyProvider");
     // Specify that this term set can be used for site navigation
     navigationTermSet.IsNavigationTermSet = true;
     // specify target page for all terms in this term set 
     navigationTermSet.TargetUrlForChildTerms.Value = "~site/Pages/Topics/Topic.aspx";
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top