From f4699d420b5b3c970fad3d56b22682895e9a3df9 Mon Sep 17 00:00:00 2001
From: enured <enis.nuredini@uzh.ch>
Date: Thu, 16 Feb 2023 21:08:29 +0100
Subject: [PATCH] B15521: Changed equal operator for identical check. This way
 string needs to be empty and default given to trigger it. It corrects loading
 behaviour for select, radio and checkboxes.   refs #15521

---
 extension/Classes/Core/Evaluate.php            | 2 +-
 extension/Classes/Core/Store/FillStoreForm.php | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/extension/Classes/Core/Evaluate.php b/extension/Classes/Core/Evaluate.php
index cd346d84a..86349f265 100644
--- a/extension/Classes/Core/Evaluate.php
+++ b/extension/Classes/Core/Evaluate.php
@@ -411,7 +411,7 @@ class Evaluate {
 
         $value = OnString::escape($escapeTypes, $value, $rcFlagWipe);
 
-        if (($foundInStore == '' || $value == '') && $arrToken[VAR_INDEX_DEFAULT] != '') {
+        if (($foundInStore == '' || $value === '') && $arrToken[VAR_INDEX_DEFAULT] != '') {
             $foundInStore = TOKEN_FOUND_AS_DEFAULT;
             $value = str_replace('\\:', ':', $arrToken[VAR_INDEX_DEFAULT]);
         }
diff --git a/extension/Classes/Core/Store/FillStoreForm.php b/extension/Classes/Core/Store/FillStoreForm.php
index 04538b942..3dc13e177 100644
--- a/extension/Classes/Core/Store/FillStoreForm.php
+++ b/extension/Classes/Core/Store/FillStoreForm.php
@@ -331,7 +331,7 @@ class FillStoreForm {
 
                     // empty select, radio and checkbox elements used to be 0 for correct handling
                     if(($formElement[FE_TYPE] === FE_TYPE_SELECT || $formElement[FE_TYPE] === FE_TYPE_RADIO || $formElement[FE_TYPE] === FE_TYPE_CHECKBOX) && $val == '') {
-                        $newValues[$formElement[FE_NAME]] = '0';
+                        $newValues[$formElement[FE_NAME]] = 0;
                     }
                 }
             }
-- 
GitLab