Temas de site do SharePoint: desenvolvimento de CSOM
O CSOM (modelo de objeto do lado do cliente) do SharePoint fornece acesso ao modelo de objeto do SharePoint por meio do código que está sendo executado localmente ou em um servidor diferente do SharePoint.
Antes de começar, verifique se está familiarizado com o seguinte:
- Usando o Modelo de Objeto de Cliente
- Tarefas de Programação Comuns no Modelo de Objeto de Cliente Gerenciado
Você também precisa fazer referência ao pacote NuGet Microsoft.SharePointOnline.CSOM (versão 16.1.6906.1200 ou posterior).
O exemplo a seguir mostra como criar um objeto Microsoft.Online.SharePoint.TenantAdministration.Tenant e chamar o método GetAllTenantThemes para retornar uma lista de temas.
Observação
- A URL usada para criar o objeto de contexto inclui o sufixo -admin, pois os métodos TenantAdministration funcionam com o site de administração.
- Crie uma instância de Tenant com o Construtor de locatário e chame os métodos nessa instância.
- Você pode usar a mesma abordagem para chamar outros métodos de gerenciamento de temas.
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.GetAllTenantThemes();
Para os métodos que usam um argumento de tema, o código a seguir define uma classe SPOTheme que você pode usar para criar temas personalizados.
/// <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 whether the theme is inverted, with a dark background and a light foreground.
/// </summary>
public bool IsInverted
{
get; private set;
}
}
Atualmente, não existe uma CSOM API com suporte que aplique de forma programática um tema a um site específico. Para obter informações sobre como aplicar temas personalizados a conjuntos de sites individuais, confira Visão geral sobre design e script de sites do SharePoint
Use os métodos a seguir para personalizar o conjunto de temas disponíveis para um site de administração do locatário do SharePoint. Você pode adicionar um novo tema personalizado, atualizar um tema existente ou excluir um tema e pode recuperar um tema específico ou todos os temas. Você também pode ocultar ou restaurar os temas padrão que vêm com o SharePoint.
Adicione um tema ao locatário.
Namespace: Microsoft.Online.SharePoint.TenantAdministration.Tenant
Parâmetros: nome da cadeia de caracteres, cadeia de caracteres themeJson
Tipo de retorno: ClientResult<bool>
Exclua um tema do locatário.
Namespace: Microsoft.Online.SharePoint.TenantAdministration.Tenant
Parâmetros: nome da cadeia de caracteres
Tipo de retorno: nulo
Recupere todos os temas atualmente disponíveis no locatário, incluindo os temas personalizados que foram adicionados. Temas padrão serão incluídos apenas se a propriedade HideDefaultThemes for false (o valor padrão).
Namespace: Microsoft.Online.SharePoint.TenantAdministration.Tenant
Parâmetros: nenhum
Tipo de retorno: ClientObjectList<ThemeProperties>
Recupere um tema por nome.
Namespace: Microsoft.Online.SharePoint.TenantAdministration.Tenant
Parâmetros: nome da cadeia de caracteres
Tipo de retorno: ThemeProperties
Essa propriedade indica se os temas padrão estão disponíveis na interface do usuário do seletor de temas. A configuração padrão é false (os temas padrão estão disponíveis), mas convém definir essa propriedade como true após definir temas personalizados, para permitir que apenas temas específicos sejam usados.
Namespace: Microsoft.Online.SharePoint.TenantAdministration.Tenant
Tipo: booliano
Atualize as configurações para um tema existente.
Namespace: Microsoft.Online.SharePoint.TenantAdministration.Tenant
Parâmetros: nome da cadeia de caracteres, cadeia de caracteres themeJson
Tipo de retorno: ClientResult<bool>
Essas são APIs alternativas para gerenciar os temas no nível de locatário.
Adicione um tema ao locatário.
Namespace: Microsoft.Online.SharePoint.TenantManagement.Tenant
Parâmetros: nome da cadeia de caracteres, cadeia de caracteres themeJson
Tipo de retorno: ClientResult<bool>
Recupere todos os temas atualmente disponíveis no locatário, incluindo os temas personalizados que foram adicionados. Temas padrão serão incluídos apenas se a propriedade HideDefaultThemes for false (o valor padrão).
Namespace: Microsoft.Online.SharePoint.TenantManagement.Tenant
Parâmetros: nenhum
Tipo de retorno: ClientObjectList<ThemeProperties>
Leia a configuração atual para ocultar os temas padrão na interface do usuário do seletor de temas.
Namespace: Microsoft.Online.SharePoint.TenantManagement.Tenant
Parâmetros: nenhum
Tipo de retorno: ClientResult<bool>
Recupere um tema por nome.
Namespace: Microsoft.Online.SharePoint.TenantManagement.Tenant
Parâmetros: nome da cadeia de caracteres
Tipo de retorno: ThemeProperties
Especifique se deseja ocultar temas padrão na interface do usuário do seletor de temas.
Namespace: Microsoft.Online.SharePoint.TenantManagement.Tenant
Parâmetros: booliano
Tipo de retorno: nulo
Atualize as configurações para um tema existente.
Namespace: Microsoft.Online.SharePoint.TenantManagement.Tenant
Parâmetros: nome da cadeia de caracteres, cadeia de caracteres themeJson
Tipo de retorno: ClientResult<bool>