Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как использовать код, чтобы закрепить термины в наборах терминов навигации.
В разделе Создание таксономии фиксации это возможность подключать терминов в целевой. В SharePoint введено закрепление терминов. Закрепленный термин похож на термин, который используется повторно, за исключением того, что он доступен только для чтения и не может быть изменен в расположении, где используется термин.
В управляемой навигации SharePoint API позволяет закреплять новые или существующие термины в объекте NavigationTermSet . В Microsoft SharePoint Server 2010 пользователи могли бы повторно использовать условия (и всех вложенных в повторно используемую условия) в другие расположения в иерархии терминов. После того как эти термины, которые использовались повторно, может быть изменено в любом месте и изменения будут видны везде термины, которые использовались повторно.
Закрепленным essentials терминов
Чтобы понять закрепление в SharePoint, вы можете узнать об управляемых метаданных, терминах, наборах терминов, управляемой навигации, хранилище терминов и других связанных понятиях и API. В таблице 1 описаны статьи, в которых представлены дополнительные сведения о фиксации.
Таблица 1. Основные понятия при закреплении
| Название статьи | Описание |
|---|---|
|
Краткое введение в компоненты Enterprise Metadata Management для разработчиков Microsoft SharePoint Server 2010 |
Эта статья, написанная для SharePoint Server 2010, содержит базовый обзор модели программирования метаданных, управляемой предприятием, и основных понятий, таких как термины и наборы терминов. |
|
Управляемая навигация в SharePoint |
Общие сведения о функции управляемой навигации на основе таксономии в SharePoint. |
Использовать код для выполнения задач, закрепленным
Вы можете использовать пользовательский код с сервера .NET, клиента .NET (CSOM) и моделей программирования JavaScript для завершения операций закрепления терминов и наборов терминов. Следующие примеры кода сервера .NET включают тест для закрепления терминов в наборах терминов навигации и метод, который можно использовать для проверки того, закреплен ли Term объект к указанному TermSet объекту. Затем тест создает Term объекты и закрепляет 1 из них к указанному NavigationTermSet объекту.
Закрепление терминов для навигации по наборам терминов
Следующий пример проверяет закрепленным терминов в наборах терминов навигации. В нем используется объект NavigationTermSet , который содержит методы и свойства, удобные в сценариях управляемой навигации, таких как создание меню навигации сайта на основе таксономии.
Сначала в примере проверяется,
NavigationTermSetсуществует ли объект. Если он не существует, код создаетNavigationTermSet. (Если он уже существует, код удаляет старый перед созданием новой). Затем, когда код создает некоторыеTermобъекты для выбора, он создает файл страницы публикации (.aspx) для демонстрационных целей, задает его в качестве настраиваемой целевой страницы для закрепленных терминов, а затем закрепляет некоторые свойства навигации на странице.
public void TermPinningTest()
{
using (SPSite site = new SPSite(TestConfig.ServerUrl))
{
using (SPWeb web = site.OpenWeb())
{
TaxonomySession taxonomySession = new TaxonomySession(site, updateCache: true);
// Create the navigation term set.
NavigationTermSet menuNavTermSet = DemoUtilities.SetUpSampleNavTermSet(
this.TestContext, taxonomySession, web);
TermSet menuTaxTermSet = menuNavTermSet.GetTaxonomyTermSet();
TermStore termStore = menuTaxTermSet.TermStore;
Group group = menuTaxTermSet.Group;
// Does the tagging Taxonomy term set already exist?
TermSet taggingTaxTermSet = group.TermSets.FirstOrDefault(
ts => ts.Id == TestConfig.TaggingTermSetId);
if (taggingTaxTermSet != null)
{
Log("Deleting old tagging term set");
// If the tagging Taxonomy term set already exists, delete the old one.
taggingTaxTermSet.Delete();
termStore.CommitAll();
}
Log("Creating the tagging term set");
taggingTaxTermSet = group.CreateTermSet("Demo Tagging TermSet", TestConfig.TaggingTermSetId);
int lcid = termStore.WorkingLanguage;
// Create some terms.
Term taggingProductsTaxTerm = taggingTaxTermSet.CreateTerm("Products", lcid);
taggingProductsTaxTerm.CreateTerm("Electronics", lcid);
taggingProductsTaxTerm.CreateTerm("Footwear", lcid);
taggingProductsTaxTerm.CreateTerm("Sports", lcid);
termStore.CommitAll();
// Pinning the products subtree. Pins the "Products" Term object to the NavigationTermSet object.
Term menuProductsTaxTerm = menuTaxTermSet.ReuseTermWithPinning(taggingProductsTaxTerm);
termStore.CommitAll();
// Creating the publishing page template DemoTargetPage.aspx
PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
SPListItem pageListItem = null;
PublishingPage publishingPage;
try
{
pageListItem = web.GetListItem(web.Url + "/Pages/DemoTargetPage.aspx");
publishingPage = PublishingPage.GetPublishingPage(pageListItem);
}
catch (FileNotFoundException)
{
Log("Creating new target page");
publishingPage = publishingWeb.AddPublishingPage("DemoTargetPage.aspx", publishingWeb.DefaultPageLayout);
Log("Checking in target page draft");
publishingPage.CheckIn("TermPinningTest");
}
// Set a custom target page for the pinned terms and then set some navigation properties.
// Normally the navigation objects are obtained by way of an optimized function such as
// TaxonomyNavigation.GetTermSetForWeb() or TaxonomyNavigationContext.Current.NavigationTerm.
// The function guarantees that URLs will be resolved using a valid NavigationTerm.View.
// But because we are populating totally new data, the cache will probably not be updated
// yet, so instead we manually construct a view using GetAsResolvedByWeb().
NavigationTerm menuProductsNavTerm = NavigationTerm.GetAsResolvedByWeb(menuProductsTaxTerm,
web, StandardNavigationProviderNames.GlobalNavigationTaxonomyProvider);
menuProductsNavTerm.TargetUrl.Value = publishingPage.Uri.AbsolutePath;
menuProductsNavTerm.TargetUrlForChildTerms.Value = publishingPage.Uri.AbsolutePath;
termStore.CommitAll();
Log("TermPinningTest completed successfully");
}
}
}