Project

General

Profile

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.

Back