Opciones de configuración de transformación de página

Al usar el marco de transformación de página tiene un gran control sobre cómo se realiza la transformación de página. El modelo para controlar esto es especificando la configuración correcta como parte de la PageTransformationInformation instancia de las páginas wiki y de elementos web o una PublishingPageTransformationInformation instancia para publicar páginas. La instancia de transformación creada es la que se usa para iniciar la transformación de página. En este artículo obtendrá más información sobre las opciones disponibles.

Importante

La modernización de SharePoint PnP es parte de PnP Framework y evoluciona continuamente; eche un vistazo a las notas de versión para mantenerse al día con los últimos cambios. Si tiene algún problema, preséntelo en la lista de problemas de GitHub para PnP Framework.

Opción sobrescribir

Tipo El valor predeterminado si no se especifica
Bool false

Cuando se configura Overwrite = true, el marco de transformación de página sobrescribirá la página de destino si es necesario. De forma predeterminada el nuevo nombre de la página tiene un prefijo de Migrated_, lo que implica que si ya existe Migrated_YourPage.aspx (normalmente por un intento de transformación de página anterior) se sobrescribirá. El fragmento de código siguiente muestra cómo usar esta opción.

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

Opción SourcePage

Tipo El valor predeterminado si no se especifica
ListItem nulo

Normalmente se establece a través del constructor como se muestra en el ejemplo siguiente. Esto indica la página que se va a modernizar cuando la página se encuentra en una lista

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

Opción SourceFile (a partir de la versión de junio de 2019)

Tipo El valor predeterminado si no se especifica
Archivo nulo

Se usa para definir una página que se va a modernizar cuando la página se encuentra fuera de una lista, por lo que en la carpeta raíz del sitio. Estas páginas solo pueden ser páginas de elementos web.

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

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

Opción TargetPagePrefix

Tipo El valor predeterminado si no se especifica
String Migrated_

La nueva página moderna se llama {TargetPagePrefix} {OriginalPageName} (por ejemplo, Migrated_MyPage.aspx). Si desea otro prefijo, use esta opción.

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

Nota:

Esta opción no está disponible para la transformación de página de publicación.

Opción TargetPageTakesSourcePageName

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es asignar a la página moderna creada un nombre que comienza con el prefijo Migrated_ y permitir que la página original conserve el nombre original. Cuando esta opción se especifica, la nueva página obtiene el nombre de la página original y a la página original se le asigna un nombre con el prefijo Previous_. Establezca esta opción si está seguro de que quiere seguir con la página moderna ya que le asegurará que todos los vínculos que apunten a la página original ahora den como resultado la carga de la nueva página.

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

Importante

Durante el cambio de nombre de la página original a una página que empiece con el prefijo Previous_, el historial de versión de la página original no se conserva.

Nota:

Esta opción no está disponible para la transformación de página de publicación.

Opción SourcePagePrefix

Tipo El valor predeterminado si no se especifica
String Previous_

Si ha configurado TargetPageTakesSourcePageName = true se cambia el nombre de la página original con un prefijo predeterminado Previous_. Si desea otro prefijo, use esta opción.

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

Nota:

Esta opción no está disponible para la transformación de página de publicación.

Opción TargetPageName

Tipo El valor predeterminado si no se especifica
Cadena vacío

Opcionalmente, puede invalidar el nombre de página de la página de destino. De forma predeterminada, el motor de transformación de página generará uno, pero a veces es necesario invalidar (por ejemplo, default.aspx colisionará con la página de vista default.aspx de la biblioteca SitePages).

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

Opción TargetPageFolder (a partir de la versión de noviembre de 2019)

Tipo El valor predeterminado si no se especifica
Cadena vacío

Opcionalmente, puede especificar la carpeta en la que se creará la página de destino. Tenga en cuenta que si se creó automáticamente una carpeta (por ejemplo, porque se estaba transformando desde una biblioteca de páginas wiki adicional), la carpeta especificada por este parámetro se combinará con la carpeta generada automáticamente (a menos que también use la TargetPageFolderOverridesDefaultFolder opción ). Puede especificar una carpeta de la siguiente forma: MyFolder o MyFolder/SubFolder cuando quiera crear una estructura de carpetas anidada. <root> Especificar como valor le permite tener como destino la raíz de la biblioteca de páginas de sitio de destino (a partir de la versión de enero de 2020).

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

