- Published on
Uso de Rendering Variants por Componente
- Authors
- Name
- Francisco Caicedo Narvaez
- @_Francisco_CN
Este script hecho en PowerShell genera un reporte que muestra el uso de rendering variants por componente en un proyecto SXA Sitecore. Lo encuentro muy útil ya que identifica las rendering variants con mayor uso en tu proyecto, como también las que no han sido usadas en absoluto.
Este script puede ser útil durante rutinas de mantenimiento y limpieza, ya que es fácil identificar lo que puede ser seguro eliminar sin perjudicar el funcionamiento del proyecto.
<#
.SYNOPSIS
Count of references for each rendering variant definition.
Results include only Rendering Definitions under Rendering Variants.
#>
$props = @{
Title = "Available Rendering Variants Definition"
Description = "Count of references for each rendering variant definition. Results include only Rendering Definitions under Rendering Variants."
OkButtonName = "Run Report"
CancelButtonName = "Cancel"
Parameters = @(
@{ Name = "rootItem"; Title = "Search Root"; Editor = "droptree"; Source = "/sitecore/content" }
)
}
$result = Read-Variable @props
if($result -ne "ok") {
Close-Window
Exit
}
Import-Function Render-ReportField
filter IsRenderingDefinition {
# Template: /sitecore/templates/Foundation/Experience Accelerator/Rendering Variants/Variant Definition
$renderingIds = @("{FB3E3034-33F8-4CE8-BE98-DD05010F4C22}")
if(($renderingIds -contains $_.TemplateID)) { $_; return }
}
$database = "master"
# Root location
$renderingsRootItem = Get-Item -Path "$($database):$($rootItem.ID)"
$items = $renderingsRootItem.Axes.GetDescendants() | Initialize-Item | IsRenderingDefinition
$reportItems = @()
foreach($item in $items) {
$count = 0
$referrers = Get-ItemReferrer -Item $item
if ($referrers -ne $null) {
$count = $referrers.Count
}
$reportItem = [PSCustomObject]@{
"Icon" = $item."__Icon"
"Name"=$item.Name
"UsageCount"=$count
"ItemPath" = $item.ItemPath
"TemplateName" = $item.TemplateName
"Controller" = $item.Controller
}
$reportItems += $reportItem
}
$reportProps = @{
Property = @(
"Icon",
@{Name="Rendering Definition Name"; Expression={$_.Name}},
@{Name="Number of usages"; Expression={$_.UsageCount}},
"ItemPath",
@{Label="Rendering Type"; Expression={$_.TemplateName}}
)
Title = "Available Rendering Variants Definition"
InfoTitle = "Available Rendering Variants Definition"
InfoDescription = "Count of references for each rendering variant definition. Results include only Rendering Definitions under Rendering Variants."
}
$reportItems |
Sort-Object UsageCount -Descending |
Show-ListView @reportProps
Close-Window
Cuando ejecutamos el script, debemos escoger el punto de inicio donde empieza la búsqueda. Únicamente, items usando la plantilla /Sitecore/Templates/Foundation/Experience Accelerator/Rendering Variants/Variant Definition serán filtrados.
El reporte se puede generar para obtener el uso de todas las rendering variants o por componente para obtener resultados más específicos.

El reporte mostrara una tabla con el nombre de la rendering variant, el número de usos, y el path de la rendering variant del componente.

El anterior reporte muestra los resultados obtenidos después de escoger el componente Cards, mostrando las rendering variants del componente.