This Sitecore PowerShell utility export a list of Pdfs for specified location
$FilePath = "master:" + (Get-Item .).Paths.Path
Import-Function -Name ConvertTo-Xlsx
$DownloadReport = 1
$resultObj = @()
$PdfList = Get-childItem -Path $FilePath -Recurse | Where-Object { $_.TemplateName -eq "Pdf"}
$ItemReferrerList = ""
if( $PdfList ){
$PdfList | ForEach-Object {
######Get-ItemReferrer Start
$ItemArray = @()
$ItemReferrer = Get-ItemReferrer -ID $_.ID | Where-Object { $_.Name -ne "Admin" -and $_.ItemPath -like "/sitecore/content/*" } | Select-Object -Property ID,Version
If( $ItemReferrer ){
$ItemReferrer | ForEach-Object {
$item = Get-Item -Path master: -ID $_.ID
$latestVersion = $item.Versions.Count
if( $_.ID -and $_.Version -eq $latestVersion ){
$ID = $_.ID
$ItemArray += $ID
}
}
If($ItemArray){
$ItemReferrerList = $ItemArray -join "|"
}
}
#######Get-ItemReferrer End
$MediaObj = @{
ID = $_.ID
Name = $_.Name
UpdatedDate = $_.__Updated
SitecoreItemPath = $_.ItemPath
ReferencePagesID = $ItemReferrerList
}
$resultObj += New-Object psobject -Property $MediaObj
}
#$resultObj | Format-Table ID, Name, SitecoreItemPath, UpdatedDate, ReferencePagesID
if($DownloadReport -eq 1){
[byte[]] $XLData = $resultObj | Select-Object -Property ID, Name, SitecoreItemPath, UpdatedDate, ReferencePagesID | ConvertTo-Xlsx
Out-Download -Name "PdfReport.xlsx" -InputObject $XLData
}
}else{
Write-Host "No Pdf at this location"
Show-Alert "No Pdf at this location"
}
Review this post to understand how to add PowerShell script in context menu
add-powershell-script-to-the-context-menu
Comments
Post a Comment