35 'renderType' =>
'tcaDescription',
48 $table = $this->data[
'tableName'];
49 $row = $this->data[
'databaseRow'];
50 $fieldName = $this->data[
'fieldName'];
51 $parameterArray = $this->data[
'parameterArray'];
52 $flexFormDataStructureArray = $this->data[
'flexFormDataStructureArray'];
53 $flexFormRowData = $this->data[
'flexFormRowData'];
57 $resultArray[
'requireJsModules'][] =
'TYPO3/CMS/Backend/Tabs';
59 $domIdPrefix =
'DTM-' . GeneralUtility::shortMD5($this->data[
'parameterArray'][
'itemFormElName']);
62 foreach ($flexFormDataStructureArray[
'sheets'] as $sheetName => $sheetDataStructure) {
63 $flexFormRowSheetDataSubPart = $flexFormRowData[
'data'][$sheetName][
'lDEF'] ?: [];
65 if (!is_array($sheetDataStructure[
'ROOT'][
'el'])) {
66 $resultArray[
'html'] .= LF .
'No Data Structure ERROR: No [\'ROOT\'][\'el\'] found for sheet "' . $sheetName .
'".';
74 $dsPointerFields = GeneralUtility::trimExplode(
',',
$GLOBALS[
'TCA'][$table][
'columns'][$fieldName][
'config'][
'ds_pointerField'],
true);
75 $parameterArray[
'_cshKey'] = $table .
'.' . $fieldName;
76 foreach ($dsPointerFields as $key) {
77 if (is_string($row[$key]) && $row[$key] !==
'') {
78 $parameterArray[
'_cshKey'] .=
'.' . $row[$key];
79 } elseif (is_array($row[$key]) && isset($row[$key][0]) && is_string($row[$key][0]) && $row[$key][0] !==
'') {
80 $parameterArray[
'_cshKey'] .=
'.' . $row[$key][0];
85 $options[
'flexFormDataStructureArray'] = $sheetDataStructure[
'ROOT'][
'el'];
86 $options[
'flexFormRowData'] = $flexFormRowSheetDataSubPart;
87 $options[
'flexFormSheetName'] = $sheetName;
88 $options[
'flexFormFormPrefix'] =
'[data][' . $sheetName .
'][lDEF]';
89 $options[
'parameterArray'] = $parameterArray;
92 $options[
'tabAndInlineStack'][] = [
94 $domIdPrefix .
'-' . $tabCounter,
96 $options[
'renderType'] =
'flexFormElementContainer';
97 $childReturn = $this->nodeFactory->create($options)->render();
99 if ($childReturn[
'html'] !==
'') {
101 'label' => !empty(trim($sheetDataStructure[
'ROOT'][
'sheetTitle'])) ? $languageService->sL(trim($sheetDataStructure[
'ROOT'][
'sheetTitle'])) : $sheetName,
102 'content' => $childReturn[
'html'],
103 'description' => trim($sheetDataStructure[
'ROOT'][
'sheetDescription']) ? $languageService->sL(trim($sheetDataStructure[
'ROOT'][
'sheetDescription'])) :
'',
104 'linkTitle' => trim($sheetDataStructure[
'ROOT'][
'sheetShortDescr']) ? $languageService->sL(trim($sheetDataStructure[
'ROOT'][
'sheetShortDescr'])) :
'',
111 $resultArray[
'html'] =
'<div>' . $fieldInformationResult[
'html'] .
'</div>';
114 $resultArray[
'html'] .= $this->
renderTabMenu($tabElements, $domIdPrefix);