Параметры конфигурации преобразования страниц

Если вы используете платформу преобразования страниц, в вашем распоряжении имеется много элементов управления процессом преобразования. Модель управления этим заключается в указании правильной конфигурации в качестве части экземпляра PageTransformationInformation для страниц вики-страниц и веб-частей или экземпляра PublishingPageTransformationInformation страниц публикации. Созданный экземпляр преобразования используется для запуска преобразования страницы. В этой статье вы подробно ознакомитесь с доступными параметрами.

Важно!

Модернизация SharePoint PnP является частью платформы PnP и постоянно развивается. См. заметки о выпуске, чтобы быть в курсе последних изменений. Если у вас возникнут проблемы, внесите данные о них в список проблем в GitHub на платформе PnP.

Параметр Overwrite

Тип Значение по умолчанию (если значение не указано)
Логический false

Если вы устанавливаете настройку Overwrite = true, платформа преобразования страниц будет при необходимости перезаписывать целевую страницу. По умолчанию в имени новой страницы используется префикс Migrated_, и затем подразумевается, что если файл Migrated_YourPage.aspx уже существует (обычно из предыдущей попытки преобразования страницы), он будет перезаписан. В представленном ниже фрагменте показано, как использовать этот параметр.

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

Параметр SourcePage

Тип Значение по умолчанию (если значение не указано)
ListItem null

Обычно задается с помощью конструктора, как показано в приведенном ниже примере. Это указывает, что страница будет обновлена при наличии страницы в списке.

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

Параметр SourceFile (с июня 2019 г.)

Тип Значение по умолчанию (если значение не указано)
File null

Используется для определения страницы для модернизации, когда страница находится за пределами списка, поэтому в корневой папке сайта. Эти страницы могут быть только страницами веб-частей.

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

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

Параметр TargetPagePrefix

Тип Значение по умолчанию (если значение не указано)
Строка Migrated_

Новой современной странице присваивается имя {TargetPagePrefix}{OriginalPageName} (например, Migrated_MyPage.aspx). Если нужен другой префикс, используйте этот параметр.

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

Примечание.

Этот параметр недоступен для преобразования страницы публикации.

Параметр TargetPageTakesSourcePageName

Тип Значение по умолчанию (если значение не указано)
Логический false

Действие по умолчанию состоит в присвоении созданной современной странице имени, которое начинается с префикса Migrated_, с сохранением для исходной страницы существующего имени. Если задан этот параметр, созданной странице присваивается имя исходной страницы, а исходная страница переименовывается с помощью префикса Previous_. Задайте этот параметр, если вы уверены, что хотите продолжать работу с современной страницей, так как это приведет к тому, что все ссылки, указывающие на исходную страницу, станут указывать на загружаемую современную страницу.

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

Важно!

При изменении имени исходной страницы на имя, начинающееся с префикса Previous_, журнал версий исходной страницы не сохраняется.

Примечание.

Этот параметр недоступен для преобразования страницы публикации.

Параметр SourcePagePrefix

Тип Значение по умолчанию (если значение не указано)
Строка Previous_

Если вы настроили TargetPageTakesSourcePageName = true, исходная страница переименовывается с помощью префикса по умолчанию Previous_. Если нужен другой префикс, используйте этот параметр.

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

Примечание.

Этот параметр недоступен для преобразования страницы публикации.

Параметр TargetPageName

Тип Значение по умолчанию (если значение не указано)
Строка пусто

При необходимости можно переопределить имя целевой страницы. По умолчанию подсистема преобразования страницы создает ее, но иногда она необходима для переопределения (например, default.aspx столкнется со страницей представления default.aspx библиотеки SitePages).

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

