none
Смена темы для всех личных сайтов RRS feed

  • Вопрос

  • Доброго времени суток!

    Использую SharePoint 2013 SP1

    Столкнулся со следующей ситуацией: на основном сайте применил свою собственную тему оформления (пользовался этой программой). Все подсайты наследуют тему от родительского, с этим проблем нет.

    Но личные сайты - имеют стандартное оформление в голубых тонах и оно никак не меняется, даже руками, нет такого пункта в "Параметрах сайта". Да и хочется на всех личных сайтах автоматически сменить на корпоративную тему, как на основном сайте.

    Личные сайты находятся в одном веб-приложении с основным сайтом, они реализованы отдельным семейством веб-сайтов.

    Подскажите, пожалуйста, как решить данную проблему!


    8 апреля 2014 г. 4:29

Ответы

  • Если уже имеются личные сайты пользователей, то тема не применится к my/personal, для этого нужно выполнить в PowerShell:

    Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({ 
    	$MyWeb = Get-SPWeb http://site/my
    	foreach ($site in (Get-SPSite http://site/my/personal/* -Limit ALL)) 
    	{
    		foreach ($web in (Get-SPWeb -site $site))
    		{
    						([Microsoft.SharePoint.Utilities.SPTheme]::Open("NameTheme", $myweb.GetFile($MyWeb.ServerRelativeUrl + "/_catalogs/theme/15/NameTheme.spcolor"))).ApplyTo($web, $true) 
    		}
    	} 
    	}
    	)
    9 апреля 2014 г. 9:32
  • Я разобрался с данной проблемой.

    Для смены темы личных сайтов:

    1) нужно создать свою собственную тему (я делал с помощью данной программы)

    2) загрузить её в библиотеку тем личных сайтов

    a. I clicked on "About me" and opened MySite.

    b. Link to the library with themes is hidden in Site Settings, and I simply added "/_catalogs/theme/Forms/AllItems.aspx" to the URL address. The URL address is: ...- my.sharepoint.com/_catalogs/theme/Forms/AllItems.aspx

    c. I clicked on folder "15" and uploaded a custom color palette

    3) выполнить в PowerShell:

    $web = Get-SPWeb http://site/my
    $file = $web.GetFile($web.ServerRelativeUrl + "/_catalogs/theme/15/name.spcolor")
    $theme = [Microsoft.SharePoint.Utilities.SPTheme]::Open("NameTheme", $file)
    $theme.ApplyTo($web, $false)

    9 апреля 2014 г. 9:32

Все ответы

  • добрый день

    SharePoint Branding - Set Theme to MySite

    эта статья ответит на вопрос как можно поменять на одном сайте, но для всех нужно писать скрипт в PowerShell, что бы он пробежал по всем сайтам.


    8 апреля 2014 г. 6:49
    Модератор
  • SharePoint Branding - Set Theme to MySite

    эта статья ответит на вопрос как можно поменять на одном сайте, но для всех нужно писать скрипт в PowerShell, что бы он пробежал по всем сайтам.


    В данной статье есть небольшие несостыковки и не получилось поменять макет главной страницы личных сайтов.

    Нашел другую статью (посредством PowerShell) и визуальный способ смены.

    Но меняется тема только на сайтах my, а есть также my/personal

    В статье описывается способ как и на них поменять, вот код:

    [Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({ 
    foreach ($site in (Get-SPSite http://site/my/personal/* -Limit ALL)) 
    {
     ([Microsoft.SharePoint.Utilities.SPTheme]::Open("MySiteTheme", $site.RootWeb.GetFile($site.RootWeb.ServerRelativeUrl + "/_catalogs/theme/15/Palette015.spcolor"))).ApplyTo($site.RootWeb, $true) 
    } 
    }
    )

    Но при выполнении данного кода появляется ошибка:

    Exception calling "ApplyTo" with "2" argument(s): "Object reference not set to
    an instance of an object."
    At line:1 char:146
    + [Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({ foreach ($site
     in ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : NullReferenceException

    Я так понимаю, что метод ApplyTo не может применяться для SPSite, только для SPWeb. Но $site должен иметь тип SPWeb, т.к. мы в цикле перебираем все сайты семейства сайтов.

    9 апреля 2014 г. 4:06
  • Вы в цикле перебирате семейства сайтов.

    для каждого пользователя создается отдельное семейство сайтов.

    9 апреля 2014 г. 6:10
    Модератор
  • Я разобрался с данной проблемой.

    Для смены темы личных сайтов:

    1) нужно создать свою собственную тему (я делал с помощью данной программы)

    2) загрузить её в библиотеку тем личных сайтов

    a. I clicked on "About me" and opened MySite.

    b. Link to the library with themes is hidden in Site Settings, and I simply added "/_catalogs/theme/Forms/AllItems.aspx" to the URL address. The URL address is: ...- my.sharepoint.com/_catalogs/theme/Forms/AllItems.aspx

    c. I clicked on folder "15" and uploaded a custom color palette

    3) выполнить в PowerShell:

    $web = Get-SPWeb http://site/my
    $file = $web.GetFile($web.ServerRelativeUrl + "/_catalogs/theme/15/name.spcolor")
    $theme = [Microsoft.SharePoint.Utilities.SPTheme]::Open("NameTheme", $file)
    $theme.ApplyTo($web, $false)

    9 апреля 2014 г. 9:32
  • Если уже имеются личные сайты пользователей, то тема не применится к my/personal, для этого нужно выполнить в PowerShell:

    Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({ 
    	$MyWeb = Get-SPWeb http://site/my
    	foreach ($site in (Get-SPSite http://site/my/personal/* -Limit ALL)) 
    	{
    		foreach ($web in (Get-SPWeb -site $site))
    		{
    						([Microsoft.SharePoint.Utilities.SPTheme]::Open("NameTheme", $myweb.GetFile($MyWeb.ServerRelativeUrl + "/_catalogs/theme/15/NameTheme.spcolor"))).ApplyTo($web, $true) 
    		}
    	} 
    	}
    	)
    9 апреля 2014 г. 9:32