Bug #105135
openTypoScript object path "tt_content..20" does not exist
0%
Description
Trying to display an EXTBASE plugin with additional information in a fluid template I did the following:
<f:cObject typoscriptObjectPath="tt_content.myextension_showpersoninsearch" data="{person: document.fields.uid}" />
I get the very hard to debug error message
(1/1) #1253191023 TYPO3Fluid\Fluid\Core\ViewHelper\Exception TypoScript object path "tt_content..20" does not exist
It seems like the CObjectViewHelper is recursively calling itself with a missing path.
Updated by Garvin Hicking 4 months ago
- Status changed from New to Needs Feedback
The error message is really "tt_content..20" with two dots? Or was that some shortening error when posting?
Updated by Lina Wolf 4 months ago · Edited
- Status changed from Needs Feedback to New
Yes, that is the exact error message. On the first call CObjectViewHelper::renderStatic gets called with the correct typoscriptObjectPath in its string.
It then calls renderContentObject where the typoscriptObjectPath is still correct. line 184 then seeems to recuresively call CObjectViewHelper::renderStatic with the missing path
Solution should be mentioned here; https://docs.typo3.org/m/typo3/reference-exceptions/main/en-us/Exceptions/1253191023.html#typoscript-object-path-tt-content-20-does-not-exist
Updated by Markus Klein 3 months ago
- Status changed from New to Needs Feedback
it seems like your `tt_content.myextension_showpersoninsearch` extension is rendering some Fluid, which again contains an f:cObject viewhelper.
Please check that first. This smells like nesting.
Updated by Stefan Terborg 2 months ago
I have the same problem with plugins from news or indexed_search:
# typoscript: lib.searchBox < tt_content.indexedsearch_pi2 # fluid template: <f:cObject typoscriptObjectPath="lib.searchBox"/>
Updated by Stefan Terborg 2 months ago
This seems to work:
# typoscript: lib.searchBox < tt_content.indexedsearch_pi2.20 # fluid template: <f:cObject typoscriptObjectPath="lib.searchBox"/>
Updated by Markus Klein 2 months ago
- Category changed from Fluid to TypoScript
- Status changed from Closed to Needs Feedback
So it was working before and now broke with v12?
Updated by Simon Schaufelberger about 2 months ago · Edited
I can also confirm that it is broken with TYPO3 12. The problem is that The core actually renders all plugins like so: https://github.com/TYPO3/typo3/blob/main/typo3/sysext/fluid_styled_content/Resources/Private/Templates/Generic.html#L8 with an appended .20
which refers to the EXTBASEPLUGIN or USER function, depending on the type while plugin.tx_news_pi1
was previously also accessed through tt_content.list.20.tx_news_pi1, it is now in the same places as tt_content.tx_news_pi1.20
and NOT tt_content.tx_news_pi1
because tt_content.tx_news_pi1
is now a FLUIDTEMPLATE and rendering that is broken.
See also slack channel:
https://typo3.slack.com/archives/C03AM9R17/p1732634108884449
https://typo3.slack.com/archives/C03AM9R17/p1732634623250659
https://typo3.slack.com/archives/C03AM9R17/p1732635747997139
https://typo3.slack.com/archives/C03AM9R17/p1732636158214989
PS: the migration documentation is also wrong therefore: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/ContentElements/MigrationListType.html#plugins-list-type-migration-core-plugin-typoscript because the migration is not 1:1 the same as before. The correct migration would actually be:
-tt_content.list.20.examples_pi1 = USER -tt_content.list.20.examples_pi1 { +tt_content.examples_pi1 =< lib.contentElement +tt_content.examples_pi1 { + 20 = USER + 20 { userFunc = MyVendor\Examples\Controller\ExampleController->example settings { singlePid = 42 listPid = 55 } view { templateRootPath = {$templateRootPath} partialRootPath = {$partialRootPath} layoutRootPath = {$layoutRootPath} } } + templateName = Generic } # Or if you used the plugin top level object: -tt_content.list.20.examples_pi1 < plugin.tx_examples_pi1 +tt_content.examples_pi1.20 < plugin.tx_examples_pi1.20
This would be the same as the TypoScript Tree would render all other content elements
Updated by Markus Klein about 2 months ago
- Status changed from Needs Feedback to Accepted