<?php /* * Copyright notice * * (c) sgalinski Internet Services (https://www.sgalinski.de) * * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is * free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * The GNU General Public License can be found at * http://www.gnu.org/copyleft/gpl.html. * * This script is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * This copyright notice MUST APPEAR in all copies of the script! */ namespace SGalinski\SgNews\Backend; use SGalinski\SgNews\Domain\Model\Category; 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\FlashMessage; use TYPO3\CMS\Core\Messaging\FlashMessageRendererResolver; 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 */ public function render(array $params = NULL, PageLayoutController $parentObj = NULL): string { $parentPage = $parentObj->pageinfo['pid']; $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('pages'); $parentDoktype = $queryBuilder->select('doktype') ->from('pages') ->where( $queryBuilder->expr()->eq( 'uid', $queryBuilder->createNamedParameter($parentPage, Connection::PARAM_INT) ) )->execute() ->fetchOne(); if ($parentDoktype === Category::DOK_TYPE_CATEGORY) { return ''; } $message = GeneralUtility::makeInstance( FlashMessage::class, $this->languageService->sL( 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:categoryErrorMessage' ), $this->languageService->sL( 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:categoryErrorMessageHeader' ), FlashMessage::ERROR, TRUE ); return GeneralUtility::makeInstance(FlashMessageRendererResolver::class) ->resolve() ->render([$message]); } }