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; ...@@ -31,6 +31,7 @@ use SGalinski\SgNews\Utility\BackendNewsUtility;
use TYPO3\CMS\Backend\Routing\UriBuilder; use TYPO3\CMS\Backend\Routing\UriBuilder;
use TYPO3\CMS\Backend\Template\Components\ButtonBar; use TYPO3\CMS\Backend\Template\Components\ButtonBar;
use TYPO3\CMS\Backend\Template\Components\DocHeaderComponent; use TYPO3\CMS\Backend\Template\Components\DocHeaderComponent;
use TYPO3\CMS\Backend\Template\ModuleTemplate;
use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\Icon;
...@@ -80,6 +81,12 @@ class BackendController extends ActionController { ...@@ -80,6 +81,12 @@ class BackendController extends ActionController {
*/ */
private $docHeaderComponent; private $docHeaderComponent;
/**
* @var ?ModuleTemplate
*/
protected $moduleTemplate = NULL;
/** /**
* Initializes the view before invoking an action method. * Initializes the view before invoking an action method.
* *
...@@ -101,7 +108,13 @@ class BackendController extends ActionController { ...@@ -101,7 +108,13 @@ class BackendController extends ActionController {
$backendUser = $GLOBALS['BE_USER']; $backendUser = $GLOBALS['BE_USER'];
$this->pageInfo = BackendUtility::readPageAccess($this->pageUid, $backendUser->getPagePermsClause(1)); $this->pageInfo = BackendUtility::readPageAccess($this->pageUid, $backendUser->getPagePermsClause(1));
if ($this->pageInfo) { 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) { if ($this->pageUid) {
$this->rootPageUid = BackendNewsUtility::getRootUidByPageUid($this->pageUid); $this->rootPageUid = BackendNewsUtility::getRootUidByPageUid($this->pageUid);
} }
...@@ -260,9 +273,31 @@ class BackendController extends ActionController { ...@@ -260,9 +273,31 @@ class BackendController extends ActionController {
* @return \Psr\Http\Message\ResponseInterface * @return \Psr\Http\Message\ResponseInterface
*/ */
protected function createBackendResponse(): \Psr\Http\Message\ResponseInterface { protected function createBackendResponse(): \Psr\Http\Message\ResponseInterface {
$moduleTemplateFactory = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\ModuleTemplateFactory::class); $this->getModuleTemplate();
$moduleTemplate = $moduleTemplateFactory->create($this->request); $this->moduleTemplate->setContent($this->view->render());
$moduleTemplate->setContent($this->view->render()); return $this->htmlResponse($this->moduleTemplate->renderContent());
return $this->htmlResponse($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 { ...@@ -68,11 +68,20 @@ final class QueryBuilderPaginator extends AbstractPaginator {
protected function getTotalAmountOfItems(): int { protected function getTotalAmountOfItems(): int {
$countBuilder = clone $this->queryBuilder; $countBuilder = clone $this->queryBuilder;
$totalItems = $countBuilder try {
->setMaxResults(99999) $totalItems = $countBuilder
->setFirstResult(0) ->setMaxResults(99999)
->count('uid') ->setFirstResult(0)
->execute()->fetchOne(); ->count('uid')
->execute()->fetchOne();
}
catch (\Exception $e){
$totalItems = $countBuilder
->setMaxResults(99999)
->setFirstResult(0)
->count('p.uid')
->execute()->fetchOne();
}
$this->setTotalItems($totalItems); $this->setTotalItems($totalItems);
return $totalItems; return $totalItems;
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
1: 'TYPO3/CMS/Backend/Tooltip', 1: 'TYPO3/CMS/Backend/Tooltip',
2: 'TYPO3/CMS/SgNews/Backend'}" 2: 'TYPO3/CMS/SgNews/Backend'}"
/> />
<h1> <h1>
<f:render section="headline" /> <f:render section="headline" />
</h1> </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