From e81619ee30c3d49334578a70eb6d0040491573ba Mon Sep 17 00:00:00 2001 From: Daniel Siepmann <daniel.siepmann@typo3.org> Date: Wed, 19 Feb 2020 08:31:20 +0100 Subject: [PATCH] [BUGFIX] Render exception for backend preview as error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prior only an warning was logged, and a fallback rendering jumped in. With this change an error is rendered in addition to logging. No fallback will be triggered anymore. This should raise awareness and ease integration for integrators. Please note that already broken elements might now show an error instead of fallback preview. This is only activated for admin users and enabled BE|debug system setting. Resolves: #90427 Releases: master Change-Id: I1f24a1e775ba4f12917ed26dc29b0ea78ab81a1f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63318 Reviewed-by: Susanne Moog <look@susi.dev> Reviewed-by: Björn Jacob <bjoern.jacob@tritum.de> Reviewed-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Christian Eßl <indy.essl@gmail.com> Reviewed-by: Ingo Fabbri <ingo.fabbri@gmail.com> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: TYPO3com <noreply@typo3.com> Tested-by: Christian Eßl <indy.essl@gmail.com> Tested-by: Georg Ringer <georg.ringer@gmail.com> --- typo3/sysext/backend/Classes/View/PageLayoutView.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/typo3/sysext/backend/Classes/View/PageLayoutView.php b/typo3/sysext/backend/Classes/View/PageLayoutView.php index aca6a02b3e34..2b1ec2780dbf 100644 --- a/typo3/sysext/backend/Classes/View/PageLayoutView.php +++ b/typo3/sysext/backend/Classes/View/PageLayoutView.php @@ -26,6 +26,7 @@ use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\View\Event\AfterSectionMarkupGeneratedEvent; use TYPO3\CMS\Backend\View\Event\BeforeSectionMarkupGeneratedEvent; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; +use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\Query\QueryBuilder; @@ -1243,11 +1244,22 @@ class PageLayoutView implements LoggerAwareInterface $fluidTemplateFile, $e->getMessage() )); + + if ($GLOBALS['TYPO3_CONF_VARS']['BE']['debug'] && $this->getBackendUser()->isAdmin()) { + $view = GeneralUtility::makeInstance(StandaloneView::class); + $view->assign('error', [ + 'message' => str_replace(Environment::getProjectPath(), '', $e->getMessage()), + 'title' => 'Error while rendering FluidTemplate preview using ' . str_replace(Environment::getProjectPath(), '', $fluidTemplateFile), + ]); + $view->setTemplateSource('<f:be.infobox title="{error.title}" state="2">{error.message}</f:be.infobox>'); + return $view->render(); + } } } } return null; } + /** * Renders the preview part of a content element * @param array $row given tt_content database record -- GitLab