From f0600927f6ebcf96294d8e4a8e8145707003c178 Mon Sep 17 00:00:00 2001 From: Stefan Galinski <stefan@sgalinski.de> Date: Tue, 26 Jul 2022 18:16:52 +0200 Subject: [PATCH] [BUGFIX] Fix TYPO3 11 compatibility, Fix missing doktype check for news (cherry picked from commit d06f261f6b4603e29156ed6402a0ab8a5b86e667) --- Classes/Backend/CategoryWarningDrawer.php | 24 +++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/Classes/Backend/CategoryWarningDrawer.php b/Classes/Backend/CategoryWarningDrawer.php index ed9a668..7f605f0 100644 --- a/Classes/Backend/CategoryWarningDrawer.php +++ b/Classes/Backend/CategoryWarningDrawer.php @@ -30,6 +30,7 @@ use TYPO3\CMS\Backend\Controller\PageLayoutController; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Localization\LanguageService; +use TYPO3\CMS\Core\Messaging\AbstractMessage; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Messaging\FlashMessageRendererResolver; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -38,22 +39,17 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; * */ class CategoryWarningDrawer { - /** - * @var LanguageService - */ - protected $languageService; - - public function __construct(LanguageService $languageService) { - $this->languageService = $languageService; - } - /** * @param array|NULL $params * @param PageLayoutController|NULL $parentObj * @return string - * @throws \Doctrine\DBAL\Driver\Exception + * @throws \Doctrine\DBAL\Driver\Exception|\Doctrine\DBAL\DBALException */ public function render(array $params = NULL, PageLayoutController $parentObj = NULL): string { + if (!$parentObj || $parentObj->pageinfo['doktype'] !== 116) { + return ''; + } + $parentPage = $parentObj->pageinfo['pid']; $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('pages'); @@ -66,19 +62,21 @@ class CategoryWarningDrawer { ) )->execute() ->fetchOne(); + if ($parentDoktype === Category::DOK_TYPE_CATEGORY) { return ''; } + $languageService = GeneralUtility::makeInstance(LanguageService::class); $message = GeneralUtility::makeInstance( FlashMessage::class, - $this->languageService->sL( + $languageService->sL( 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:categoryErrorMessage' ), - $this->languageService->sL( + $languageService->sL( 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:categoryErrorMessageHeader' ), - FlashMessage::ERROR, + AbstractMessage::ERROR, TRUE ); return GeneralUtility::makeInstance(FlashMessageRendererResolver::class) -- GitLab