Opções de configuração de transformação de página

Quando usa a estrutura de transformação de página, você tem muito controle sobre como a transformação de página é feita. O modelo para controlar isso é especificar a configuração correta como parte da PageTransformationInformation instância para páginas wiki e web part ou uma PublishingPageTransformationInformation instância para publicar páginas. A instância de transformação criada é o que você usa para iniciar a transformação de página. Neste artigo, você aprenderá mais sobre as opções disponíveis.

Importante

A modernização do SharePoint PnP faz parte da Estrutura PnP e está em constante evolução, verifique as notas de versão para se manter atualizado sobre as alterações mais recentes. Se você tiver problemas, registre-o na lista de problemas do GitHub sobre Estrutura PnP.

Opção de substituição

Tipo Valor padrão se não especificado
Bool falso

Quando você configura o Overwrite = true, a estrutura de transformação de página substitui a página de destino, se necessário. Por padrão, o novo nome da página têm um prefixo Migrated_, que sugere que, se já existe Migrated_YourPage.aspx (normalmente a partir de um esforço de transformação de uma página anterior), ela será substituída. O trecho abaixo mostra como usar essa opção.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    Overwrite = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    Overwrite = true,
};

Opção SourcePage

Tipo Valor padrão se não especificado
ListItem null

Normalmente definido por meio do construtor, conforme mostrado no exemplo abaixo. Isso indica que a página deve ser modernizada quando a página reside em uma lista

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    Overwrite = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    Overwrite = true,
};

Opção SourceFile (a partir da versão de junho de 2019)

Tipo Valor padrão se não especificado
Arquivo null

Usado para definir uma página a ser modernizada quando a página reside fora de uma lista, ou seja, na pasta raiz do site. Essas páginas só podem ser páginas de Web Parts.

var fileToModernize = cc.Web.GetFileByServerRelativeUrl("/sites/myspecialsite/default.aspx");
cc.Load(fileToModernize);
cc.ExecuteQueryRetry();

PageTransformationInformation pti = new PageTransformationInformation(null)
{
    SourceFile = true,
};

Opção TargetPagePrefix

Tipo Valor padrão se não especificado
String Migrado_

A nova página moderna é chamada de {PreifixoPáginaDestino} {NomePáginaOriginal} (por exemplo, Migrated_MyPage.aspx). Se quiser outro prefixo, use esta opção.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    TargetPagePrefix = "New_",
};

Observação

Essa opção não está disponível para a transformação de página de publicação.

Opção TargetPageTakesSourcePageName

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é dar à página moderna criada um nome que comece com o prefixo Migrated_ e deixar a página original manter seu nome existente. Quando essa opção é especificada, a página recém-criada fica com o nome da página original e a página original é renomeada com o prefixo Previous_. Defina essa opção se tiver certeza de que deseja avançar com a página moderna, pois isso vai garantir que todos os links que apontam para a página original resultarão agora no carregamento da nova página moderna.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    TargetPageTakesSourcePageName = true,
};

Importante

Durante a renomeação da página original para uma página começando com o prefixo Previous_, o histórico de versão da página original não é retido.

Observação

Essa opção não está disponível para a transformação de página de publicação.

Opção SourcePagePrefix

Tipo Valor padrão se não especificado
String Previous_

Se você configurou TargetPageTakesSourcePageName = true, a página original será renomeada com um prefixo Previous_ padrão. Se quiser outro prefixo, use esta opção.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    SourcePagePrefix = "Old_",
};

Observação

Essa opção não está disponível para a transformação de página de publicação.

Opção TargetPageName

Tipo Valor padrão se não especificado
Cadeia de caracteres vazio

Opcionalmente, você pode substituir o nome da página de destino. Por padrão, o mecanismo de transformação de página gerará um, mas às vezes é necessário substituí-lo (por exemplo, default.aspx colidirá com a página de exibição default.aspx da biblioteca SitePages).

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    TargetPageName = "mypage.aspx",
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    TargetPageName = "mypage.aspx",
};

Opção TargetPageFolder (a partir da versão de novembro de 2019)

Tipo Valor padrão se não especificado
Cadeia de caracteres vazio