Параметр TargetPageFolder (по состоянию на выпуск за ноябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Строка пусто

При необходимости можно указать папку, в которой будет создана целевая страница. Обратите внимание, что если папка была создана автоматически (например, из-за преобразования из дополнительной библиотеки вики-страниц), то папка, указанная этим параметром, будет объединена с автоматически созданной папкой (если вы также не используете TargetPageFolderOverridesDefaultFolder параметр ). Эту папку можно задать следующим образом: MyFolder или MyFolder/SubFolder, если необходимо создать вложенную структуру папки. Указание <root> в качестве значения позволяет выбрать корень целевой библиотеки sitepages (по состоянию на январь 2020 г.).

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

Параметр TargetPageFolderOverridesDefaultFolder (по состоянию на выпуск за декабрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

Вы можете принудить преобразование страницы использовать папку, указанную с помощью TargetPageFolder свойства, независимо от того, была ли автоматически создана папка.

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

Параметр ReplaceHomePageWithDefaultHomePage

Тип Значение по умолчанию (если значение не указано)
Логический false

Действие по умолчанию состоит в преобразовании домашней страницы сайта в современную страницу аналогично любой другой обычной странице. Если этому параметру присвоено значение true, домашняя страница сайта будет преобразована в готовую современную домашнюю страницу "по умолчанию", аналогичную создаваемой для современного сайта группы.

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

Примечание.

Этот параметр недоступен для преобразования страницы публикации.

Параметр KeepPageSpecificPermissions

Тип Значение по умолчанию (если значение не указано)
Логический true

Действие по умолчанию состоит в копировании любых разрешений уровня элемента, которые могут находиться на исходной странице. Если вы этого не хотите, присвойте этому параметру значение false

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

Параметр CopyPageMetadata (с выпуска за февраль 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

Если вы расширили библиотеку вики-страниц дополнительными столбцами для сбора метаданных страницы и хотите скопировать эти метаданные на созданную современную страницу, задайте для этого параметра значение true.

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

Примечание.

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

Примечание.

По состоянию на октябрь 2019 г. копирование метаданных страниц также работает при преобразовании между сайтами, поэтому при создании современной страницы в семействе веб-сайтов, отличном от исходной исходной страницы.

Параметр RemoveEmptySectionsAndColumns (с выпуска за март 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический true

Поведение по умолчанию заключается в удалении всех пустых разделов и столбцов (например, вы преобразуете из макета 3 столбца и имеете только одну веб-часть в среднем столбце), так как это приведет к более эффективному использованию экранной недвижимости, если вы не хотите, установите для этого параметра значение false.

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

Словарь MappingProperties (по состоянию на март 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Строка словаря<, строка> пусто

Файл сопоставления по умолчанию можно настроить, задав свойства сопоставления.

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

Параметр PublishCreatedPage (с выпуска за апрель 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический true

Поведение по умолчанию — публикация созданной современной страницы, используйте этот параметр, если вы хотите предотвратить это.

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

Параметр KeepPageCreationModificationInformation (по состоянию на октябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

Поведение по умолчанию заключается в том, что автор, редактор, данные создания и дата изменения исходной страницы не сохраняются. Используйте этот параметр, чтобы изменить его.

Примечание.

Этот параметр поддерживается, только если исходная страница находится в том же клиенте SPO, что и конечное расположение современной страницы.

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

Параметр PostAsNews (по состоянию на октябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

Опубликуй созданную страницу как новости. Это означает, что страница также будет опубликована, даже если вы использовали для предотвращения публикации PublishCreatedPage страницы.

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

Параметр DisablePageComments (с выпуска за апрель 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

По умолчанию примечания страницы не включены. Используйте этот параметр, если вы хотите создать страницу с отключенными комментариями страницы.

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

Параметр SkipUrlRewrite (по состоянию на май 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

По умолчанию перезапись URL-адресов не включена. Используйте этот параметр, если вы хотите создать страницу с отключенным переопределением URL-адресов. Дополнительные сведения см. в статье Сопоставление URL-адресов.

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

Параметр UrlMappingFile (с выпуска за июль 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Строка пусто

При необходимости можно указать файл с пользовательскими сопоставлениями URL-адресов. Дополнительные сведения см. в статье Сопоставление URL-адресов.

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

Параметр SkipDefaultUrlRewrite (с выпуска за сентябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

По умолчанию выполняется перезапись URL-адресов по умолчанию. Если вы используете пользовательский файл сопоставления URL-адресов и не хотите применять логику перезаписи URL-адресов по умолчанию, задайте это свойство. Дополнительные сведения см. в статье Сопоставление URL-адресов.

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

Параметр AddTableListImageAsImageWebPart (по состоянию на октябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический true

Изображения, находящиеся внутри таблицы или списка, также создавались как отдельные веб-части изображений под этой таблицей или списком. Присвойте свойству AddTableListImageAsImageWebPart значение false, если вы хотите остановить создание этих отдельных веб-частей изображений.

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

Параметр UserMappingFile (с выпуска за ноябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Строка пусто

При необходимости можно указать файл с пользовательскими сопоставлениями пользователей. Дополнительные сведения см. в статье Сопоставление пользователей.

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

Параметр LDAPConnectionString (по состоянию на выпуск за ноябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Строка пусто

При необходимости можно указать настраиваемую строку подключения LDAP для среды Active Directory. Дополнительные сведения см. в статье Сопоставление пользователей.

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

Параметр SkipUserMapping (по состоянию на выпуск за ноябрь 2019 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

Поведение по умолчанию — всегда выполнять сопоставление пользователей при преобразовании страниц, поступающих из локальной среды SharePoint. Используйте этот параметр, чтобы отключить его. Дополнительные сведения см. в статье Сопоставление URL-адресов.

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

Параметр TermMappingFile (с выпуска за март 2020 г.)

Тип Значение по умолчанию (если значение не указано)
Строка пусто

При необходимости можно указать файл с пользовательскими сопоставлениями терминов. Дополнительные сведения см. в статье Сопоставление терминов.

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

Параметр SkipTermStoreMapping (с выпуска за март 2020 г.)

Тип Значение по умолчанию (если значение не указано)
Логический false

Стандартное поведение заключается в выполнении сопоставления терминов по умолчанию. Если вы не хотите, чтобы какое-либо сопоставление терминов происходило, задайте это свойство. Дополнительные сведения см. в статье Сопоставление терминов.

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

Параметр HandleWikiImagesAndVideos

Тип Значение по умолчанию (если значение не указано)
Логический true

Вики-страница может содержать внедренное видео и текст, которые не поддерживаются в современной текстовой части. По умолчанию вики-текст разделяется у каждого внедренного изображения или видео, на современную страницу добавляется веб-часть видео или изображения, а затем оставшийся исходный текст. Если вас не устраивает автоматическое закрепление, можно присвоить этому параметру значение false, что приведет к замене каждого внедренного изображения и видео замещающим текстом в сочетании с отдельными веб-частями видео и изображений в нижней части страницы.

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

Параметр PageHeader

Тип Значение по умолчанию (если значение не указано)
ClientSidePageHeader Null

Стандартный верхний колонтитул для современной страницы относится к типу ClientSidePageHeaderType.None, максимально похожему на верхний колонтитул вики-страницы. Но если вы предпочитаете стандартный современный верхний колонтитул (с большой серой зоной), можно применить его с помощью этого параметра (также см. пример ниже). Вы также можете настроить пользовательский верхний колонтитул со всеми его соответствующими параметрами, например фоновым изображением, выравниванием и т. д.

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

Примечание.

Этот параметр недоступен для преобразования страницы публикации. Используйте модель сопоставления макета страницы, чтобы определить способ создания заголовка страницы.

Параметр PageTitleOverride

Тип Значение по умолчанию (если значение не указано)
Строка func<, string> null

Заголовок современной страницы извлекается из исходной страницы путем отбрасывания расширения от имени страницы. Но вы можете вставить любой пользовательский заголовок в процессе преобразования с помощью вызова этого параметра. В приведенном примере к стандартному заголовку добавляется суффикс _1.

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

Параметр LayoutTransformatorOverride

Тип Значение по умолчанию (если значение не указано)
Func<ClientSidePage, ILayoutTransformator> null

В подсистеме преобразования страниц есть преобразователь макетов по умолчанию, который обрабатывает все готовые макеты вики-страниц и страниц веб-частей, но если нужно переопределить макет, вы можете указать собственный.

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