2

我希望能够在页面库中创建一个页面(并检查它是否已经存在)。

我还需要能够对其应用自定义页面布局,然后将其设置为给定站点的主页(就像您可以在功能区中一样)。

我需要使用 PowerShell 完成这三个步骤(我正在编写一个部署脚本)。

谢谢,丹尼尔

4

1 回答 1

4

让您的发布网络像这样:

$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("")
}
于 2013-08-22T16:19:33.837 回答