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