From 8c0af9550374777d0eb10767a443f530c6839ba2 Mon Sep 17 00:00:00 2001 From: Philipp Kitzberger Date: Tue, 18 Mar 2025 14:48:48 +0100 Subject: [PATCH 1/3] [BUGFIX] Don't render f:else block on uncached v:try --- Classes/ViewHelpers/TryViewHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ViewHelpers/TryViewHelper.php b/Classes/ViewHelpers/TryViewHelper.php index be6edbba5..81d7cbaa7 100644 --- a/Classes/ViewHelpers/TryViewHelper.php +++ b/Classes/ViewHelpers/TryViewHelper.php @@ -123,7 +123,7 @@ public static function renderStatic( public function render() { try { - $content = $this->renderChildren(); + $content = $this->renderThenChild(); } catch (\Exception $error) { $this->renderingContext->getVariableProvider()->add('exception', $error); $content = $this->renderElseChild(); From 6ddc4de8687f66dee9a1845847604a86fa897d0e Mon Sep 17 00:00:00 2001 From: Philipp Kitzberger Date: Tue, 18 Mar 2025 14:49:19 +0100 Subject: [PATCH 2/3] [BUGFIX] Prevent PHP 8 warning --- Classes/ViewHelpers/TryViewHelper.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Classes/ViewHelpers/TryViewHelper.php b/Classes/ViewHelpers/TryViewHelper.php index 81d7cbaa7..8bf2e069d 100644 --- a/Classes/ViewHelpers/TryViewHelper.php +++ b/Classes/ViewHelpers/TryViewHelper.php @@ -103,7 +103,11 @@ public static function renderStatic( RenderingContextInterface $renderingContext ) { try { - $content = $arguments['__then'](); + if (isset($arguments['__then'])) { + $content = $arguments['__then'](); + } else { + $content = ''; + } } catch (\Exception $error) { $variableProvider = $renderingContext->getVariableProvider(); if (isset($arguments['__else'])) { From 16368db9c58d2daef6f91d9ad24aab3b07805a51 Mon Sep 17 00:00:00 2001 From: Philipp Kitzberger Date: Tue, 18 Mar 2025 14:49:33 +0100 Subject: [PATCH 3/3] [DOCS] Update docs on v:try --- Classes/ViewHelpers/TryViewHelper.php | 4 +++- Documentation/ViewHelpers/Try.rst | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Classes/ViewHelpers/TryViewHelper.php b/Classes/ViewHelpers/TryViewHelper.php index 8bf2e069d..f32a75139 100644 --- a/Classes/ViewHelpers/TryViewHelper.php +++ b/Classes/ViewHelpers/TryViewHelper.php @@ -50,7 +50,9 @@ * - * + * + * + * * Displayed only if the JSON decode worked. Much more code and many more * ViewHelpers can go here. Now, imagine that this block spans so much code * that potentially there could come an Exception from many additional places diff --git a/Documentation/ViewHelpers/Try.rst b/Documentation/ViewHelpers/Try.rst index 8b0515826..f5a5da827 100644 --- a/Documentation/ViewHelpers/Try.rst +++ b/Documentation/ViewHelpers/Try.rst @@ -49,7 +49,9 @@ from this and imagine that a plain Exception happens on errors. - + + + Displayed only if the JSON decode worked. Much more code and many more ViewHelpers can go here. Now, imagine that this block spans so much code that potentially there could come an Exception from many additional places