Project

General

Profile

Actions

Bug #105325

open

Nested StandaloneView (FluidTemplate) inherits Extbase request from TemplateView

Added by Markus Klein 1 day ago. Updated about 22 hours ago.

Status:
Under Review
Priority:
Must have
Assignee:
-
Category:
Extbase
Target version:
-
Start date:
2024-10-16
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Complexity:
Is Regression:
Yes
Sprint Focus:

Description

Setup

Extbase Extension with a Controller "Seminars" and an action "Show".
The corresponding "Show.html" Fluid template contains:

<f:cObject typoscriptObjectPath="lib.someContent">

So it renders some regular content:


lib.someContent < styles.content.get
lib.someContent.select.pidInList = 123

Expected behavior

Browser should display the content loaded via lib.someContent.
This works just fine up to v11.

Actual behavior

Exception that "Seminars/Show.html" can't be found in paths. (where the paths are the regular Fluid Styled Content paths)

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.

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.


Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Feature #104773: Implement and use a core ViewFactoryInterfaceClosed2024-08-29

Actions
Actions

Also available in: Atom PDF