From ac261af24cbea48eabc7a2221965f07323febf1d Mon Sep 17 00:00:00 2001 From: Glen Ranson Date: Tue, 31 Aug 2021 11:43:41 +1200 Subject: [PATCH] Adding session get fix --- src/Extension/EditableFormField_InitialVisibility.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Extension/EditableFormField_InitialVisibility.php b/src/Extension/EditableFormField_InitialVisibility.php index 68114f6..bf755e0 100644 --- a/src/Extension/EditableFormField_InitialVisibility.php +++ b/src/Extension/EditableFormField_InitialVisibility.php @@ -3,7 +3,8 @@ namespace DNADesign\UserFormExtras\Extension; use SilverStripe\Core\Extension; -use SilverStripe\Control\Session; +use SilverStripe\Control\HTTPRequest; +use SilverStripe\Core\Injector\Injector; class EditableFormField_InitialVisibility extends Extension { @@ -21,9 +22,11 @@ public function afterUpdateFormField(&$field) foreach ($rules as $rule) { $conditionFieldName = $rule->ConditionField()->Name; - // Can only get the data from the session - // Has we may get redirected at this stage and the request will be empty - $value = Session::get('FormInfo.BetterUserForm_Form.data.'.$conditionFieldName); + + // Applying fix provided @Ashpik https://github.com/dnadesign/userforms-extra/issues/2 + $request = Injector::inst()->get(HTTPRequest::class); + $session = $request->getSession(); + $value = $session->get('FormInfo.BetterUserForm_Form.data.' . $conditionFieldName); // If field has a rules that would reveal it if ($rule->Display == 'Show' && $value) {