Skip to content
Snippets Groups Projects
Commit 63f2cf71 authored by Matthias Adrowski's avatar Matthias Adrowski
Browse files

[TASK] Fix Pagination for EN, fix DocHeader

parent 0ac8c40c
No related branches found
No related tags found
1 merge request!38Feature upgrade to typo3 11
......@@ -31,6 +31,7 @@ use SGalinski\SgNews\Utility\BackendNewsUtility;
use TYPO3\CMS\Backend\Routing\UriBuilder;
use TYPO3\CMS\Backend\Template\Components\ButtonBar;
use TYPO3\CMS\Backend\Template\Components\DocHeaderComponent;
use TYPO3\CMS\Backend\Template\ModuleTemplate;
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
use TYPO3\CMS\Core\Imaging\Icon;
......@@ -80,6 +81,12 @@ class BackendController extends ActionController {
*/
private $docHeaderComponent;
/**
* @var ?ModuleTemplate
*/
protected $moduleTemplate = NULL;
/**
* Initializes the view before invoking an action method.
*
......@@ -101,7 +108,13 @@ class BackendController extends ActionController {
$backendUser = $GLOBALS['BE_USER'];
$this->pageInfo = BackendUtility::readPageAccess($this->pageUid, $backendUser->getPagePermsClause(1));
if ($this->pageInfo) {
$this->docHeaderComponent = GeneralUtility::makeInstance(DocHeaderComponent::class);
if (version_compare(\TYPO3\CMS\Core\Utility\VersionNumberUtility::getCurrentTypo3Version(), '11.0.0', '<')) {
$this->docHeaderComponent = GeneralUtility::makeInstance(DocHeaderComponent::class);
}
else {
$this->getDocHeaderComponent();
}
if ($this->pageUid) {
$this->rootPageUid = BackendNewsUtility::getRootUidByPageUid($this->pageUid);
}
......@@ -260,9 +273,31 @@ class BackendController extends ActionController {
* @return \Psr\Http\Message\ResponseInterface
*/
protected function createBackendResponse(): \Psr\Http\Message\ResponseInterface {
$moduleTemplateFactory = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\ModuleTemplateFactory::class);
$moduleTemplate = $moduleTemplateFactory->create($this->request);
$moduleTemplate->setContent($this->view->render());
return $this->htmlResponse($moduleTemplate->renderContent());
$this->getModuleTemplate();
$this->moduleTemplate->setContent($this->view->render());
return $this->htmlResponse($this->moduleTemplate->renderContent());
}
/**
* Since we cannot use constructer Injection, we do have to get one Dynamicly. If we want to use
* our ModuleTemplate, call GetModuleTemplate before, which will init one if there is none for some reason
*/
protected function getModuleTemplate() {
if ($this->moduleTemplate === NULL) {
$moduleTemplateFactory = GeneralUtility::makeInstance(
\TYPO3\CMS\Backend\Template\ModuleTemplateFactory::class
);
$this->moduleTemplate = $moduleTemplateFactory->create($this->request);
}
}
/**
* Other Helper function, which gets us just the DocHeaderComponent
*/
protected function getDocHeaderComponent() {
if ($this->moduleTemplate === NULL) {
$this->getModuleTemplate();
}
$this->docHeaderComponent = $this->moduleTemplate->getDocHeaderComponent();
}
}
......@@ -68,11 +68,20 @@ final class QueryBuilderPaginator extends AbstractPaginator {
protected function getTotalAmountOfItems(): int {
$countBuilder = clone $this->queryBuilder;
$totalItems = $countBuilder
->setMaxResults(99999)
->setFirstResult(0)
->count('uid')
->execute()->fetchOne();
try {
$totalItems = $countBuilder
->setMaxResults(99999)
->setFirstResult(0)
->count('uid')
->execute()->fetchOne();
}
catch (\Exception $e){
$totalItems = $countBuilder
->setMaxResults(99999)
->setFirstResult(0)
->count('p.uid')
->execute()->fetchOne();
}
$this->setTotalItems($totalItems);
return $totalItems;
}
......
......@@ -8,6 +8,7 @@
1: 'TYPO3/CMS/Backend/Tooltip',
2: 'TYPO3/CMS/SgNews/Backend'}"
/>
<h1>
<f:render section="headline" />
</h1>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment