ページ ライブラリにページを作成できるようにしたい (そして、既に存在するかどうかを確認したい)。
また、カスタム ページ レイアウトを適用して、特定のサイトのホーム ページとして設定できるようにする必要もあります (リボンで可能)。
これら 3 つの手順を PowerShell で実行する必要があります (デプロイ スクリプトを作成しています)。
ありがとう、ダニエル
ページ ライブラリにページを作成できるようにしたい (そして、既に存在するかどうかを確認したい)。
また、カスタム ページ レイアウトを適用して、特定のサイトのホーム ページとして設定できるようにする必要もあります (リボンで可能)。
これら 3 つの手順を PowerShell で実行する必要があります (デプロイ スクリプトを作成しています)。
ありがとう、ダニエル
次のように発行 Web を取得します。
$SPWeb = Get-SPWeb $websiteUrl -AssignmentCollection $spAssignment
$pweb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($SPWeb)
ページのリストを取得します。
$pages = $pweb.GetPublishingPages($pweb)
get a page layout:
$ctype = $psite.ContentTypes["Your Page Layout Content Type"]
$pageLayouts = $psite.GetPageLayouts($ctype, $true)
$pageLayouts | ForEach-Object {
if ($_.Title -eq "Your Page Layout Title")
{
$layout = $_;
}
}
このようなページを探します
$pages | ForEach-Object {
if($_.Name -eq "default.aspx")
{
$page = $_;
}
}
このようにレイアウトを更新します
if ($page -ne $null)
{
$page.CheckOut()
$page.Layout = $layout;
$page.Update();
}
このようなレイアウトに基づいてページを作成します
$page = $pages.Add("new.aspx", $layout)
$page.Title = "New Title";
$page.Update();
必要に応じて他のフィールドを更新します
$item = $page.ListItem
if ($pg.PageContent -ne "")
{
$item["Title"] = "Your Title";
$item["Page Content"] = "Your content";
$item.Update()
}
ページをチェックインして公開します。
if ($page -ne $null)
{
$item.File.CheckIn("")
$item.File.Publish("")
$item.File.Approve("")
}