[TASK] Work on compatibility for TYPO3 11
This commit is contained in:
parent
5b0ef1ccdf
commit
2b549c7b38
@ -17,11 +17,19 @@ use Cjel\TemplatesAide\Traits\ValidationTrait;
|
|||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use TYPO3\CMS\Core\Cache\CacheManager;
|
use TYPO3\CMS\Core\Cache\CacheManager;
|
||||||
|
use TYPO3\CMS\Core\Context\Context;
|
||||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||||
use TYPO3\CMS\Core\Database\Query\Restriction\DefaultRestrictionContainer;
|
use TYPO3\CMS\Core\Database\Query\Restriction\DefaultRestrictionContainer;
|
||||||
|
use TYPO3\CMS\Core\Http\Response;
|
||||||
|
use TYPO3\CMS\Core\Http\ServerRequestFactory;
|
||||||
use TYPO3\CMS\Core\Localization\LanguageService;
|
use TYPO3\CMS\Core\Localization\LanguageService;
|
||||||
|
use TYPO3\CMS\Core\Localization\LanguageServiceFactory;
|
||||||
use TYPO3\CMS\Core\Log\LogManager;
|
use TYPO3\CMS\Core\Log\LogManager;
|
||||||
|
use TYPO3\CMS\Core\Routing\SiteMatcher;
|
||||||
|
use TYPO3\CMS\Core\Site\SiteFinder;
|
||||||
|
use TYPO3\CMS\Core\TypoScript\TemplateService;
|
||||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||||
|
use TYPO3\CMS\Core\Utility\RootlineUtility;
|
||||||
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
|
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
|
||||||
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
||||||
use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
|
use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
|
||||||
@ -148,15 +156,26 @@ class AbstractEIDController
|
|||||||
$this->importLogger = $this->logManager->getLogger(
|
$this->importLogger = $this->logManager->getLogger(
|
||||||
'importLogger'
|
'importLogger'
|
||||||
);
|
);
|
||||||
|
if (version_compare(TYPO3_branch, '10.0', '>=')) {
|
||||||
|
$this->reflectionService = GeneralUtility::makeInstance(
|
||||||
|
ReflectionService::class
|
||||||
|
);
|
||||||
|
} else {
|
||||||
$this->reflectionService = GeneralUtility::makeInstance(
|
$this->reflectionService = GeneralUtility::makeInstance(
|
||||||
ReflectionService::class, GeneralUtility::makeInstance(
|
ReflectionService::class, GeneralUtility::makeInstance(
|
||||||
CacheManager::class
|
CacheManager::class
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
}
|
||||||
$classInfo = $this->reflectionService->getClassSchema(
|
$classInfo = $this->reflectionService->getClassSchema(
|
||||||
get_class($this)
|
get_class($this)
|
||||||
);
|
);
|
||||||
foreach ($classInfo->getInjectMethods() as $method => $className) {
|
foreach ($classInfo->getInjectMethods() as $method => $className) {
|
||||||
|
if (version_compare(TYPO3_branch, '10.0', '>=')) {
|
||||||
|
$className = $className
|
||||||
|
->getFirstParameter()
|
||||||
|
->getDependency();
|
||||||
|
}
|
||||||
$class = $this->objectManager->get(
|
$class = $this->objectManager->get(
|
||||||
$className
|
$className
|
||||||
);
|
);
|
||||||
@ -169,47 +188,37 @@ class AbstractEIDController
|
|||||||
*/
|
*/
|
||||||
private function initFrontendController()
|
private function initFrontendController()
|
||||||
{
|
{
|
||||||
$currentDomain = strtok(GeneralUtility::getIndpEnv('HTTP_HOST'), ':');
|
$request = ServerRequestFactory::fromGlobals();
|
||||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
|
$context = GeneralUtility::makeInstance(Context::class);
|
||||||
->getQueryBuilderForTable('sys_domain');
|
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
|
||||||
$queryBuilder->setRestrictions(
|
$siteMatcher = GeneralUtility::makeInstance(SiteMatcher::class);
|
||||||
GeneralUtility::makeInstance(DefaultRestrictionContainer::class)
|
$site = $siteMatcher->matchRequest($request);
|
||||||
|
$pageId = $site->getSite()->getRootPageId();
|
||||||
|
$template = GeneralUtility::makeInstance(TemplateService::class);
|
||||||
|
$template->tt_track = false;
|
||||||
|
$rootline = GeneralUtility::makeInstance(
|
||||||
|
RootlineUtility::class, $pageId
|
||||||
|
)->get();
|
||||||
|
$template->runThroughTemplates($rootline, 0);
|
||||||
|
$template->generateConfig();
|
||||||
|
$setup = $template->setup;
|
||||||
|
$setup = GeneralUtility::removeDotsFromTS($setup);
|
||||||
|
$extKey = 'tx_' . $this->getExtensionKey();
|
||||||
|
if (array_key_exists('plugin', $setup)
|
||||||
|
&& array_key_exists($extKey, $setup['plugin'])
|
||||||
|
&& array_key_exists('persistence', $setup['plugin'][$extKey])
|
||||||
|
&& array_key_exists('storagePid', $setup['plugin'][$extKey]['persistence'])
|
||||||
|
) {
|
||||||
|
$storagePids = $setup['plugin'][$extKey]['persistence']['storagePid'];
|
||||||
|
$this->storagePids = GeneralUtility::trimExplode(
|
||||||
|
',',
|
||||||
|
$storagePids
|
||||||
);
|
);
|
||||||
$result = $queryBuilder
|
}
|
||||||
->select('uid', 'pid', 'domainName')
|
$languageServiceFactory = GeneralUtility::makeInstance(
|
||||||
->from('sys_domain')
|
LanguageServiceFactory::class
|
||||||
->where(
|
|
||||||
$queryBuilder->expr()->eq(
|
|
||||||
'domainName',
|
|
||||||
$queryBuilder->createNamedParameter(
|
|
||||||
$currentDomain,
|
|
||||||
\PDO::PARAM_STR
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
->orderBy('sorting', 'ASC')
|
|
||||||
->execute()
|
|
||||||
->fetchAll();
|
|
||||||
//if (count($result) < 1) {
|
|
||||||
// throw new \Exception('Domain not configured');
|
|
||||||
//}
|
|
||||||
$frontendController = GeneralUtility::makeInstance(
|
|
||||||
\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::class,
|
|
||||||
$GLOBALS['TYPO3_CONF_VARS'],
|
|
||||||
null,
|
|
||||||
0,
|
|
||||||
true
|
|
||||||
);
|
);
|
||||||
$GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageService::class);
|
$GLOBALS['LANG'] = $languageServiceFactory->create('default');
|
||||||
$GLOBALS['LANG']->init('default');
|
|
||||||
$GLOBALS['TSFE'] = $frontendController;
|
|
||||||
$frontendController->connectToDB();
|
|
||||||
$frontendController->fe_user = EidUtility::initFeUser();
|
|
||||||
$frontendController->id = $result[0]['pid'];
|
|
||||||
$frontendController->determineId();
|
|
||||||
$frontendController->initTemplate();
|
|
||||||
$frontendController->getConfigArray();
|
|
||||||
EidUtility::initTCA();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -271,6 +280,7 @@ class AbstractEIDController
|
|||||||
. 'Request';
|
. 'Request';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$response = new Response();
|
||||||
if (method_exists($this, $requestMethod)) {
|
if (method_exists($this, $requestMethod)) {
|
||||||
$responseData = $this->$requestMethod($request, $response);
|
$responseData = $this->$requestMethod($request, $response);
|
||||||
$response = $response->withHeader(
|
$response = $response->withHeader(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user