Bug #84692
closedLinkhandler configuration in condition results in no links in frontend
0%
Description
- Multi tree instance with different TSconfigs per tree, also for the linkhandler
- link to the record is generated
- no (!) link is generated
Reason:
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.
Fixes:
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.
Files
Updated by Marc Bastian Heinrichs over 6 years ago
- File BUGFIX_Add_configuration_key__table__for_record_link_building_in_FE.patch BUGFIX_Add_configuration_key__table__for_record_link_building_in_FE.patch added
Patch for A (my preference)
Updated by Markus Klein over 6 years ago
I'm for Solution B.
Keep the config central at one place.
Updated by Julian Stock about 6 years ago
Marc Bastian Heinrichs wrote:
Updated B
any updates on this?
Updated by Julian Stock about 6 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 } [Vendor\Package\TypoScriptCondition\YourCondition] TCEMAIN.linkHandler.tx_news > [END]
Updated by Susanne Moog about 6 years ago
- Sprint Focus set to On Location Sprint
Updated by Susanne Moog almost 5 years ago
- Sprint Focus deleted (
On Location Sprint)
Updated by Markus Klein almost 5 years 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 over 4 years 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 over 4 years ago
- Related to Feature #89718: Unified PageTS resolving and parsing added