Skip to content

Instantly share code, notes, and snippets.

@murven
Last active April 6, 2016 22:10
Show Gist options
  • Save murven/b02dd4d3b596fa989e1c40cac3e4696a to your computer and use it in GitHub Desktop.
Save murven/b02dd4d3b596fa989e1c40cac3e4696a to your computer and use it in GitHub Desktop.
Sitecore PowerShell Script to show renderings per content item
$targetFileName = 'c:\temp\ItemRenderings.txt'
function Show-Rendering
{
param ($renderingItem)
$renderingName = $renderingItem.Name
$renderingId = $renderingItem.Id
$placeholderName = $renderingItem.Placeholder
"Rendering Item: $renderingId | $renderingName | $placeholderName" | Out-File $targetFileName -Append
}
$devices = [Sitecore.Configuration.Factory]::GetDatabase("master").Resources.Devices.GetAll()
foreach($targetItem in (Get-ChildItem master:/sitecore/content -Recurse))
{
"***************************************************" | Out-File $targetFileName -Append
$targetItemName = $targetItem.Name
$targetItemId = $targetItem.Id
"Item: $targetItemId | $targetItemName" | Out-File $targetFileName -Append
$standardValues = $targetItem.Template.StandardValues
#"Standard Values:" | Out-File $targetFileName -Append
$renderingsXml = $targetItem.__renderings
if($standardValues)
{
"Standard Value Renderings:" | Out-File $targetFileName -Append
foreach ($deviceItem in $devices)
{
#$standardValues.Visualization.GetRenderings($deviceItem, $False) | Out-File $targetFileName -Append
foreach($rendering in $standardValues.Visualization.GetRenderings($deviceItem, $False))
{
Show-Rendering($rendering.RenderingItem)
}
}
}
"Item Renderings:" | Out-File $targetFileName -Append
foreach ($device in [Sitecore.Layouts.LayoutDefinition]::Parse($renderingsXML).Devices)
{
$deviceId = $device.ID
$deviceItem = Get-Item -Path master: -Query "fast:/sitecore//*[@@id='$deviceId']"
#$device.Renderings | Out-File $targetFileName -Append
foreach($rendering in $device.Renderings)
{
$renderingID = $rendering.UniqueId
$renderingDefinition = $device.GetRenderingByUniqueId($renderingID)
foreach($dynamicProperty in $renderingDefinition.DynamicProperties)
{
$propertyName = $dynamicProperty.ToString()
$text = $dynamicProperty.Value
if($propertyName -eq 'id')
{
$renderingItem = Get-Item -Path master: -Query "fast:/sitecore//*[@@id='$text']"
Show-Rendering($renderingItem)
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment