data['renderData']['fieldControlOptions']; $title = $options['title'] ?? 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.edit'; $parameterArray = $this->data['parameterArray']; $itemName = $parameterArray['itemFormElName']; $windowOpenParameters = $options['windowOpenParameters'] ?? 'height=800,width=900,status=0,menubar=0,scrollbars=1'; $flexFormDataStructureIdentifier = $this->data['flexFormDataStructureIdentifier'] ?? ''; $flexFormDataStructurePath = ''; if (!empty($flexFormDataStructureIdentifier)) { if (empty($this->data['flexFormContainerName'])) { // simple flex form element $flexFormDataStructurePath = 'sheets/' . $this->data['flexFormSheetName'] . '/ROOT/el/' . $this->data['flexFormFieldName'] . '/config'; } else { // flex form section container element $flexFormDataStructurePath = 'sheets/' . $this->data['flexFormSheetName'] . '/ROOT/el/' . $this->data['flexFormFieldName'] . '/el/' . $this->data['flexFormContainerName'] . '/el/' . $this->data['flexFormContainerFieldName'] . '/config'; } } $urlParameters = array_merge( [ 'table' => $this->data['tableName'], 'field' => $this->data['fieldName'], 'formName' => 'editform', 'flexFormDataStructureIdentifier' => $flexFormDataStructureIdentifier, 'flexFormDataStructurePath' => $flexFormDataStructurePath, 'hmac' => $this->hashService->hmac('editform' . $itemName, 'wizard_js'), ], $this->forwardOnFieldChangeQueryParams($parameterArray['fieldChangeFunc'] ?? []) ); $url = (string)$this->uriBuilder->buildUriFromRoute('wizard_edit', ['P' => $urlParameters]); $id = StringUtility::getUniqueId('t3js-formengine-fieldcontrol-'); return [ 'iconIdentifier' => 'actions-open', 'title' => $title, 'linkAttributes' => [ 'id' => $id, 'href' => $url, 'data-element' => $itemName, 'data-window-parameters' => $windowOpenParameters, ], 'javaScriptModules' => [ JavaScriptModuleInstruction::create('@typo3/backend/form-engine/field-control/edit-popup.js')->instance('#' . $id), ], ]; } }