Bug #84692 » BUGFIX_Add_configuration_key__table__for_record_link_building_in_FE.patch
typo3/sysext/frontend/Classes/Typolink/DatabaseRecordLinkBuilder.php (revision ) | ||
---|---|---|
public function build(array &$linkDetails, string $linkText, string $target, array $conf): array
|
||
{
|
||
$tsfe = $this->getTypoScriptFrontendController();
|
||
$pageTsConfig = $tsfe->getPagesTSconfig();
|
||
$configurationKey = $linkDetails['identifier'] . '.';
|
||
$configuration = $tsfe->tmpl->setup['config.']['recordLinks.'];
|
||
$linkHandlerConfiguration = $pageTsConfig['TCEMAIN.']['linkHandler.'];
|
||
if (!isset($configuration[$configurationKey]) || !isset($linkHandlerConfiguration[$configurationKey])) {
|
||
if (!isset($configuration[$configurationKey])) {
|
||
throw new UnableToLinkException(
|
||
'Configuration how to link "' . $linkDetails['typoLinkParameter'] . '" was not found, so "' . $linkText . '" was not linked.',
|
||
1490989149,
|
||
... | ... | |
);
|
||
}
|
||
$typoScriptConfiguration = $configuration[$configurationKey]['typolink.'];
|
||
$linkHandlerConfiguration = $linkHandlerConfiguration[$configurationKey]['configuration.'];
|
||
if ($configuration[$configurationKey]['forceLink']) {
|
||
$record = $tsfe->sys_page->getRawRecord($linkHandlerConfiguration['table'], $linkDetails['uid']);
|
||
$record = $tsfe->sys_page->getRawRecord($configuration[$configurationKey]['table'], $linkDetails['uid']);
|
||
} else {
|
||
$record = $tsfe->sys_page->checkRecord($linkHandlerConfiguration['table'], $linkDetails['uid']);
|
||
$record = $tsfe->sys_page->checkRecord($configuration[$configurationKey]['table'], $linkDetails['uid']);
|
||
}
|
||
if ($record === 0) {
|
||
throw new UnableToLinkException(
|
||
... | ... | |
// Build the full link to the record
|
||
$localContentObjectRenderer = GeneralUtility::makeInstance(ContentObjectRenderer::class);
|
||
$localContentObjectRenderer->start($record, $linkHandlerConfiguration['table']);
|
||
$localContentObjectRenderer->start($record, $configuration[$configurationKey]['table']);
|
||
$localContentObjectRenderer->parameters = $this->contentObjectRenderer->parameters;
|
||
$link = $localContentObjectRenderer->typoLink($linkText, $typoScriptConfiguration);
|
||