$masterdatabase = "master"
$rootItem = Get-Item -Path (@{$true="$($masterdatabase):\sitecore\content\ArticleName\2023"; $false="$($masterdatabase):\content"}[(Test-Path -Path "$($masterdatabase):\sitecore\content\Home")])
$defaultLayout = Get-LayoutDevice "Default"
# Toggle for whether to update Shared or Final Layout
$useFinalLayout = $True
# If set to true, the script will only list the renderings that need fixing, rather than fixing them.
$reportOnly = $False
foreach ( $item in Get-ChildItem -Item $rootItem -Recurse )
{
# Only interested in items that have a layout
if (Get-Layout $item)
{
$itemTemplate = [Sitecore.Data.Managers.TemplateManager]::GetTemplate($item)
if($itemTemplate.ID -eq "{HJUIUOOOL-4B42-4AD9-94F9-JKU78JJHH}")
{
$renderings = Get-Rendering -Item $item -FinalLayout
#Write-Host "$($item.FullPath) -($renderings)"
foreach ( $rendering in $renderings )
{
# Only update the rendering if we're not in "Report Only" mode
if (!$reportOnly)
{
if($rendering.Placeholder -eq "sideBar")
{
$rendering.Placeholder = $rendering.Placeholder -replace "sideBar", "jss-article-sidebar"
Set-Rendering -Item $item -Instance $rendering -FinalLayout:$useFinalLayout
Write-Host "$($item.FullPath) - Rendering $($rendering.UniqueID) - Placeholder: $("sideBar") --> $("jss-article-sidebar")"
}
if($rendering.Placeholder -eq "main")
{
$rendering.Placeholder = $rendering.Placeholder -replace "main", "jss-main"
Set-Rendering -Item $item -Instance $rendering -FinalLayout:$useFinalLayout
Write-Host "$($item.FullPath) - Rendering $($rendering.UniqueID) - Placeholder: $("main") --> $("jss-main")"
}
if($rendering.Placeholder -eq "header")
{
$rendering.Placeholder = $rendering.Placeholder -replace "header", "jss-header"
Set-Rendering -Item $item -Instance $rendering -FinalLayout:$useFinalLayout
Write-Host "$($item.FullPath) - Rendering $($rendering.UniqueID) - Placeholder: $("header") --> $("jss-header")"
}
if($rendering.Placeholder -eq "footer")
{
$rendering.Placeholder = $rendering.Placeholder -replace "footer", "jss-footer"
Set-Rendering -Item $item -Instance $rendering -FinalLayout:$useFinalLayout
Write-Host "$($item.FullPath) - Rendering $($rendering.UniqueID) - Placeholder: $("footer") --> $("jss-footer")"
}
}
}
}
}
}