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