Procédure : créer un nouveau type d’activité
Dernière modification : mardi 30 mars 2010
S’applique à : SharePoint Server 2010
Microsoft SharePoint Server 2010 vous permet d’étendre la page Mon échange de News sur l’hôte du site Mon site en créant de nouveaux types d’activités à partir desquelles vous pouvez créer et insérer des événements dans les échanges de News de l’utilisateur. L’exemple de méthode ci-dessous montre comment créer un nouvel objet ActivityType et l’associer à un objet ActivityTemplate puis (via ce modèle ActivityTemplate) l’associer au fichier de ressources qui définit comment l’événement est affiché dans les échanges de News. Pour obtenir des exemples de code qui montrent comment effectuer des tâches qui sont incluses dans cette rubrique, voir Exemple de code : application console de multidiffusion d’événements d’activité et Exemple de code : événement d’activité Envoyer un lien à vos collègues. Cette rubrique suppose que vous avez créé et déployé un fichier de ressources (.resx) dans le répertoire \Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Resources et que vous avez ajouté les références suivantes à votre projet Microsoft Visual Studio 2010 :
Microsoft.SharePoint
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
System.Web
Création d’un nouveau type d’activité
Chaque objet ActivityType contient une propriété ActivityTemplates. Cette propriété contient une collection d’objets ActivityTemplate. La classe ActivityTemplate contient des propriétés qui le connectent pour afficher les modèles (définis dans les fichiers de ressources) que vous devez créer et déployer avec toutes les applications personnalisées qui vous créez pour la génération et la collecte des événements d’activité dans un flux d’activités. Pour des instructions sur la création d’un fichier de ressources, voir Création de fichiers de ressources. Étant donné que vous créez un type ActivityType spécifique une seule fois, votre solution doit vérifier qu’elle ne crée pas de doublons. L’exemple de méthode suivant montre comment créer un nouvel objet ActivityType et comment définir son affichage.
private void SetupCustomActivity(SPSite site)
{
string resFile = "name of your resource (.resx) file";
//Get an SPServiceContext from the site.
SPServiceContext context = SPServiceContext.GetContext(site);
//Create a UserProfileManager.
UserProfileManager upm = new UserProfileManager(context);
//Get the current user's profile.
UserProfile p = upm.GetUserProfile(true);
//Create an activity manager.
ActivityManager am = new ActivityManager(p, context);
//Make sure that the current user has permission to do this
bool hasrights = am.PrepareToAllowSchemaChanges();
// Create an activity application.
ActivityApplication app = am.ActivityApplications["Name of Activity Application"];
if (app == null)
{
app = am.ActivityApplications.Create("Name of Activity Application");
app.Commit();
}
//Create an ActivityType; check to see whether it already exists.
ActivityType activityType = app.ActivityTypes["Name of Activity Type"];
if (activityType == null)
{
activityType = app.ActivityTypes.Create("Name of Activity Type");
//Associate the ActivityType with the resource file that you have deployed and with the
//localized string name stored in the resource file.
activityType.ActivityTypeNameLocStringResourceFile = resFile;
activityType.ActivityTypeNameLocStringName = "Activity Type Localized String Name";
activityType.IsPublished = true;
activityType.IsConsolidated = true;
activityType.Commit();
}
//Create a single value ActivityTemplate; check to see whether it already exists.
ActivityTemplate urlTemplateSV = activityType.ActivityTemplates[ActivityTemplatesCollection.CreateKey(false)];
if (urlTemplateSV == null)
{
urlTemplateSV = activityType.ActivityTemplates.Create(false);
//Associate the template with the resource file that you have deployed and with the
//localized string name stored in the resource file.
urlTemplateSV.TitleFormatLocStringResourceFile = resFile;
urlTemplateSV.TitleFormatLocStringName = "Activity Template Localized String Name ";
urlTemplateSV.Commit();
}
}
Voir aussi
Référence
Microsoft.Office.Server.ActivityFeed
Concepts
Procédure : obtenir des événements pour des utilisateurs
Procédure : créer et insérer des événements sur un échange de News d’utilisateur
Autres ressources
Microsoft SharePoint Server 2010 : Activity Feeds Console Application (éventuellement en anglais)