diff --git a/Classes/Fluid/ComponentView.php b/Classes/Fluid/ComponentView.php
new file mode 100644
index 0000000..b980a76
--- /dev/null
+++ b/Classes/Fluid/ComponentView.php
@@ -0,0 +1,29 @@
+parsedTemplate = $parsedTemplate;
+ }
+
+ /**
+ * @return ParsedTemplateInterface
+ */
+ protected function getCurrentParsedTemplate()
+ {
+ return $this->parsedTemplate;
+ }
+}
diff --git a/Classes/Fluid/ViewHelper/ComponentRenderer.php b/Classes/Fluid/ViewHelper/ComponentRenderer.php
index 26b5ff9..83b5dc7 100644
--- a/Classes/Fluid/ViewHelper/ComponentRenderer.php
+++ b/Classes/Fluid/ViewHelper/ComponentRenderer.php
@@ -8,6 +8,7 @@
use Psr\Http\Message\ServerRequestInterface;
use SMS\FluidComponents\Domain\Model\RequiredSlotPlaceholder;
use SMS\FluidComponents\Domain\Model\Slot;
+use SMS\FluidComponents\Fluid\ComponentView;
use SMS\FluidComponents\Interfaces\ComponentAware;
use SMS\FluidComponents\Interfaces\EscapedParameter;
use SMS\FluidComponents\Interfaces\RenderingContextAware;
@@ -142,7 +143,6 @@ public function render(): string
$renderingContext = GeneralUtility::makeInstance(RenderingContextFactory::class)->create([], $request);
}
- $renderingContext->setViewHelperVariableContainer($this->renderingContext->getViewHelperVariableContainer());
if (static::shouldUseTemplatePaths()) {
$renderingContext->getTemplatePaths()->setPartialRootPaths(
$this->renderingContext->getTemplatePaths()->getPartialRootPaths()
@@ -193,6 +193,12 @@ public function render(): string
);
}
+ // Set custom view to reset rendering stack
+ $view = new ComponentView($this->parsedTemplate, $renderingContext);
+ $viewHelperVariableContainer = clone $this->renderingContext->getViewHelperVariableContainer();
+ $viewHelperVariableContainer->setView($view);
+ $renderingContext->setViewHelperVariableContainer($viewHelperVariableContainer);
+
// Render component
return $this->parsedTemplate->render($renderingContext);
}
diff --git a/Tests/Fixtures/Functional/Components/WithSection/WithSection.html b/Tests/Fixtures/Functional/Components/WithSection/WithSection.html
new file mode 100644
index 0000000..00e890d
--- /dev/null
+++ b/Tests/Fixtures/Functional/Components/WithSection/WithSection.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+ A renderer with a section.
+
diff --git a/Tests/Functional/ComponentRendererTest.php b/Tests/Functional/ComponentRendererTest.php
index 350370a..f724763 100644
--- a/Tests/Functional/ComponentRendererTest.php
+++ b/Tests/Functional/ComponentRendererTest.php
@@ -63,6 +63,7 @@ public static function renderComponentProvider()
'falseParameter' => false, // strange fluid behavior: will be empty string
], '', 'This is a string|123|1|'],
['DateTimeParameter', ['date' => 1601371704], '', 'Tue, 29 Sep 2020 09:28:24 +0000'],
+ ['WithSection', [], '', 'A renderer with a section.'],
];
}