Opción TargetPageFolderOverridesDefaultFolder (a partir de la versión de diciembre de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

Puede forzar que la transformación de página use la carpeta especificada a través de la TargetPageFolder propiedad , independientemente de si se ha creado automáticamente una carpeta o no.

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

Opción ReplaceHomePageWithDefaultHomePage

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es transformar la página principal del sitio en una página moderna como cualquier otra página normal. Si establece esta opción en true, la página principal de un sitio se transformará en una página de inicio "predeterminada" moderna, como la que obtendría con un sitio de grupo moderno recién creado.

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

Nota:

Esta opción no está disponible para la transformación de página de publicación.

Opción KeepPageSpecificPermissions

Tipo El valor predeterminado si no se especifica
Bool true

El comportamiento predeterminado es copiar los permisos de los elementos que podrían existir en la página de origen, si no desea que esto ocurra, establezca esta opción como false

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

Opción CopyPageMetadata (a partir de la versión de febrero de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

Si ha ampliado la biblioteca de páginas wiki con columnas adicionales para recopilar metadatos de página y desea copiar estos metadatos en la página moderna creada, establezca esta opción en true.

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

Nota:

Esta opción no está disponible para la transformación de página de publicación. Use el modelo de asignación de diseño de página de publicación para definir si es necesario copiar metadatos y cómo debe ocurrir.

Nota:

A partir de la versión de octubre de 2019, copiar metadatos de página también funciona cuando se realiza una transformación entre sitios, por lo que al crear la página moderna en una colección de sitios diferente a la página de origen original.

Opción RemoveEmptySectionsAndColumns (a partir de la versión de marzo de 2019)

Tipo El valor predeterminado si no se especifica
Bool true

El comportamiento predeterminado es quitar todas las secciones y columnas vacías (por ejemplo, transformar desde un diseño de 3 columnas y solo tener un elemento web en la columna central), ya que esto dará lugar a un mejor uso del patrimonio de la pantalla, si no quiere esto, establezca esta opción en false.

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

Diccionario MappingProperties (a partir de la versión de marzo de 2019)

Tipo El valor predeterminado si no se especifica
Cadena de diccionario,cadena<> vacío

El archivo de asignación predeterminado se puede configurar estableciendo las propiedades de asignación.

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);

Opción PublishCreatedPage (a partir de la versión de abril de 2019)

Tipo El valor predeterminado si no se especifica
Bool true

El comportamiento predeterminado es publicar la página moderna creada, use esta opción si quiere evitarlo.

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

Opción KeepPageCreationModificationInformation (a partir de la versión de octubre de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es no mantener el autor, editor, crear datos y la fecha de modificación de la página de origen. Use esta opción para cambiarlo.

Nota:

Esta opción solo funciona cuando la página de origen está en el mismo espacio empresarial SPO que el destino de la página moderna.

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

Opción PostAsNews (a partir de la versión de octubre de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

Publique la página creada como noticias. Esto implica que la página también se publicará, incluso si ha usado para evitar la PublishCreatedPage publicación de páginas.

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

Opción DisablePageComments (a partir de la versión de abril de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es dejar los comentarios de página habilitados, use esta opción si desea crear una página con comentarios de página deshabilitados.

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

Opción SkipUrlRewrite (a partir de la versión de mayo de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es dejar habilitada la reescritura de direcciones URL; use esta opción si desea crear una página con la reescritura de direcciones URL deshabilitadas. Consulte el artículo de asignación de URL para obtener más información.

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

Opción UrlMappingFile (a partir de la versión de julio de 2019)

Tipo El valor predeterminado si no se especifica
Cadena vacío

Opcionalmente, puede especificar un archivo con asignaciones de direcciones URL personalizadas. Consulte el artículo de asignación de URL para obtener más información.

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

Opción SkipDefaultUrlRewrite (a partir de la versión de septiembre de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es realizar la reescritura de direcciones URL predeterminadas. En caso de que use un archivo de asignación de direcciones URL personalizado y no quiera aplicar la lógica de reescritura de direcciones URL predeterminada, establezca esta propiedad. Consulte el artículo de asignación de URL para obtener más información.

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

Opción AddTableListImageAsImageWebPart (a partir de la versión de octubre de 2019)

Tipo El valor predeterminado si no se especifica
Bool true

Las imágenes que residen en una tabla o lista también se crean como elementos web de imágenes independientes, debajo de la tabla o la lista. Establezca la AddTableListImageAsImageWebPart propiedad en false si desea detener la creación de estos elementos web de imagen independientes.

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

Opción UserMappingFile (a partir de la versión de noviembre de 2019)

Tipo El valor predeterminado si no se especifica
Cadena vacío

Opcionalmente, puede especificar un archivo con asignaciones de usuario personalizadas. Consulte el artículo de Asignación de usuarios para obtener más información.

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

Opción LDAPConnectionString (a partir de la versión de noviembre de 2019)

Tipo El valor predeterminado si no se especifica
Cadena vacío

Opcionalmente, puede especificar un cadena de conexión LDAP personalizado para el entorno de Active Directory. Consulte el artículo de Asignación de usuarios para obtener más información.

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",
};

Opción SkipUserMapping (a partir de la versión de noviembre de 2019)

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento predeterminado es realizar siempre la asignación de usuarios cuando se transforman páginas procedentes de SharePoint local, use esta opción para deshabilitarlo. Consulte el artículo de asignación de URL para obtener más información.

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

Opción TermMappingFile (a partir de la versión de marzo de 2020)

Tipo El valor predeterminado si no se especifica
Cadena vacío

Opcionalmente, puede especificar un archivo con asignaciones de términos personalizados. Consulte el artículo de Asignación de términos para obtener más información.

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

Opción SkipTermStoreMapping (a partir de la versión de marzo de 2020)

Tipo El valor predeterminado si no se especifica
Bool false

El comportamiento estándar es realizar la asignación de términos predeterminada. En caso de que no quiera que se produzca ninguna asignación de términos, establezca esta propiedad. Consulte el artículo de Asignación de términos para obtener más información.

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

Opción HandleWikiImagesAndVideos

Tipo El valor predeterminado si no se especifica
Bool true

Una página wiki puede contener texto y vídeos incrustados, lo que no es posible en un elemento de texto moderno. De forma predeterminada, el texto de wiki se dividirá en cada imagen o vídeo insertados, se agregará un elemento web de vídeo o una imagen en la página moderna y, después, el resto del texto original. Si no le convence esta solución automática puede establecer esta opción como false, lo que hará que cada imagen y vídeo incrustados se reemplacen por un marcador de posición de texto combinado con elementos web de vídeo e imágenes individuales en la parte inferior de la página.

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

Opción PageHeader

Tipo El valor predeterminado si no se especifica
ClientSidePageHeader Nulo

El encabezado de página predeterminado de la página moderna es del tipo ClientSidePageHeaderType.None, que es el más cercano al encabezado de la página wiki. No obstante, si prefiere un encabezado de página moderna predeterminado (el que tiene la zona gris grande), puede hacerlo con esta opción (vea también el siguiente ejemplo). También puede configurar un encabezado de página personalizado con todas las opciones asociadas como la imagen de fondo, la alineación, etc.

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

Nota:

Esta opción no está disponible para la transformación de página de publicación. Use el modelo de asignación de diseño de página para determinar cómo se debe construir el encabezado de página.

Opción PageTitleOverride

Tipo El valor predeterminado si no se especifica
Cadena func<, cadena> nulo

El título de la página moderna se saca de la página de origen tomando el nombre de la página y quitando la extensión, pero puede insertar cualquier título de página personalizado en el flujo de transformación por esta llamada. El ejemplo que se muestra agrega un sufijo _1 en el título predeterminado.

// 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,
};

Opción LayoutTransformatorOverride

Tipo El valor predeterminado si no se especifica
Func<ClientSidePage, ILayoutTransformator> nulo

El motor de transformación de página tiene un transformador de diseño predeterminado que puede administrar todos los diseños predefinidos de páginas de elementos web o wiki, pero si desea reemplazarlo puede especificar uno propio.

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,
};