Bug #105325
Updated by Markus Klein 1 day ago
h2. Setup Extbase Extension with a Controller "Seminars" and an action "Show". The corresponding "Show.html" Fluid template contains: <pre><code class="html"> <f:cObject typoscriptObjectPath="lib.someContent"> </code></pre> So it renders some regular content: <pre><code> lib.someContent < styles.content.get lib.contentElement lib.someContent.select.pidInList = 123 </code></pre> h2. Expected behavior Browser should display the content loaded via lib.someContent. This works just fine up to v11. h2. Actual behavior Exception that "Seminars/Show.html" can't be found in paths. (where the paths are the regular Fluid Styled Content paths) h2. Analysis The Fluid template setup above creates technically a nesting of TemplateView (Show-Action) and StandaloneView (FluidTemplate via f:cObject). Unluckily, the StandaloneView gets passed the Extbase-Request from the Show-Action, which causes this request being passed down to the @TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::setRequest@ causing the Controller/Action of the FluidTemplate to be overwritten. While it is desirable that StandaloneView itself can handle Extbase Requests for other use cases like E-Mail and stuff, this should not be the case when an isolated context is required, like in the f:cObject case. h2. Ideas for solution Fix CObjectViewHelper to "revert" the request properly, e.g. by using the initial requst from $GLOBALS[TYPO3_REQUEST] instead of the more specific one in its own renderingContext.