none
Как установить оранжевую тему по умолчанию? RRS feed

  • Вопрос

  • Здравствуйте всем!

    Есть задача: необходимо установить оранжевую тему оформления для создаваемых пользователями дочерних сайтов.

    Как это сделать?

    Также интересует изменение цветовой схемы в профиле пользователей (по умолчанию синий. нужно опять же оранжевый)

    2 ноября 2016 г. 11:06

Ответы

  • Добрый день,

    необходимо перехватывать событие создания сайта и устанавливать нужную тему:

    public override void WebProvisioned(SPWebEventProperties properties)
    {
            base.WebProvisioned(properties);
            SPWeb web = properties.Web;
            // устанавливаем навигацию как у родительского сайта
            web.Navigation.UseShared = true;
            // устанавливаем тему как у родительского сайта
            ThmxTheme.SetThemeUrlForWeb(web, ThmxTheme.GetThemeUrlForWeb(web.ParentWeb));
            web.Update();
    }

    И изменить тип обработчика на синхронный (по умолчанию он асинхронный):

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers >
          <Receiver>
            <Name>EventReceiver1WebProvisioned</Name>
            <Type>WebProvisioned</Type>
            <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
            <Class>WebAddedEvent.EventReceiver1.EventReceiver1</Class>
            <SequenceNumber>10000</SequenceNumber>
            <Synchronization>Synchronous</Synchronization>
          </Receiver>
      </Receivers>
    </Elements>

    Т.е. без кода не обойтись, Farm Solution only.


    MS,MCTS,MCP,MCPD: SharePoint Developer 2010

    • Помечено в качестве ответа Шелдон 3 ноября 2016 г. 5:43
    3 ноября 2016 г. 0:21

Все ответы

  • Нашел пару статей как через powershell применять цветовую палитру к уже созданным сайтам.

    [SharePoint 2013] Using PowerShell to Set the Theme Color Palette of a SharePoint Site


    SharePoint 2013: Deploy and apply theme to SharePoint sites with PowerShell

    2 ноября 2016 г. 11:33
  • Спасибо, но это не совсем то, что мне необходимо.
    2 ноября 2016 г. 11:50
  • Добрый день,

    необходимо перехватывать событие создания сайта и устанавливать нужную тему:

    public override void WebProvisioned(SPWebEventProperties properties)
    {
            base.WebProvisioned(properties);
            SPWeb web = properties.Web;
            // устанавливаем навигацию как у родительского сайта
            web.Navigation.UseShared = true;
            // устанавливаем тему как у родительского сайта
            ThmxTheme.SetThemeUrlForWeb(web, ThmxTheme.GetThemeUrlForWeb(web.ParentWeb));
            web.Update();
    }

    И изменить тип обработчика на синхронный (по умолчанию он асинхронный):

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers >
          <Receiver>
            <Name>EventReceiver1WebProvisioned</Name>
            <Type>WebProvisioned</Type>
            <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
            <Class>WebAddedEvent.EventReceiver1.EventReceiver1</Class>
            <SequenceNumber>10000</SequenceNumber>
            <Synchronization>Synchronous</Synchronization>
          </Receiver>
      </Receivers>
    </Elements>

    Т.е. без кода не обойтись, Farm Solution only.


    MS,MCTS,MCP,MCPD: SharePoint Developer 2010

    • Помечено в качестве ответа Шелдон 3 ноября 2016 г. 5:43
    3 ноября 2016 г. 0:21