What is Sitecore Powershell Extensions(SPE)?
It is Sitecore accelerator which can drastically increase the speed to develop a Sitecore solution and helps you write script in powerful way. It provides a command line and scripting environment for automating Sitecore tasks.
Is it Licensed tool OR free to download?
If you have Sitecore license, these extensions are free of cost.
How to install it?
Installation
- For non-containerised environment click here
- For containerised environment click here
You may download it from Sitecore downloads as well.
Sitecore Powershell Extension Interface |
Why you need it?
Rather writing everything in .Net code, Sitecore has provided provision to write powershell script which can work same way(as like C# code) and help building reports and automating tasks within Content Editor.
Example of Powershell script
Parent Script:
Try
{
$currentItem = Get-Item .
Import-Function Show-Page-Dialog
$resultItem = Show-Page-Dialog $currentItem
if($resultItem -eq "cancel"){
Return Close-Window
}
if ($resultItem -eq $null){
Write-Error -Message "Unable to open dialog as item is not found." -ErrorAction Stop
}
if($resultItem.Fields["Taxonomy"] -eq $null){
Write-Error -Message "Unable to open dialog as taxonomy is not found." -ErrorAction Stop
}
$taxonomyField = $resultItem.Fields["Taxonomy"]
if ($taxonomyField -eq $null -Or [string]::IsNullOrEmpty($taxonomyField.Value)){
Show-Alert -Title "Please choose the correct taxonomy to proceed further."
}
}
Catch
{
$errorInfo=$Error[0]
Write-Log -Log Error $errorInfo
Show-Alert "Error occured. Watch logs for more details."
Close-Window
}
Child Script:
function Show-Page-Dialog
{
#$currentItem is being populated from calling function.
[CmdletBinding()]
param(
[Parameter(Mandatory = $true, Position = 0)]
[Item]$currentItem
)
if($currentItem -eq $null)
{
Write-Error "Item cannot be null."
}
#Code to create a dialog window with given information
$props = @{
Title = "Taxonomy Detail Page Dialog"
Description = "Select a Taxonomy"
ShowHints = $true
Width = 450
Height = 450
Parameters = @(
@{
Name="selectedTaxonomy";
Title="Choose the correct taxonomy";
Source="/sitecore/taxonomy" #Sitecore Path from where droptree items should be populated
Editor="droptree" #Sitecore field which will appear on dialog window
Tooltip="Select a taxonomy"
}
)
Validator = {
$selectedTaxonomyValue = $variables.selectedTaxonomy.Value
if($selectedTaxonomyValue.TemplateName -ne "Taxonomy")
{
$variables.selectedTaxonomy.Error = "Select the correct taxonomy term."
}
}
}
$result = Read-Variable @props
if($result -eq "cancel"){
Return $result
}
Return Get-Item -Path $selectedTaxonomy.Paths.FullPath -Language "en-US"
}
For more details, you may refer https://doc.sitecorepowershell.com/
Comments
Post a Comment