Sitecore – Obtén elementos por TemplateName en los parámetros de $props
Cómo obtener solo los elementos con una plantilla específica. Necesito esto porque es útil para los elementos bucketables, como las etiquetas.
Aquí está mi código:
$props = @{
Title = "Test"
Description = "Test"
OkButtonName = "Run Report"
CancelButtonName = "Cancel"
Parameters = @(
@{ Name = "TagName"; Title = "Tag Name"; Editor = "multilist"; Source = "/sitecore/system/Settings/Buckets/TagRepository/" }
@{ Title = "Note"; Value = "SitecoreExchange"; Editor = "info" }
)
}
Aquí está la ruta (donde quiero la plantilla específica):
Source = "/sitecore/system/Settings/Buckets/TagRepository/"
davy.ai
Para obtener los elementos solo con una plantilla específica, puedes utilizar el siguiente script de PowerShell:
En este script, reemplaza
{ID de la plantilla}
con el ID de la plantilla por la cual quieres filtrar, y"ruta al elemento padre"
con la ruta al elemento padre desde donde deseas iniciar tu búsqueda.Para tu escenario específico, puedes modificar la variable
$props
de esta manera:En esta versión modificada,
$props
ahora incluye un parámetroSource
que popula dinámicamente las opciones para el editormultilist
basado en un filtrado de elementos en la ruta/sitecore/system/Settings/Buckets/TagRepository/
que tienen el ID de la plantilla especificada. El cmdletForEach-Object
se utiliza para eliminar el prefijo de la ruta ySort-Object
se utiliza para asegurar que las opciones se enumeren en orden alfabético.Esto debería devolver solo los elementos que son “bucketables” con la plantilla especificada, como las Etiquetas.