diff --git a/Classes/ViewHelpers/Controller/FluidJsonController.php b/Classes/ViewHelpers/Controller/FluidJsonController.php
index 2f9a037..46a4a2b 100644
--- a/Classes/ViewHelpers/Controller/FluidJsonController.php
+++ b/Classes/ViewHelpers/Controller/FluidJsonController.php
@@ -11,6 +11,7 @@ use Doctrine\ORM\Query\Parameter;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Persistence\Doctrine\Query;
use Neos\FluidAdaptor\Core\Widget\AbstractWidgetController;
+use Neos\FluidAdaptor\View\TemplateView;
use Neos\Utility\TypeHandling;
class FluidJsonController extends AbstractWidgetController
@@ -80,6 +81,12 @@ class FluidJsonController extends AbstractWidgetController
public function indexAction()
{
$this->view->assign('entityClassName', $this->query->getType());
+ if ($this->view instanceof TemplateView) {
+ $renderingContext = $this->request
+ ->getInternalArgument('__widgetContext')
+ ->getViewHelperChildNodeRenderingContext();
+ $this->view->assignMultiple($renderingContext->getVariableProvider()->getAll());
+ }
}
/**
diff --git a/Classes/ViewHelpers/FluidJsonViewHelper.php b/Classes/ViewHelpers/FluidJsonViewHelper.php
index 717c226..662233a 100644
--- a/Classes/ViewHelpers/FluidJsonViewHelper.php
+++ b/Classes/ViewHelpers/FluidJsonViewHelper.php
@@ -5,7 +5,7 @@ declare(strict_types=1);
namespace DigiComp\FluidJsonViews\ViewHelpers;
use DigiComp\FluidJsonViews\ViewHelpers\Controller\FluidJsonController;
-use DigiComp\FluidRenderFunctions\InvokeRenderFunctionInterface;
+use DigiComp\FluidRenderFunctions\ViewHelpers\Traits\ValidateRenderFunctionTrait;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Mvc\Exception\InfiniteLoopException;
use Neos\Flow\Mvc\Exception\StopActionException;
@@ -16,6 +16,8 @@ use Neos\FluidAdaptor\Core\Widget\Exception\MissingControllerException;
class FluidJsonViewHelper extends AbstractWidgetViewHelper
{
+ use ValidateRenderFunctionTrait;
+
/**
* @inheritDoc
* @Flow\Inject
@@ -38,7 +40,7 @@ class FluidJsonViewHelper extends AbstractWidgetViewHelper
$this->registerArgument('objects', QueryResult::class, 'Objects to show in table.', true);
$this->registerArgument(
'renderFunction',
- InvokeRenderFunctionInterface::class,
+ 'string',
'callabe to use to render single object',
true
);
@@ -51,6 +53,12 @@ class FluidJsonViewHelper extends AbstractWidgetViewHelper
);
}
+ public function validateArguments()
+ {
+ parent::validateArguments();
+ $this->validateRenderFunctionArgument('renderFunction');
+ }
+
/**
* @throws InfiniteLoopException
* @throws InvalidControllerException
diff --git a/README.md b/README.md
index 6d3229b..60167a1 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Let me provide you an example:
{subject.name}
-
+
jsonView
```
diff --git a/Resources/Private/Templates/Tests/Functional/Fixtures/Test/Index.html b/Resources/Private/Templates/Tests/Functional/Fixtures/Test/Index.html
index 739acd0..529268a 100644
--- a/Resources/Private/Templates/Tests/Functional/Fixtures/Test/Index.html
+++ b/Resources/Private/Templates/Tests/Functional/Fixtures/Test/Index.html
@@ -3,6 +3,6 @@
{subject.name}
-
+
jsonView