35 'renderType' =>
'tcaDescription',
46 $table = $this->data[
'tableName'];
47 $row = $this->data[
'databaseRow'];
48 $fieldName = $this->data[
'fieldName'];
49 $parameterArray = $this->data[
'parameterArray'];
50 $flexFormDataStructureArray = $this->data[
'flexFormDataStructureArray'];
51 $flexFormRowData = $this->data[
'flexFormRowData'];
55 $flexFormSheetNames = array_keys($flexFormDataStructureArray[
'sheets']);
56 $sheetName = array_pop($flexFormSheetNames);
57 $flexFormRowDataSubPart = $flexFormRowData[
'data'][$sheetName][
'lDEF'] ?: [];
59 unset($flexFormDataStructureArray[
'meta']);
61 if (!is_array($flexFormDataStructureArray[
'sheets'][$sheetName][
'ROOT'][
'el'])) {
62 $resultArray[
'html'] =
'Data Structure ERROR: No [\'ROOT\'][\'el\'] element found in flex form definition.';
68 $dsPointerFields = GeneralUtility::trimExplode(
',',
$GLOBALS[
'TCA'][$table][
'columns'][$fieldName][
'config'][
'ds_pointerField'],
true);
69 $parameterArray[
'_cshKey'] = $table .
'.' . $fieldName;
70 foreach ($dsPointerFields as $key) {
71 if (is_string($row[$key]) && $row[$key] !==
'') {
72 $parameterArray[
'_cshKey'] .=
'.' . $row[$key];
73 } elseif (is_array($row[$key]) && isset($row[$key][0]) && is_string($row[$key][0]) && $row[$key][0] !==
'') {
74 $parameterArray[
'_cshKey'] .=
'.' . $row[$key][0];
79 $options[
'flexFormDataStructureArray'] = $flexFormDataStructureArray[
'sheets'][$sheetName][
'ROOT'][
'el'];
80 $options[
'flexFormRowData'] = $flexFormRowDataSubPart;
81 $options[
'flexFormSheetName'] = $sheetName;
82 $options[
'flexFormFormPrefix'] =
'[data][' . $sheetName .
'][lDEF]';
83 $options[
'parameterArray'] = $parameterArray;
88 $resultArray[
'html'] =
'<div>' . $fieldInformationResult[
'html'] .
'</div>';
91 $options[
'renderType'] =
'flexFormElementContainer';
92 $childResult = $this->nodeFactory->create($options)->render();