Procédure : Personnaliser la syndication de type de contenu
Dernière modification : mercredi 21 avril 2010
S’applique à : SharePoint Server 2010
La syndication de type de contenu aide à garantir l’uniformité parmi les listes, de sorte qu’elles utilisent les mêmes types de contenu et par conséquent les mêmes colonnes. Dans Microsoft Office SharePoint Server 2007, un type de contenu est défini au niveau de la collection de sites. Grâce à l’utilisation de la syndication de type de contenu dans Microsoft SharePoint Server 2010, un type de contenu peut être partagé dans la batterie ou en dehors de la batterie avec l’application de service de métadonnées gérées.
Vous pouvez utiliser le modèle objet pour personnaliser la syndication de type de contenu afin de créer un type de contenu, de le publier et d’annuler sa publication. L’exemple de code suivant introduit la classe ContentTypePublisher. Une fois qu’une application de service de métadonnées gérées et son proxy ont été mis en service et qu’un site a été désigné comme concentrateur sur l’application de service, utilisez cette classe pour publier ou annuler la publication des types de contenu sur le site concentrateur. Vous pouvez également utiliser cette classe pour vérifier si un type de contenu sur ce site concentrateur est publié et si la fonctionnalité Concentrateur de métadonnées est activée sur le concentrateur.
Dans de nombreux scénarios, un concentrateur assume le rôle de serveur de publication et les applications Web ou collections de sites s’abonnent au contenu publié par le concentrateur. Lorsqu’un type de contenu est publié, les abonnés extrait les types de contenu par le biais d’un travail du minuteur. Les utilisateurs naviguent jusqu’à la page Administration centrale, où ils peuvent sélectionner une application Web ou un concentrateur. Les applications Web peuvent également s’abonner au concentrateur sélectionné en guise de fournisseur pour les données d’applications partagées, y compris les types de contenu.
Exemple
using System;
using System.IO;
using System.Globalization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Taxonomy;
using Microsoft.SharePoint.Taxonomy.ContentTypeSync;
namespace Microsoft.SDK.SharePointServer.Samples
{
public static class ContentTypeSyndicationSamples
{
/// Demostrates how to use the ContentTypePublisher class by creating a
/// content type and then publishing it and unpublishing it.
/// Before this method is called, a Managed Metadata service application
/// should be created and a hub should be designated on the service application.
/// <param name="hubSite">
/// The site that is designated as the hub.
/// </param>
public static void UseContentTypePublisher(SPSite hubSite)
{
// Get the root Web of the site.
SPWeb rootWeb = hubSite.RootWeb;
// Create a new content type based on the Document content type.
SPContentType docCt = rootWeb.ContentTypes["Document"];
Random random = new Random();
string newCTName = "Test content type " + random.Next().ToString();
SPContentType newCt = new SPContentType(docCt,
rootWeb.ContentTypes,
newCTName);
rootWeb.ContentTypes.Add(newCt);
Console.WriteLine(newCTName + " has been created.");
// Check to see whether the site is a valid hub site.
if (ContentTypePublisher.IsContentTypeSharingEnabled(hubSite))
{
ContentTypePublisher publisher = new ContentTypePublisher(hubSite);
Console.WriteLine("Publishing the content type. ");
publisher.Publish(newCt);
// Check to see whether this content type has been published.
if (publisher.IsPublished(newCt))
{
Console.WriteLine(newCTName + " is a published content type.");
}
Console.WriteLine("Unpublishing the content type. ");
publisher.Unpublish(newCt);
// Check whether this content type is still published
if (!publisher.IsPublished(newCt))
{
Console.WriteLine(newCTName + " is not a published content type.");
}
}
else
{
// The provided site is not a valid hub site.
Console.WriteLine("This site is not a valid hub site");
}
}
}
}