diff --git a/extension/Classes/Core/AbstractBuildForm.php b/extension/Classes/Core/AbstractBuildForm.php index f7fbd11077771dfe1c0aeaf2f139fc9bc7de11a6..07e6b20706eab533db93a898ae69f8487a5168b9 100644 --- a/extension/Classes/Core/AbstractBuildForm.php +++ b/extension/Classes/Core/AbstractBuildForm.php @@ -170,6 +170,11 @@ abstract class AbstractBuildForm { ]; $this->symbol[SYMBOL_DELETE] = "<span class='glyphicon " . GLYPH_ICON_DELETE . "'></span>"; + + $this->ttContentUid = $this->store->getVar(TYPO3_TT_CONTENT_UID, STORE_TYPO3); + $this->formId = $this->formSpec[F_ID]; + $this->recordId = $this->store->getVar(CLIENT_RECORD_ID, STORE_SIP . STORE_RECORD . STORE_TYPO3 . STORE_ZERO); + } abstract public function fillWrap(); @@ -620,7 +625,7 @@ abstract class AbstractBuildForm { */ public function getFormTagAttributes() { - $attribute['id'] = $this->getFormId(); + $attribute['id'] = $this->getFormId($this->ttContentUid, $this->formId, $this->recordId); $attribute['method'] = 'post'; $attribute['action'] = $this->getActionUrl(); $attribute['target'] = '_top'; @@ -638,14 +643,14 @@ abstract class AbstractBuildForm { * * @return string */ - public function getFormId() { - if ($this->formId === null) { -// $this->formId = uniqid('qfq-form-'); - $this->formId = 'qfq-form-' . $this->store->getVar(TYPO3_TT_CONTENT_UID, STORE_TYPO3) . '-' - . $this->formSpec[F_ID] . '-' . $this->store->getVar(CLIENT_RECORD_ID, STORE_SIP . STORE_RECORD . STORE_TYPO3 . STORE_ZERO); - } + public static function getFormId(string $ttContentUid, string $formId, string $recordId) { + // $this->formId = uniqid('qfq-form-'); +// $this->formId = 'qfq-form-' . $this->store->getVar(TYPO3_TT_CONTENT_UID, STORE_TYPO3) . '-' +// . $this->formSpec[F_ID] . '-' . $this->store->getVar(CLIENT_RECORD_ID, STORE_SIP . STORE_RECORD . STORE_TYPO3 . STORE_ZERO); + - return $this->formId; + //return $this->formId; + return 'qfq-form-' . $ttContentUid . '-' . $formId . '-' . $recordId; } /** @@ -906,9 +911,7 @@ abstract class AbstractBuildForm { // Typically: $htmlElementNameIdZero = true // After Saving a record, staying on the form, the FormElements on the Client are still known as '<feName>:0'. $htmlFormElementName = HelperFormElement::buildFormElementName($formElement, ($htmlElementNameIdZero) ? 0 : $recordId); - $formElement[FE_HTML_ID] = HelperFormElement::buildFormElementId($this->getFormId(), $formElement[FE_ID], - ($htmlElementNameIdZero) ? 0 : $recordId, - $formElement[FE_TG_INDEX]); + $formElement[FE_HTML_ID] = HelperFormElement::buildFormElementId($this->getFormId($this->ttContentUid, $this->formId, $this->recordId), $formElement[FE_ID], $formElement[FE_TG_INDEX]); $jsonElement = array(); $elementExtra = ''; diff --git a/extension/Classes/Core/BuildFormBootstrap.php b/extension/Classes/Core/BuildFormBootstrap.php index feb071a61f86b31cc1379483c3711adb38386918..dcd11ac46078ce15d14ea67f0ff45163680fbe11 100644 --- a/extension/Classes/Core/BuildFormBootstrap.php +++ b/extension/Classes/Core/BuildFormBootstrap.php @@ -448,7 +448,7 @@ class BuildFormBootstrap extends AbstractBuildForm { $class = Support::doAttribute('class', $class); $dataClassOnChange = Support::doAttribute('data-class-on-change', $buttonOnChangeClass); $tooltip = Support::doAttribute('title', $tooltip); - $formId = $this->getFormId(); + $formId = $this->getFormId($this->ttContentUid, $this->formSpec[F_ID], $this->recordId); return "<button id='$buttonHtmlId-$formId' type='button' $class $dataClassOnChange $tooltip $disabled>$element</button>"; } @@ -628,7 +628,7 @@ class BuildFormBootstrap extends AbstractBuildForm { $actionDelete = FILE_ACTION . '=' . FILE_ACTION_DELETE; # Replacing the attributes set via tail / javascript - $attribute["data-form-id"] = $this->getFormId(); + $attribute["data-form-id"] = $this->getFormId($this->ttContentUid, $this->formSpec[F_ID], $this->recordId); $attribute["data-tabs-id"] = $this->getTabId(); if (0 < ($recordId = $this->store->getVar(SIP_RECORD_ID, STORE_SIP))) { $attribute["data-delete-url"] = $this->createDeleteUrl($this->formSpec[F_FINAL_DELETE_FORM], $recordId); diff --git a/extension/Classes/Core/Helper/HelperFormElement.php b/extension/Classes/Core/Helper/HelperFormElement.php index e2a485b63559a18842c492cb1fc40f092dd5044a..1f2160ebb785c8d9c2ea817ec88de24fe3b4ecb4 100644 --- a/extension/Classes/Core/Helper/HelperFormElement.php +++ b/extension/Classes/Core/Helper/HelperFormElement.php @@ -8,6 +8,7 @@ namespace IMATHUZH\Qfq\Core\Helper; +use IMATHUZH\Qfq\Core\AbstractBuildForm; use IMATHUZH\Qfq\Core\Evaluate; use IMATHUZH\Qfq\Core\Store\Store; @@ -176,8 +177,8 @@ class HelperFormElement { * * @return string */ - public static function buildFormElementId($formId, $formElementId, $recordId, $formElementCopy) { - return "$formId" . HTML_DELIMITER_ID . "$formElementId" . HTML_DELIMITER_ID . "$recordId" . HTML_DELIMITER_ID . "$formElementCopy"; + public static function buildFormElementId($formId, $formElementId, $formElementCopy) { + return "$formId" . HTML_DELIMITER_ID . "$formElementId" . HTML_DELIMITER_ID . "$formElementCopy"; } @@ -196,7 +197,9 @@ class HelperFormElement { switch ($fe[FE_CLASS]) { case FE_CLASS_CONTAINER: - $feSpecNative[$key][FE_HTML_ID] = self::buildFormElementId($formId, $fe[FE_ID], $recordId, $formElementCopy); + self::$store = Store::getInstance(); + $ttContentUid = self::$store->getVar(TYPO3_TT_CONTENT_UID, STORE_TYPO3); + $feSpecNative[$key][FE_HTML_ID] = self::buildFormElementId(AbstractBuildForm::getFormId($ttContentUid, $formId, $recordId), $fe[FE_ID], $formElementCopy); break; default: break; diff --git a/extension/Classes/Core/QuickFormQuery.php b/extension/Classes/Core/QuickFormQuery.php index 34855b931a7e55ab27ea89beb3d3540be76a4495..a7e73b6f3d35abeb0866183579494ac57eb2cbdf 100644 --- a/extension/Classes/Core/QuickFormQuery.php +++ b/extension/Classes/Core/QuickFormQuery.php @@ -385,7 +385,9 @@ class QuickFormQuery { } if ($this->store->getVar(TYPO3_DEBUG_SHOW_BODY_TEXT, STORE_TYPO3) === 'yes') { - $htmlId = HelperFormElement::buildFormElementId($this->formSpec[F_ID], 0, 0, 0); + $ttContentUid = $this->store->getVar(TYPO3_TT_CONTENT_UID, STORE_TYPO3); + + $htmlId = HelperFormElement::buildFormElementId($ttContentUid, 0, 0); $html .= Support::doTooltip($htmlId . HTML_ID_EXTENSION_TOOLTIP, $this->t3data[T3DATA_BODYTEXT]); }