Opcionalmente, você pode especificar a pasta na qual a página de destino será criada. Observe que se uma pasta foi criada automaticamente (por exemplo, porque você estava se transformando de uma biblioteca de páginas wiki extra), a pasta especificada por este parâmetro será combinada com a pasta gerada automaticamente (a menos que você use a TargetPageFolderOverridesDefaultFolder opção também). Você poderá especificar uma pasta como esta: MyFolder ou MyFolder/SubFolder quando desejar criar uma estrutura de pastas aninhada. Especificar <root> como valor permite direcionar a raiz da biblioteca sitepages de destino (a partir da versão de janeiro de 2020).

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    TargetPageFolder = "MyFolder",
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    TargetPageFolder = "MyFolder",
};

Opção TargetPageFolderOverridesDefaultFolder (a partir da versão de dezembro de 2019)

Tipo Valor padrão se não especificado
Bool falso

Você pode forçar a transformação de página para usar a pasta especificada por meio da TargetPageFolder propriedade, independentemente de haver uma pasta criada automaticamente ou não.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    TargetPageFolderOverridesDefaultFolder = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    TargetPageFolderOverridesDefaultFolder = true,
};

Opção ReplaceHomePageWithDefaultHomePage

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é transformar a página inicial do site em uma página moderna como qualquer outra página normal. Se você definir essa opção como verdadeira, a página inicial do site será transformada em uma página inicial “padrão” pronta para uso, portanto, a página que você obteria com um site de equipe moderno recém-criado.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    ReplaceHomePageWithDefaultHomePage = true,
};

Observação

Essa opção não está disponível para a transformação de página de publicação.

Opção KeepPageSpecificPermissions

Tipo Valor padrão se não especificado
Bool verdadeiro

O comportamento padrão é copiar qualquer permissão de nível de item que possa existir na página de origem; se você não desejar que isso aconteça, defina esta opção como falsa

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    KeepPageSpecificPermissions = false,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    KeepPageSpecificPermissions = false,
};

Opção CopyPageMetadata (a partir da versão de fevereiro de 2019)

Tipo Valor padrão se não especificado
Bool falso

Se você estendeu sua biblioteca de páginas wiki com colunas adicionais para coletar metadados de página e deseja copiar esses metadados para a página moderna criada, defina essa opção como true

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    CopyPageMetadata = true,
};

Observação

Essa opção não está disponível para a transformação de página de publicação. Use o modelo de mapeamento de layout da página de publicação para definir se os metadados precisam ser copiados e como isso precisa acontecer.

Observação

A partir da versão de outubro de 2019, copiar metadados de página também funciona quando você faz uma transformação entre sites, ou seja, quando você cria a página moderna em um conjunto de sites diferente da página de origem original.

Opção RemoveEmptySectionsAndColumns (a partir da versão de março de 2019)

Tipo Valor padrão se não especificado
Bool verdadeiro

O comportamento padrão é remover todas as seções e colunas vazias (por exemplo, você transforma de um layout de 3 colunas e tem apenas uma web part na coluna do meio), pois isso resultará em um melhor uso do espaço da tela, se você não quiser isso, defina essa opção como false

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    RemoveEmptySectionsAndColumns = false,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    RemoveEmptySectionsAndColumns = false,
};

Dicionário MappingProperties (a partir da versão de março de 2019)

Tipo Valor padrão se não especificado
Cadeia de caracteres do dicionário,cadeia<de caracteres> vazio

O arquivo de mapeamento padrão pode ser configurado definindo as propriedades de mapeamento

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    // If target page exists, then overwrite it
    Overwrite = true,
};

pti.MappingProperties["SummaryLinksToQuickLinks"] = "false";

pageTransformator.Transform(pti);
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    // If target page exists, then overwrite it
    Overwrite = true,
};

pti.MappingProperties["SummaryLinksToQuickLinks"] = "false";

pageTransformator.Transform(pti);

Opção PublishCreatedPage (a partir da versão de abril de 2019)

Tipo Valor padrão se não especificado
Bool verdadeiro

O comportamento padrão é publicar a página moderna criada, use esta opção se quiser evitar isso.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    PublishCreatedPage = false,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    PublishCreatedPage = false,
};

