Last active
October 9, 2020 16:35
-
-
Save fluxdigital/4f2383465decc171a9657d316a160a50 to your computer and use it in GitHub Desktop.
adds a captcha to any form within a folder that doesn't have a captcha already
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#add captcha to any form that doesn't have one already | |
$formsRootPath = "master:/sitecore/content/Wbsite1/forms/test" | |
$wffmFormTemplateId = "{FFB1DA32-2764-47DB-83B0-95B843546A7E}" | |
$wffmFieldTemplateId = "{C9E1BF85-800A-4247-A3A3-C3F5DFBFD6AA}" | |
$captchaFieldTemplateId = "{7FB270BE-FEFC-49C3-8CB4-947878C099E5}" | |
$captchaFieldName = "I'm not a Robot" | |
$captchFieldSortOrder = 1000 | |
$updatedCount = 0 | |
Write-Host "Getting List of Forms to add Captchas to from: $($formsRootPath)..." | |
$forms = Get-ChildItem -Path $formsRootPath -Recurse | Where-Object { $_.TemplateId -eq $wffmFormTemplateId } | |
foreach ($form in $forms) { | |
Write-Host "- checking form: $($form.Name) -" -ForegroundColor "yellow"; | |
#get captcha fields in form | |
$fields = Get-ChildItem -Item $form | |
$captchaFields = $fields | Where-Object { $_.TemplateId -eq $wffmFieldTemplateId -and $_.Fields["Field Link"].value -eq $captchaFieldTemplateId } | |
#get the last field and add 100 to its sort position in order to make sure the captcha is the last field | |
$lastField = $fields | Select-Object -Last 1 | |
if($lastField){ | |
$lastFieldOrder = $lastField.Fields['__Sortorder'].value | |
$captchFieldSortOrder = [int]$lastFieldOrder + 100 | |
#Write-Host "Last Field: $($lastField.Name) - $($lastField.Fields['__Sortorder'].value)" | |
#Write-Host "Captcha Sortorder: $($captchFieldSortOrder)" | |
} | |
#already a captcha on the form - don't add one | |
if ($captchaFields) { | |
Write-Host "captcha Exists, skipping form" -ForegroundColor "red" | |
} | |
#add a captcha | |
else { | |
Write-Host "adding captcha to form..." -ForegroundColor "green" | |
$captchaField = New-Item -Path $form.Paths.FullPath -Name $captchaFieldName -ItemType $wffmFieldTemplateId | |
$captchaField.Editing.BeginEdit() | |
$captchaField.Fields["Title"].value = $captchaFieldName | |
$captchaField.Fields["Field Link"].value = $captchaFieldTemplateId | |
$captchaField.Fields["Save"].value = "1" | |
$captchaField.Fields["Required"].value = "1" | |
$captchaField.Fields["Parameters"].value = "<CaptchaFontWarping>0</CaptchaFontWarping><BackgroundNoiseLevel>0</BackgroundNoiseLevel><LineNoiseLevel>0</LineNoiseLevel>" | |
$captchaField.Fields["Localized Parameters"].value = "<Text></Text>" | |
$captchaField.Fields["__Sortorder"].value = $captchFieldSortOrder | |
$captchaField.Editing.EndEdit() | |
Write-Host "captcha added with Sortorder: $($captchFieldSortOrder)" | |
$updatedCount ++ | |
} | |
} | |
Write-Host "-Script Complete: $($updatedCount) forms updated -" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment