Página principal personalizada não vai encontrar spfont arquivo
-
10-12-2019 - |
Pergunta
Eu tenho um projeto que tem uma página mestra personalizada criada a partir de seattle.o mestre.A única mudança na .arquivo mestre é a adição de uma <SharePoint:ScriptLink>
tag apontando para uma cópia de d3.min.js em nosso servidor.Nada mais na página mestra é personalizado.
O projeto cria um composto olhar e funciona como esperado.O problema é quando eu selecione "Mudar o olhar" e escolher minha página mestra personalizada a partir do Layout do Site suspensa, a página principal não vai ler o meu .spcolor arquivo incluído no projeto.
Eu tenho um Módulo chamado MasterPage com o seguinte código:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="MasterPage" Url="_catalogs/masterpage">
<File Path="MasterPage\dynetics.master" Url="dynetics.master" Type="GhostableInLibrary" ReplaceContent="TRUE">
<Property Name="ContentType" Value="Master Page" Type="string"></Property>
<Property Name="UIVersion" Value="15" Type="int"></Property>
<Property Name="ContentTypeId" Value="0x010105"></Property>
<Property Name="Title" Value="Dynetics"></Property>
</File>
<File Path="MasterPage\dynetics.preview" Url="dynetics.preview" Type="GhostableInLibrary" ReplaceContent="TRUE">
<Property Name="ContentType" Value="Master Page Preview" Type="string"></Property>
<Property Name="UIVersion" Value="15"></Property>
<Property Name="Title" Value="Dynetics"></Property>
</File>
</Module>
</Elements>
E um Módulo com o nome do Tema:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="Theme" Url="_catalogs/theme/15">
<File Path="Theme\dynetics.spcolor" Url="dynetics.spcolor" Type="GhostableInLibrary" ReplaceContent="TRUE" />
<File Path="Theme\dynetics.spfont" Url="dynetics.spfont" Type="GhostableInLibrary" ReplaceContent="TRUE" />
</Module>
</Elements>
E o Receptor de Evento:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using (SPSite site = properties.Feature.Parent as SPSite)
{
using (SPWeb web = site.RootWeb)
{
SPList list = web.Lists.TryGetList("Composed Looks");
var relativePath = web.ServerRelativeUrl;
var spcolor = relativePath + "_catalogs/theme/15/dynetics.spcolor";
var spfont = relativePath + "_catalogs/theme/15/dynetics.spfont";
var spimage = relativePath + "_layouts/15/images/geometry.jpg";
if (web != null || web.Exists)
{
foreach (SPListItem composedLook in list.Items)
{
if (composedLook.Title == "Dynetics")
{
composedLook.Delete();
composedLook.Update();
}
}
SPListItem dynetics = list.AddItem();
dynetics["Name"] = "Dynetics";
dynetics["Title"] = "Dynetics";
dynetics["Master Page URL"] = web.MasterUrl;
dynetics["Theme URL"] = spcolor;
dynetics["Image URL"] = spimage;
dynetics["Font Scheme URL"] = spfont;
dynetics["Display Order"] = 1;
dynetics.Update();
web.Update();
}
}
}
}
O que eu preciso fazer para obter o novo tema para pegar o incluído .spcolor arquivo?
Solução
Depois de semanas tentando depurar esse problema, um ticket de suporte apresentados com a Microsoft, e sem fim à vista, eu construí um novo servidor e implantou a solução para ele.
Ele trabalhou.
Não há nenhuma resolução por que .spfont arquivo não irá funcionar com uma página mestra personalizada em nosso ambiente atual.