Opção KeepPageCreationModificationInformation (a partir da versão de outubro de 2019)

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é não manter o autor, o editor, os dados de criação e a data de modificação da página de origem. Use esta opção para alterar isso.

Observação

Essa opção funciona apenas quando a página de origem está no mesmo locatário SPO que o destino da página moderna.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    KeepPageCreationModificationInformation = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    KeepPageCreationModificationInformation = true,
};

Opção PostAsNews (a partir da versão de outubro de 2019)

Tipo Valor padrão se não especificado
Bool falso

Publique a página criada como notícia. Isso implica que a página também será publicada, mesmo que você tenha usado a para impedir a PublishCreatedPage publicação da página.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    PostAsNews = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    PostAsNews = true,
};

Opção DisablePageComments (a partir da versão de abril de 2019)

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é deixar os comentários da página habilitados. Use esta opção se quiser criar uma página com comentários de página desabilitados

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    DisablePageComments = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    DisablePageComments = true,
};

Opção SkipUrlRewrite (a partir da versão de maio de 2019)

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é deixar a reescrita de URL habilitada. Use esta opção se quiser criar uma página com a reescrita de URL desabilitada. Confira o artigo mapeamento de URL para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    SkipUrlRewrite = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    SkipUrlRewrite = true,
};

Opção UrlMappingFile (a partir da versão de julho de 2019)

Tipo Valor padrão se não especificado
Cadeia de caracteres vazio

Opcionalmente, você pode especificar um arquivo com mapeamentos de URL personalizados. Confira o artigo mapeamento de URL para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    UrlMappingFile = @"c:\temp\urlmappingfile.csv",
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    UrlMappingFile = @"c:\temp\urlmappingfile.csv",
};

Opção SkipDefaultUrlRewrite (a partir da versão de setembro de 2019)

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é executar a reescrita da URL padrão. Caso você esteja usando um arquivo de mapeamento de URL personalizado e não queira aplicar a lógica de reescrita de URL padrão, defina essa propriedade. Confira o artigo mapeamento de URL para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    SkipDefaultUrlRewrite = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    SkipDefaultUrlRewrite = true,
};

Opção AddTableListImageAsImageWebPart (a partir da versão de outubro de 2019)

Tipo Valor padrão se não especificado
Bool verdadeiro

As imagens que ficam dentro de uma tabela/lista também eram criadas como Web Parts de imagem separadas abaixo dessa tabela/lista. Defina a AddTableListImageAsImageWebPart propriedade como false se quiser interromper a criação dessas Web Parts de imagem separadas.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    AddTableListImageAsImageWebPart = false,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    AddTableListImageAsImageWebPart = false,
};

Opção UserMappingFile (a partir da versão de novembro de 2019)

Tipo Valor padrão se não especificado
Cadeia de caracteres vazio

Opcionalmente, você pode especificar um arquivo com mapeamentos de usuário personalizados. Confira o artigo Mapeamento de usuário para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    UserMappingFile = @"c:\temp\usermappingfile.csv",
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    UserMappingFile = @"c:\temp\usermappingfile.csv",
};

Opção LDAPConnectionString (a partir da versão de novembro de 2019)

Tipo Valor padrão se não especificado
Cadeia de caracteres vazio

Opcionalmente, você pode especificar uma cadeia de conexão LDAP personalizada para o ambiente do Active Directory. Confira o artigo Mapeamento de usuário para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    LDAPConnectionString = "LDAP://OU=Test,DC=CONTOSO,DC=COM",
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    LDAPConnectionString = "LDAP://OU=Test,DC=CONTOSO,DC=COM",
};

Opção SkipUserMapping (a partir da versão de novembro de 2019)

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é sempre realizar o mapeamento de usuário quando você estiver transformando páginas provenientes do SharePoint local. Use esta opção para desabilitar isso. Confira o artigo mapeamento de URL para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    SkipUserMapping = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    SkipUserMapping = true,
};

Opção TermMappingFile (a partir da versão de março de 2020)

Tipo Valor padrão se não especificado
Cadeia de caracteres vazio

