Thèmes de site SharePoint : développement CSOM

Le modèle CSOM (Client-side Server Object Model) permet d’accéder au modèle d’objet SharePoint à partir d’un code exécuté localement ou sur un serveur autre que SharePoint.

Conditions préalables

Avant de commencer, assurez-vous que vous connaissez les éléments suivants :

Vous devez également référencer le package NuGet Microsoft.SharePointOnline.CSOM (version 16.0.27011.12008 ou ultérieure).

Exemple de code CSOM

L’exemple suivant montre comment créer un objet Microsoft.Online.SharePoint.TenantAdministration.Tenant et appeler la méthode GetAllGlobalThemes pour renvoyer une liste de thèmes.

Remarque

  • L’URL utilisée pour créer l’objet de contexte inclut le suffixe - admin, car les méthodes TenantAdministration fonctionnent avec le site administrateur.
  • Créez une instance Client avec le Constructeur de clients, puis appelez les méthodes sur cette instance.
  • Vous pouvez utiliser la même approche pour appeler d’autres méthodes de gestion de thème.
using System.Security;
using Microsoft.SharePoint.Client;
using Microsoft.Online.SharePoint.TenantAdministration;
using Microsoft.Online.SharePoint.TenantManagement;

...

ClientContext ctx = new ClientContext("https://mysite-admin.sharepoint.com/");
var pwd = "mypassword";
var passWord = new SecureString();
foreach (char c in pwd.ToCharArray()) passWord.AppendChar(c);
ctx.Credentials = new SharePointOnlineCredentials("admin@mydomain.com", passWord);
Tenant tenant = new Tenant(ctx);
ClientObjectList<ThemeProperties> themes = tenant.GetAllGlobalThemes();

Exemple de définition de thème

Pour les méthodes demandant un argument de thème, le code suivant définit une classe SPOTheme que vous pouvez utiliser pour créer des thèmes personnalisés. Pour le nouveau format de thème, seules les Name propriétés et ColorPairs sont requises. Pour le format de thème hérité, les Namepropriétés , Paletteet IsInverted sont requises.

/// <summary> 
/// Properties defining a theme in SharePoint Online. 
/// </summary> 
public class SPOTheme 
{ 
    /// <summary> 
    /// Specifies the name of the theme. This must uniquely identify the theme. 
    /// </summary> 
    public string Name 
    { 
        get; private set; 
    } 
    /// <summary> 
    /// Specifies the palette of colors in the theme, as a dictionary of theme slot values. 
    /// </summary> 
    public IDictionary<String, String> Palette 
    { 
        get; private set; 
    } 
    /// <summary> 
    /// Specifies the color pairs setting of the theme.
    /// </summary> 
    public IDictionary<string, IList<Dictionary<string, string>>> ColorPairs
    { 
        get; private set; 
    } 
    /// <summary> 
    /// Specifies whether the theme is inverted, with a dark background and a light foreground. 
    /// </summary> 
    public bool IsInverted 
    { 
        get; private set; 
    } 
} 

Application d’un thème

Il n’existe actuellement aucune API CSOM prise en charge pour appliquer automatiquement un thème à un site spécifique. Pour plus d’informations sur l’application de thèmes personnalisés à des collections de sites individuelles, consultez Présentation des conceptions de site et des scripts de site SharePoint.

Méthodes et propriétés de la classe Microsoft.Online.SharePoint.TenantAdministration.Tenant

Utilisez les méthodes suivantes pour personnaliser le jeu de thèmes disponibles pour un site d’administration de client SharePoint. Vous pouvez ajouter un nouveau thème personnalisé, mettre à jour un thème existant ou supprimer un thème. Vous pouvez également récupérer un thème spécifique ou tous les thèmes. Vous pouvez aussi masquer ou restaurer des thèmes par défaut fournis avec SharePoint.

Méthode publique AddTenantThemeAdvanced

Ajoutez un thème au organization.

Dans les environnements multigéographiques, les thèmes ajoutés par un administrateur dans la zone géographique principale sont automatiquement propagés et disponibles dans l’ensemble des organization. Cette méthode n’est pas prise en charge pour les administrateurs dans les zones géographiques satellites.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : string name, string themeJson, bool shouldParseColorPair
Type de retour : ClientResult<bool>

Méthode publique UpdateTenantThemeAdvanced

Mettre à jour les paramètres d’un thème existant.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : string name, string themeJson, bool shouldParseColorPair
Type de retour : ClientResult<bool>

Méthode publique AddTenantTheme

Ajoutez un thème au organization. Cette méthode n’est pas prise en charge pour les administrateurs dans les zones géographiques satellites.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : nom de la chaîne, thème JSON de la chaîne
Type de retour : ClientResult<bool>

Méthode publique UpdateTenantTheme

Mettre à jour les paramètres d’un thème existant.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : nom de la chaîne, thème JSON de la chaîne
Type de retour : ClientResult<bool>

Méthode publique DeleteTenantTheme

Supprimer un thème du client.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : nom de la chaîne
Type de valeur renvoyée : void

Méthode publique GetAllGlobalThemes

Récupérez l’ensemble complet des thèmes personnalisés définis au niveau du locataire, y compris les thèmes créés via des outils basés sur des commandes et ceux créés dans l’interface utilisateur du Brand Center.

Remarque

Pour prendre en charge une personnalisation cohérente et simplifier la gouvernance, la gestion des thèmes passe à un modèle centralisé.

  • La zone géographique principale sert d’emplacement central pour la création et la gestion du thème à l’échelle de organization. Les thèmes créés ici seront visibles et applicables dans les zones géographiques satellites.
  • Les administrateurs géo satellites pourront afficher les thèmes de la zone géographique principale vers leurs propres sites à l’aide GetAllGlobalThemes de la méthode . Les thèmes précédemment créés dans les zones géographiques satellites restent disponibles. Toutefois, la création de nouveaux thèmes dans les zones géographiques satellites ne sera plus prise en charge à l’avenir.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : aucun
Type de retour : ClientObjectList<ThemeProperties>

Méthode publique GetAllTenantThemes

Récupérez tous les thèmes personnalisés créés sur le locataire actuel à l’aide d’outils basés sur des commandes.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : aucun
Type de retour : ClientObjectList<ThemeProperties>

Méthode publique GetGlobalTheme

Récupérez un thème par nom, y compris les thèmes créés par le biais d’outils basés sur des commandes et ceux créés dans l’interface utilisateur de Brand Center.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : nom de la chaîne
Type de valeur renvoyée : ThemeProperties

Méthode publique GetTenantTheme

Récupérer un thème par nom.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Paramètres : nom de la chaîne
Type de valeur renvoyée : ThemeProperties

Propriété publique HideDefaultThemes

Cette propriété indique si les thèmes par défaut sont disponibles dans l’IU du sélecteur de thème. Le paramètre par défaut a la valeur false (les thèmes par défaut sont disponibles), mais vous pouvez définir cette propriété sur true après avoir défini des thèmes personnalisés afin de restreindre le choix à certains thèmes spécifiques.

Espace de noms : Microsoft.Online.SharePoint.TenantAdministration.Tenant
Type : booléen

Voir aussi