diff --git a/typo3/sysext/backend/Classes/Form/Element/InlineElement.php b/typo3/sysext/backend/Classes/Form/Element/InlineElement.php index 0206783f5b8824fa9f27e90398f1c7456ce08a8d..c02846bf5cbd87ded692319966bb3f4dac3d227f 100644 --- a/typo3/sysext/backend/Classes/Form/Element/InlineElement.php +++ b/typo3/sysext/backend/Classes/Form/Element/InlineElement.php @@ -513,15 +513,35 @@ class InlineElement { $isOnSymmetricSide = RelationHandler::isOnSymmetricSide($parentUid, $config, $rec); $hasForeignLabel = !$isOnSymmetricSide && $config['foreign_label'] ? TRUE : FALSE; $hasSymmetricLabel = $isOnSymmetricSide && $config['symmetric_label'] ? TRUE : FALSE; + // Get the record title/label for a record: - // render using a self-defined user function - if ($GLOBALS['TCA'][$foreign_table]['ctrl']['label_userFunc']) { + // Try using a self-defined user function only for formatted labels + if (isset($GLOBALS['TCA'][$foreign_table]['ctrl']['formattedLabel_userFunc'])) { + $params = array( + 'table' => $foreign_table, + 'row' => $rec, + 'title' => '', + 'isOnSymmetricSide' => $isOnSymmetricSide, + 'options' => isset($GLOBALS['TCA'][$foreign_table]['ctrl']['formattedLabel_userFunc_options']) + ? $GLOBALS['TCA'][$foreign_table]['ctrl']['formattedLabel_userFunc_options'] + : array(), + 'parent' => array( + 'uid' => $parentUid, + 'config' => $config + ) + ); + // callUserFunction requires a third parameter, but we don't want to give $this as reference! + $null = NULL; + GeneralUtility::callUserFunction($GLOBALS['TCA'][$foreign_table]['ctrl']['formattedLabel_userFunc'], $params, $null); + $recTitle = $params['title']; + + // Try using a normal self-defined user function + } elseif (isset($GLOBALS['TCA'][$foreign_table]['ctrl']['label_userFunc'])) { $params = array( 'table' => $foreign_table, 'row' => $rec, 'title' => '', 'isOnSymmetricSide' => $isOnSymmetricSide, - 'options' => isset($GLOBALS['TCA'][$foreign_table]['ctrl']['label_userFunc_options']) ? $GLOBALS['TCA'][$foreign_table]['ctrl']['label_userFunc_options'] : array(), 'parent' => array( 'uid' => $parentUid, 'config' => $config diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_reference.php b/typo3/sysext/core/Configuration/TCA/sys_file_reference.php index 7d1b7002fdf458986467f7b015e931d816ea6dab..bbfddbd4c722c8eed5806967bec80784fac381f6 100644 --- a/typo3/sysext/core/Configuration/TCA/sys_file_reference.php +++ b/typo3/sysext/core/Configuration/TCA/sys_file_reference.php @@ -3,8 +3,8 @@ return array( 'ctrl' => array( 'title' => 'LLL:EXT:lang/locallang_tca.xlf:sys_file_reference', 'label' => 'uid', - 'label_userFunc' => 'EXT:core/Classes/Resource/Service/UserFileInlineLabelService.php:TYPO3\\CMS\\Core\\Resource\\Service\\UserFileInlineLabelService->getInlineLabel', - 'label_userFunc_options' => array( + 'formattedLabel_userFunc' => 'EXT:core/Classes/Resource/Service/UserFileInlineLabelService.php:TYPO3\\CMS\\Core\\Resource\\Service\\UserFileInlineLabelService->getInlineLabel', + 'formattedLabel_userFunc_options' => array( 'sys_file' => array( 'title', 'name'