-
-
Save tackme31/2198691b57a1ac8da4c1593fca22964d to your computer and use it in GitHub Desktop.
Sitecore PowerShell script to list all unpublished pages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# | |
.SYNOPSIS | |
Lists the pages which are not published yet (in the current version or any version at all). | |
.NOTES | |
Manuel Fischer | |
#> | |
function Get-AllUnpublishedPages { | |
Get-ChildItem -Path $homeFolder -Recurse | IsPage | IsPublished | |
} | |
filter IsPage { | |
$templates = Get-ItemTemplate $_ | |
$baseTempls = $templates.BaseTemplates | |
foreach($baseTempl in $baseTempls) { | |
$id = $baseTempl.ID.ToString() | |
# Template: /sitecore/templates/User Defined/Master/Pages/Page with Shared Footer | |
if($id -eq "{5E9159CF-19F4-41D1-91F4-007B7B5BA401}") { | |
$_ | |
Return | |
} | |
# Template: /sitecore/templates/User Defined/Master/Pages/Page without Shared Footer | |
if($id -eq "{F988428C-76E0-4774-B30E-A0BD63D3E639}") { | |
$_ | |
Return | |
} | |
} | |
} | |
filter IsPublished { | |
$path = $_.ItemPath -replace ('/','\') | |
$itemExists = Test-Path -Path "web:$($path)" | |
if(!$itemExists) { | |
Get-AllLanguageVersions $_ | |
} else { | |
Get-MissingLanguageVersions $_ | |
} | |
} | |
function Get-AllLanguageVersions ($currentItem) { | |
$result = New-Object System.Collections.ArrayList | |
$itmPath = $currentItem.ItemPath -replace ('/','\') | |
foreach($lang in $contentLanguages) { | |
$langV = Get-Item -Path "master:$($itmPath)" -Language $lang.Name | |
if($langV -ne $null) { | |
$dummy = $result.Add($langV) | |
} | |
} | |
$result | |
} | |
function Get-MissingLanguageVersions ($currentItem) { | |
$result = New-Object System.Collections.ArrayList | |
$itmPath = $currentItem.ItemPath -replace ('/','\') | |
foreach($lang in $contentLanguages) { | |
$langVerMas = Get-Item -Path "master:$($itmPath)" -Language $lang.Name | |
if($langVerMas -ne $null) { | |
$langVerWeb = Get-Item -Path "web:$($itmPath)" -Language $lang.Name | |
if ($langVerWeb -eq $null) { | |
$dummy = $result.Add($langVerMas) | |
} | |
} | |
} | |
$result | |
} | |
$database = "master" | |
$homeFolder = "$($database):\sitecore\content\Master\Home" | |
$homeExists = Test-Path -Path $homeFolder | |
if(!$homeExists) { | |
Show-Alert "Der Home-Ordner wurde nicht gefunden!" | |
} else { | |
$contentLanguages = $(Get-Item $homeFolder).Languages | |
$items = Get-AllUnpublishedPages | |
if($items.Count -eq 0){ | |
Show-Alert "Es wurden keine Seiten gefunden, die noch nicht in der ausgewählten Version veröffentlicht wurden." | |
} else { | |
$props = @{ | |
Title = "Unpublizierte Seiten - Resultate" | |
InfoTitle = "Seiten, die noch nicht veröffentlicht wurden in der ausgewählten Version." | |
InfoDescription = "Zeigt die Seiten an, die noch nicht in der ausgewählten Version veröffentlicht wurden." | |
PageSize = 25 | |
} | |
$items | | |
Show-ListView @props -Property @{Label="Page Name"; Expression={$_.DisplayName} }, | |
@{Label="Page Template"; Expression={$_.TemplateName} }, | |
@{Label="Language"; Expression={$_.Language} }, | |
@{Label="Created"; Expression={$_.__Created} }, | |
@{Label="Updated"; Expression={$_.__Updated} }, | |
@{Label="Updated by"; Expression={$_."__Updated by"} }, | |
@{Label="Path"; Expression={$_.ItemPath} }, | |
@{Label="Version"; Expression={$_.Version}} | |
} | |
} | |
Close-Window |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment