2 namespace TYPO3\CMS\Backend\Form\Container;
37 $table = $this->data[
'tableName'];
38 $row = $this->data[
'databaseRow'];
39 $fieldName = $this->data[
'fieldName'];
40 $parameterArray = $this->data[
'parameterArray'];
41 $flexFormDataStructureArray = $this->data[
'flexFormDataStructureArray'];
42 $flexFormRowData = $this->data[
'flexFormRowData'];
45 $resultArray[
'requireJsModules'][] =
'TYPO3/CMS/Backend/Tabs';
49 $tabElements = array();
50 foreach ($flexFormDataStructureArray[
'sheets'] as $sheetName => $sheetDataStructure) {
51 $flexFormRowSheetDataSubPart = $flexFormRowData[
'data'][$sheetName][
'lDEF'] ?: [];
53 if (!is_array($sheetDataStructure[
'ROOT'][
'el'])) {
54 $resultArray[
'html'] .= LF .
'No Data Structure ERROR: No [\'ROOT\'][\'el\'] found for sheet "' . $sheetName .
'".';
63 $parameterArray[
'_cshKey'] = $table .
'.' . $fieldName;
64 foreach ($dsPointerFields as $key) {
65 if ((
string)$row[$key] !==
'') {
66 $parameterArray[
'_cshKey'] .=
'.' . $row[$key];
71 $options[
'flexFormDataStructureArray'] = $sheetDataStructure[
'ROOT'][
'el'];
72 $options[
'flexFormRowData'] = $flexFormRowSheetDataSubPart;
73 $options[
'flexFormFormPrefix'] =
'[data][' . $sheetName .
'][lDEF]';
74 $options[
'parameterArray'] = $parameterArray;
77 $options[
'tabAndInlineStack'][] = array(
79 $domIdPrefix .
'-' . $tabCounter,
81 $options[
'renderType'] =
'flexFormElementContainer';
82 $childReturn = $this->nodeFactory->create($options)->render();
84 $tabElements[] = array(
85 'label' => !empty(trim($sheetDataStructure[
'ROOT'][
'sheetTitle'])) ? $languageService->sL(trim($sheetDataStructure[
'ROOT'][
'sheetTitle'])) : $sheetName,
86 'content' => $childReturn[
'html'],
87 'description' => trim($sheetDataStructure[
'ROOT'][
'sheetDescription']) ? $languageService->sL(trim($sheetDataStructure[
'ROOT'][
'sheetDescription'])) :
'',
88 'linkTitle' => trim($sheetDataStructure[
'ROOT'][
'sheetShortDescr']) ? $languageService->sL(trim($sheetDataStructure[
'ROOT'][
'sheetShortDescr'])) :
'',
91 $childReturn[
'html'] =
'';
95 $resultArray[
'html'] = $this->
renderTabMenu($tabElements, $domIdPrefix);