制作Sitecore PowerShell脚本,用于获取输入

9rygscc1  于 2023-06-23  发布在  Shell
关注(0)|答案(1)|浏览(104)

我必须制作一个界面,从3个下拉列表中选择项目,并获取Sitecore项目列表,这些项目被标记到从下拉列表中选择的项目,我是Sitecore的初学者Sitecore PowerShell是否可以实现这一切,我们是否可以制作一个界面,通过使用Sitecore PowerShell来选择输入并在脚本中使用该输入。我正在使用Sitecore 10.1

c8ib6hqw

c8ib6hqw1#

我不确定你到底在找什么,但这将允许某人选择三个项目,并写入控制台,如果有任何项目引用这三个。即使它不是您所需要的,它也演示了如何从PowerShell的下拉列表中选择三个项目,并将一些业务逻辑应用到这些选择中。

$props = @{
    Parameters = @(
        @{Editor="droptree"; Name="selectedItemOne"; Title="Select first item"; }
        @{Editor="droptree"; Name="selectedItemTwo"; Title="Select second item"; }
        @{Editor="droptree"; Name="selectedItemThree"; Title="Select third item"; }
    )
    Title = "See what items are linked to three other items"
    Description = "Select three items to see what items are linked to all of them."
    Width = 300
    Height = 300
    ShowHints = $true
}

Read-Variable @props

$itemOneReferences = Get-ItemReferrer -Item $selectedItemOne
$itemTwoReferences = Get-ItemReferrer -Item $selectedItemTwo
$itemThreeReferences = Get-ItemReferrer -Item $selectedItemThree

if($itemOneReferences -eq $null) {
    $itemOneReferences = @()
}
elseif ($itemOneReferences.GetType().Name -ne 'Object[]') {
    $itemOneReferences = , $itemOneReferences
}

if($itemTwoReferences -eq $null) {
    $itemTwoReferences = @()
}
elseif ($itemTwoReferences.GetType().Name -ne 'Object[]') {
    $itemTwoReferences = , $itemTwoReferences
}

if($itemThreeReferences -eq $null) {
    $itemThreeReferences = @()
}
elseif ($itemThreeReferences.GetType().Name -ne 'Object[]') {
    $itemThreeReferences = , $itemThreeReferences
}

$intersection = $itemOneReferences | Where-Object {$itemTwoReferences.ID -contains $_.ID} | Where-Object {$itemThreeReferences.ID -contains $_.ID}

$intersection | Show-ListView -Property DisplayName, ProviderPath, TemplateName

相关问题