I would like to create a wiki page using powershell and would like set "Two column with Header" as the page layout instead of the default "One Column" layout. Able to create the page however dont know how to update the page layout. Kindly help.
note: Publishing feature is not enabled on the web.
## Main Sharepoint Site
$site = "http://Webapplication";
## Sharepoint Wiki sub-site
$web = "/subsite";
## Library of Wiki Pages
$Library = "Site Pages";
## Name of the Wiki Pages
$pageName = "NewHomePage.aspx";
## Setup Basic sites and pages
$spSite = Get-SPSite $site;
$spWeb = Get-SPWeb ($site+$web);
$spLibrary = $spWeb.Lists[$Library];
$pageFolder = $spLibrary.RootFolder;
$spWIKIPage = $pageFolder.Files.Add($pageFolder.ServerRelativeUrl +"/" + $pageName, [Microsoft.SharePoint.SPTemplateFileType]::WikiPage);
$spWIKIItem = $spWIKIPage.Item;
$spWIKIItem[[Microsoft.SharePoint.SPBuiltInFieldId]::WikiField] = "Template Preview" ;
$spWIKIItem.UpdateOverwriteVersion();
# Dispose the Objects
$spWeb.Dispose();
$spSite.Dispose();
It works if html contents are directly added. However does it make any performance impact?
### Variables ###
## Main Sharepoint Site
$site = "http://webapplication";
## Sharepoint Wiki sub-site
$web = "/subsite";
## Library of Wiki Pages
$Library = "Site Pages";
## Name of the Wiki Pages
$pageName = "NewHomePage.aspx";
## Layout of the Wiki Pages
$pageLayout = '<div class="ExternalClassCFBA8CDC81B34264A81647E2260499B4"><table id="layoutsTable" style="width:100%"><tbody><tr style="vertical-align:top"><td colspan="2"><div class="ms-rte-layoutszone-outer" style="width:100%"><div class="ms-rte-layoutszone-inner"><div class="ExternalClass84D2F659CA274C02B313B2039A7DCEF6">Template Preview</div></div></div></td></tr><tr style="vertical-align:top"><td style="width:49.95%"><div class="ms-rte-layoutszone-outer" style="width:100%"><div class="ms-rte-layoutszone-inner"><div class="ExternalClass84D2F659CA274C02B313B2039A7DCEF6"> </div></div> </div></td><td style="width:49.95%"><div class="ms-rte-layoutszone-outer" style="width:100%"><div class="ms-rte-layoutszone-inner"></div> </div></td></tr></tbody></table><span id="layoutsData" style="display:none">true,false,2</span></div>';
## Setup Basic sites and pages
$spSite = Get-SPSite $site;
$spWeb = Get-SPWeb ($site+$web);
$spLibrary = $spWeb.Lists[$Library];
$pageFolder = $spLibrary.RootFolder;
$spWIKIPage = $pageFolder.Files.Add($pageFolder.ServerRelativeUrl +"/" + $pageName, [Microsoft.SharePoint.SPTemplateFileType]::WikiPage);
$spWIKIPage.Title = $web.Title + " Home Page";
$spWIKIItem = $spWIKIPage.Item;
$spWIKIItem[[Microsoft.SharePoint.SPBuiltInFieldId]::WikiField] = $pageLayout;
$spWIKIItem.UpdateOverwriteVersion();
# Dispose the Objects
$spWeb.Dispose();
$spSite.Dispose();