<?php namespace SGalinski\SgMail\Domain\Repository; /*************************************************************** * 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! ***************************************************************/ use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings; use TYPO3\CMS\Extbase\Persistence\Repository; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; use TYPO3\CMS\Frontend\Page\PageRepository; /** * Abstract Repository */ abstract class AbstractRepository extends Repository { /** * Initializes the repository default settings * * @return void */ public function initializeObject() { $querySettings = $this->objectManager->get(Typo3QuerySettings::class); $querySettings->setRespectStoragePage(FALSE); if (TYPO3_MODE === 'BE') { $querySettings->setIgnoreEnableFields(TRUE); } $this->setDefaultQuerySettings($querySettings); } /** * Method creates a statement string of the enableFields for the given database table. * * @param string $table * @param string $alias * @param bool $ignoreEnableFields * @return string */ protected function getEnableFieldsStatement($table, $alias = '', $ignoreEnableFields = FALSE): string { if (TYPO3_MODE === 'FE' && $GLOBALS['TSFE'] instanceof TypoScriptFrontendController) { /** @var PageRepository $pageRepository */ $pageRepository = $GLOBALS['TSFE']->sys_page; $statement = $pageRepository->enableFields($table); } else { $statement = BackendUtility::deleteClause($table); if (!$ignoreEnableFields) { $statement .= BackendUtility::BEenableFields($table); } } if ($alias !== '') { $statement = str_replace($table, $alias, $statement); } return $statement; } }