Opcionalmente, você pode especificar um arquivo com mapeamentos de termos personalizados. Confira o artigo Mapeamento de termo para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    TermMappingFile = @"c:\temp\termmappingfile.csv",
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    TermMappingFile = @"c:\temp\termmappingfile.csv",
};

Opção SkipTermStoreMapping (a partir da versão de março de 2020)

Tipo Valor padrão se não especificado
Bool falso

O comportamento padrão é realizar o mapeamento de termos padrão. Caso você não queira que nenhum mapeamento de termo aconteça, defina essa propriedade. Confira o artigo Mapeamento de termo para saber mais.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    SkipTermStoreMapping = true,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    SkipTermStoreMapping = true,
};

Opção HandleWikiImagesAndVideos

Tipo Valor padrão se não especificado
Bool verdadeiro

Uma página wiki pode conter vídeo e texto inseridos, o que não é possível em uma web part de texto moderna. Por padrão, o texto wiki será dividido em cada imagem ou vídeo inserido, uma web part de vídeo ou imagem será adicionada à página moderna e depois o restante do texto original. Se essa correção automática não agradá-lo, você poderá definir essa opção como falsa, o que fará com que cada imagem e vídeo inseridos sejam substituídos por um espaço reservado para texto combinado com web parts individuais de vídeo e imagem na parte inferior da página.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    HandleWikiImagesAndVideos = false,
};
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    HandleWikiImagesAndVideos = false,
};

Opção PageHeader

Tipo Valor padrão se não especificado
ClientSidePageHeader Nulo

O cabeçalho de página padrão para a página moderna é do tipo ClientSidePageHeaderType.None, que é mais parecido com o cabeçalho da página wiki. No entanto, se preferir um cabeçalho de página moderna padrão (com uma zona cinza grande), você poderá obtê-lo, usando essa opção (outro exemplo abaixo). Você também pode configurar um cabeçalho de página personalizado com todas as suas opções associadas, como imagem de tela de fundo, alinhamento etc.

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    PageHeader = new ClientSidePageHeader(cc, ClientSidePageHeaderType.Default, null),
};

Observação

Essa opção não está disponível para a transformação de página de publicação. Use o modelo de mapeamento de layout de página para determinar como o cabeçalho de página deve ser construído.

Opção PageTitleOverride

Tipo Valor padrão se não especificado
Func<string, string> null

O título da página moderna é deduzido da página de origem, aproveitando o nome da página e eliminando a extensão, mas você pode inserir qualquer título de página personalizado no fluxo de transformação por este texto explicativo. O exemplo mostrado adiciona um sufixo _1 ao título padrão.

// Local functions
string titleOverride(string title)
{
    return $"{title}_1";
}

PageTransformationInformation pti = new PageTransformationInformation(page)
{
    PageTitleOverride = titleOverride,
};
// Local functions
string titleOverride(string title)
{
    return $"{title}_1";
}

PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
{
    PageTitleOverride = titleOverride,
};

Opção LayoutTransformatorOverride

Tipo Valor padrão se não especificado
Func<ClientSidePage, ILayoutTransformator> null

O mecanismo de transformação de página tem um transformador de layout padrão que pode lidar com todos os layouts de página de web parts e wiki box; porém, se você quiser substituir isso, pode especificar o seu próprio.

public class MyLayout : ILayoutTransformator
{
  private ClientSidePage page;

  public MyLayout(ClientSidePage page)
  {
    this.page = page;
  }

  public void Transform(PageLayout layout)
  {
    // custom layout transformation...add sections to the target page based upon the recieved page layout
    switch (layout)
    {
        case PageLayout.Wiki_OneColumn:
        case PageLayout.WebPart_FullPageVertical:
        case PageLayout.Wiki_Custom:
        case PageLayout.WebPart_Custom:
            {
                page.AddSection(CanvasSectionTemplate.OneColumn, 1);
                return;
            }
        // add more incoming layouts...
        default:
            {
                page.AddSection(CanvasSectionTemplate.OneColumn, 1);
                return;
            }
    }
  }
}

// Local functions
ILayoutTransformator layoutOverride(ClientSidePage cp)
{
    return new MyLayout();
}


PageTransformationInformation pti = new PageTransformationInformation(page)
{
    LayoutTransformatorOverride = layoutOverride,
};