Skip to content

Instantly share code, notes, and snippets.

@fluxdigital
Last active August 14, 2019 21:10
Show Gist options
  • Save fluxdigital/b0a7c6928f6aded4067d9e9967de7a52 to your computer and use it in GitHub Desktop.
Save fluxdigital/b0a7c6928f6aded4067d9e9967de7a52 to your computer and use it in GitHub Desktop.
Creates a component and folder and set insert options for standard values on the folder
function Scaffold-Component-And-Folder([string]$componentName, [string]$componentPath){
###create component template###
$componentItem = New-Item -Path $componentPath -Name $componentName -ItemType "/sitecore/templates/System/Templates/Template"
$componentItem.Editing.BeginEdit()
#set default component icon
$componentItem["__Icon"] = "/~/icon/software/32x32/component.png";
$componentItem.Editing.EndEdit()
Write-Host "Component Created: " $componentItem.Name
###create component folder template###
$componentFolderItem = New-Item -Path $componentPath -Name "$componentName Folder" -ItemType "/sitecore/templates/System/Templates/Template"
$componentFolderItem.Editing.BeginEdit()
#set default folder icon
$componentFolderItem["__Icon"] = "/~/icon/applicationsv2/32x32/folder_cubes.png";
#add standard values
$standardvalues = New-Item -Parent $componentFolderItem -Name "__Standard Values" -type $componentFolderItem.ID
$componentFolderItem["__Standard values"] = $standardvalues.ID;
$componentFolderItem.Editing.EndEdit()
#add insert options
$insertOptions = New-Object System.Collections.ArrayList
$insertOptions.Add($componentItem.ID)
$insertOptions.Add($componentFolderItem.ID)
$insertOptionsToAdd = [string]::Join("|",$insertOptions.ToArray())
$standardvalues.Editing.BeginEdit()
$standardvalues["__Masters"] = $insertOptionsToAdd;
$standardvalues.Editing.EndEdit()
Write-Host "Component Folder Created & Configured: " $componentFolderItem.Name
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment