Bug #84692

Linkhandler configuration in condition results in no links in frontend

Added by Marc Bastian Heinrichs almost 3 years ago. Updated 10 months ago.

Should have
Link Handling, Site Handling & Routing
Target version:
Start date:
Due date:
% Done:


Estimated time:
TYPO3 Version:
PHP Version:
Is Regression:
Sprint Focus:


  • Multi tree instance with different TSconfigs per tree, also for the linkhandler
  • link to the record is generated
  • no (!) link is generated

DatabaseRecordLinkBuilder::build misses $pageTsConfig['TCEMAIN.']['linkHandler.']['identifier']

The former linkhandler extensions uses as link identifier the format "identifier:table_name:uid".
So the TSconfig was not needed in frontend to know the table name.

This was changed in the core implementation to "t3://record?identifier=identifier&uid=uid".
Thus the page TSconfig needs to be fetched and parsed in frontend.
This done by using TypoScriptFrontendController::getPagesTSconfig() which sadly uses TypoScriptParser::parse without proving an ConditionMatcher.

So the additional TSconfig inside a PIDinRootline condition is totally missing.


Solution A:
double the table configuration from TCEMAIN.linkHandler.fooBar.configuration.table to config.recordLinks.fooBar.table
=> additional pro: no TSconfig parsing in FE

Solution B:
call getPagesTSconfig with new optional argument $matchConditions = true, which results in calling parse providing a ConditionMatcher instance.


Related issues

Related to TYPO3 Core - Feature #89718: Unified PageTS resolving and parsingClosedBenni Mack2019-11-21


Updated by Marc Bastian Heinrichs almost 3 years ago

  • File 84692_b.patch added

A patch for B


Updated by Markus Klein almost 3 years ago

I'm for Solution B.

Keep the config central at one place.


Updated by Marc Bastian Heinrichs almost 3 years ago

  • File deleted (84692_b.patch)

Updated by Julian Stock over 2 years ago

Marc Bastian Heinrichs wrote:

Updated B

any updates on this?


Updated by Julian Stock over 2 years ago

As a workaround, we solved it like this in tsconfig: (Set a default and remove it where the condition is accepted, so you don't have the tab on other rootlines :))

TCEMAIN.linkHandler.tx_news {
    handler = TYPO3\CMS\Recordlist\LinkHandler\RecordLinkHandler
    label = Your label
    configuration {
        table = tx_news_domain_model_news
        storagePid = 1337
        hidePageTree = 1

    scanBefore = page

    TCEMAIN.linkHandler.tx_news >

Updated by Susanne Moog over 2 years ago

  • Sprint Focus set to On Location Sprint

Updated by Susanne Moog about 1 year ago

  • Sprint Focus deleted (On Location Sprint)

Updated by Markus Klein about 1 year ago

  • Status changed from New to Needs Feedback

If I'm not mistaken this is resolved with https://review.typo3.org/c/Packages/TYPO3.CMS/+/62349 for v10


Updated by Georg Ringer 10 months ago

  • Status changed from Needs Feedback to Closed

closed because works now in 10 with #89718

please get in contact me if still not working for you.


Updated by Georg Ringer 10 months ago

  • Related to Feature #89718: Unified PageTS resolving and parsing added

Also available in: Atom PDF