Como criar e activar um theme em SharePoint 2010

Usar themes por si só é uma forma muito simplistica de tornar o site mais personalizado. Apenas algumas cores serão usadas, mas o estilo geral continuará o mesmo. No entanto, se usar um theme em conjugação com uma solução customizada de branding, poupará tempo e esforço e o aspecto do seu site ficará mais aperfeiçoado.

Porquê usar themes?

Usar themes permite-lhe mudar o estilo de vários elementos, que normalmente seriam difíceis de personalizar (como o estilo hover e activo das linhas de uma lista) ou nem sequer se preocuparia em mudá-los (como os menus de contexto). Alterar estes elementos para usarem as mesmas cores do que o resto do design irá criar uma aparência mais polida.

Pode ver que elementos são alterados pelos themes neste post.

Como criar um theme

Siga estes passos:

  1. Abra o Microsoft PowerPoint 2010.
  2. Na tab Design, clique em Colors. No menu que aparece clique em “Create New Theme Colors…”.
  3. Usando as cores do seu design, escolha as tonalidades que se adequem aos valores default (use um tom escuro quando o default for escuro e um tom claro quando o default for claro).
  4. Dê-lhe um nome e guarde-o. Clique em “Save Current Theme” e escolha onde o guardar.

Como activar um theme programaticamente

No Visual Studio 2010 pode criar uma solução para fazer o deploy de um theme e uma feature para o activar automaticamente.

Num projecto SharePoint, crie um novo elemento Module para guardar o ficheiro theme. Adicione o ficheiro ao Module.

Altere o ficheiro Elements.xml para que o theme seja depositado na biblioteca correcta:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <Module Name="Themes" Url="_catalogs/theme" RootWebOnly="true">
      <File Path="Themes\MyTheme.thmx" Url="MyTheme.thmx" Type="GhostableInLibrary"  />
    </Module>
</Elements>

Agora a solução WSP irá inserir o theme na biblioteca de Themes.

Se quiser activar/desactivar automaticamente o seu theme usando uma feature, use os métodos que se seguem no event receiver da sua feature.

Para activar o theme:

private const string myThemeUrl = "/_catalogs/theme/MyTheme.thmx";

public override void FeatureActivated(SPFeatureReceiverProperties properties) {
 SPWeb web = (properties.Feature.Parent as SPWeb);
 
 if (web != null) {
  ApplyCustomTheme(web, myThemeUrl);
 }
}

private void ApplyCustomTheme(SPWeb web, String ThemeUrl) {
 ThmxTheme theme = ThmxTheme.Open(web.Site, ThemeUrl);
 theme.ApplyTo(web, true);
 web.Update();
}

Para desactivar o theme:

public override void FeatureDeactivating(SPFeatureReceiverProperties properties) {
 SPWeb web = (properties.Feature.Parent as SPWeb);

 if (web != null) {
  RemoveCustomTheme(web);
 }
}

private void RemoveCustomTheme(SPWeb web) {
 ThmxTheme.RemoveThemeFromWeb(web, true);
 web.Update();
}
Dércia Silva
Publicado por Dércia Silva em 23 outubro, 2013

Artigos relacionados