Partager via


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)

Création de fichiers de ressources