From 39baf41a719b7f4663eeba35a23844b0af77652e Mon Sep 17 00:00:00 2001 From: zhoujl <zhoujie.li@math.uzh.ch> Date: Thu, 7 Dec 2023 11:31:17 +0100 Subject: [PATCH] F4026: Implement to detect and log the FormElement Id which triggers a query in sqllog. refs #4026 --- extension/Classes/Core/AbstractBuildForm.php | 4 ++++ extension/Classes/Core/Database/Database.php | 4 ++++ extension/Classes/Core/Form/FormAction.php | 2 ++ extension/Classes/Core/Save.php | 12 ++++++++++++ 4 files changed, 22 insertions(+) diff --git a/extension/Classes/Core/AbstractBuildForm.php b/extension/Classes/Core/AbstractBuildForm.php index 074a1b500..8e113ae74 100644 --- a/extension/Classes/Core/AbstractBuildForm.php +++ b/extension/Classes/Core/AbstractBuildForm.php @@ -1023,6 +1023,7 @@ abstract class AbstractBuildForm { // Log / Debug: Last FormElement has been processed. $this->store->setVar(SYSTEM_FORM_ELEMENT, '', STORE_SYSTEM); + $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, 0, STORE_SYSTEM); return $html; } @@ -4282,6 +4283,9 @@ EOT; } } + $this->store->setVar(SYSTEM_FORM_ELEMENT, '', STORE_SYSTEM); + $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, 0, STORE_SYSTEM); + return $tgMax; } diff --git a/extension/Classes/Core/Database/Database.php b/extension/Classes/Core/Database/Database.php index d22f9dcb3..1c8c059fb 100644 --- a/extension/Classes/Core/Database/Database.php +++ b/extension/Classes/Core/Database/Database.php @@ -615,11 +615,15 @@ class Database { ['level', SYSTEM_REPORT_FULL_LEVEL, STORE_SYSTEM], ['form', SIP_FORM, STORE_SIP], ['fslId', EXTRA_FORM_SUBMIT_LOG_ID, STORE_EXTRA], + ['feId', SYSTEM_FORM_ELEMENT_ID, STORE_SYSTEM] ]; $t3msg = ''; foreach ($logArr as $logItem) { $value = $this->store->getVar($logItem[1], $logItem[2]); + if($logItem[0] == 'feId' && empty($value)) { + $value='all'; + } if (!empty($value)) { $t3msg .= $logItem[0] . ":" . $value . ","; } diff --git a/extension/Classes/Core/Form/FormAction.php b/extension/Classes/Core/Form/FormAction.php index 353844d37..53444f597 100644 --- a/extension/Classes/Core/Form/FormAction.php +++ b/extension/Classes/Core/Form/FormAction.php @@ -228,6 +228,8 @@ class FormAction { break; } } + $this->store->setVar(SYSTEM_FORM_ELEMENT, '', STORE_SYSTEM); + $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, 0, STORE_SYSTEM); return $rc; } diff --git a/extension/Classes/Core/Save.php b/extension/Classes/Core/Save.php index 4bc1a8ebc..4b5ab83f5 100644 --- a/extension/Classes/Core/Save.php +++ b/extension/Classes/Core/Save.php @@ -644,9 +644,14 @@ class Save { $this->store->setVar(SYSTEM_FORM_ELEMENT, Logger::formatFormElementName($fe), STORE_SYSTEM); $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, $fe[FE_ID], STORE_SYSTEM); + $this->formAction->doSqlBeforeSlaveAfter($fe, $recordId, false); $this->typeAheadDoTagGlue($fe); } + + $this->store->setVar(SYSTEM_FORM_ELEMENT, '', STORE_SYSTEM); + $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, 0, STORE_SYSTEM); + } /** @@ -910,6 +915,10 @@ class Save { } } + $this->store->setVar(SYSTEM_FORM_ELEMENT, '', STORE_SYSTEM); + $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, 0, STORE_SYSTEM); + + // Clean up HelperFile::chdir($cwd); @@ -1096,6 +1105,9 @@ class Save { } } + $this->store->setVar(SYSTEM_FORM_ELEMENT, '', STORE_SYSTEM); + $this->store->setVar(SYSTEM_FORM_ELEMENT_ID, 0, STORE_SYSTEM); + // Save 'allRequiredGiven in STORE_VAR $this->store::setVar(VAR_ALL_REQUIRED_GIVEN, $flagAllRequiredGiven, STORE_VAR, true); } -- GitLab