From 8476388734168d937b65357228cac58b6887889d Mon Sep 17 00:00:00 2001 From: Christian Wolfram Date: Mon, 24 Apr 2023 09:26:43 +0200 Subject: [PATCH 1/6] [BUGFIX] Fix access to pageTreeRepository since TYPO3 v11.5.26 see: https://github.com/typo3/typo3/commit/ccadcb341e --- .../TYPO3/CMS/Backend/Controller/Page/TreeController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php index 59fb5c5..d93a70c 100755 --- a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php +++ b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php @@ -109,10 +109,10 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 && $backendUser->checkLanguageAccess(0), ]; - if (!empty($page['_children']) || $this->getPageTreeRepository()->hasChildren($pageId)) { + if (!empty($page['_children']) || $this->getPageTreeRepository->hasChildren($pageId)) { $item['hasChildren'] = true; if ($depth >= $this->levelsToFetch) { - $page = $this->getPageTreeRepository()->getTreeLevels($page, 1); + $page = $this->getPageTreeRepository->getTreeLevels($page, 1); } } if (!empty($prefix)) { From c210a812652c02fa14e1fe2d10550602f84e637a Mon Sep 17 00:00:00 2001 From: Christian Wolfram Date: Mon, 24 Apr 2023 09:33:24 +0200 Subject: [PATCH 2/6] Revert "[BUGFIX] Fix access to pageTreeRepository since TYPO3 v11.5.26" This reverts commit 8476388734168d937b65357228cac58b6887889d. --- .../TYPO3/CMS/Backend/Controller/Page/TreeController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php index d93a70c..59fb5c5 100755 --- a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php +++ b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php @@ -109,10 +109,10 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 && $backendUser->checkLanguageAccess(0), ]; - if (!empty($page['_children']) || $this->getPageTreeRepository->hasChildren($pageId)) { + if (!empty($page['_children']) || $this->getPageTreeRepository()->hasChildren($pageId)) { $item['hasChildren'] = true; if ($depth >= $this->levelsToFetch) { - $page = $this->getPageTreeRepository->getTreeLevels($page, 1); + $page = $this->getPageTreeRepository()->getTreeLevels($page, 1); } } if (!empty($prefix)) { From a4968867e80803d347bc5b304b75c78de1ecc0e6 Mon Sep 17 00:00:00 2001 From: Christian Wolfram Date: Mon, 24 Apr 2023 09:36:20 +0200 Subject: [PATCH 3/6] [BUGFIX] Fix access to pageTreeRepository since TYPO3 v11.5.26 see: https://forge.typo3.org/issues/99852 see: https://github.com/typo3/typo3/commit/ccadcb341e --- .../TYPO3/CMS/Backend/Controller/Page/TreeController.php | 4 ++-- composer.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php index 59fb5c5..d93a70c 100755 --- a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php +++ b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php @@ -109,10 +109,10 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 && $backendUser->checkLanguageAccess(0), ]; - if (!empty($page['_children']) || $this->getPageTreeRepository()->hasChildren($pageId)) { + if (!empty($page['_children']) || $this->getPageTreeRepository->hasChildren($pageId)) { $item['hasChildren'] = true; if ($depth >= $this->levelsToFetch) { - $page = $this->getPageTreeRepository()->getTreeLevels($page, 1); + $page = $this->getPageTreeRepository->getTreeLevels($page, 1); } } if (!empty($prefix)) { diff --git a/composer.json b/composer.json index 1aabdad..b12594a 100755 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "type": "typo3-cms-extension", "version": "1.7.0", "require": { - "typo3/cms-core": ">=9 <12" + "typo3/cms-core": "^11.5.26 <12" }, "autoload": { "psr-4": { From 588f729eb75e352a56d8bb2d0933e46d76ff5c0b Mon Sep 17 00:00:00 2001 From: Christian Wolfram Date: Mon, 24 Apr 2023 09:42:12 +0200 Subject: [PATCH 4/6] Add other changes from Core commit --- .../TYPO3/CMS/Backend/Controller/Page/TreeController.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php index d93a70c..78717a6 100755 --- a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php +++ b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php @@ -104,9 +104,7 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 'siblingsCount' => $page['siblingsCount'] ?? 1, 'siblingsPosition' => $page['siblingsPosition'] ?? 1, 'allowDelete' => $backendUser->doesUserHaveAccess($page, Permission::PAGE_DELETE), - 'allowEdit' => $backendUser->doesUserHaveAccess($page, Permission::PAGE_EDIT) - && $backendUser->check('tables_modify', 'pages') - && $backendUser->checkLanguageAccess(0), + 'allowEdit' => $this->userHasAccessToModifyPagesAndToDefaultLanguage && $backendUser->doesUserHaveAccess($page, Permission::PAGE_EDIT), ]; if (!empty($page['_children']) || $this->getPageTreeRepository->hasChildren($pageId)) { @@ -128,13 +126,13 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 $item['overlayIcon'] = $icon->getOverlayIcon()->getIdentifier(); } if ($expanded && is_array($page['_children']) && !empty($page['_children'])) { - $item['expanded'] = $expanded; + $item['expanded'] = true; } if ($backgroundColor) { $item['backgroundColor'] = htmlspecialchars($backgroundColor); } if ($stopPageTree) { - $item['stopPageTree'] = $stopPageTree; + $item['stopPageTree'] = true; } $class = $this->resolvePageCssClassNames($page); if (!empty($class)) { From c0717e7d30c89de37af4882a756c7ff2e9f0b523 Mon Sep 17 00:00:00 2001 From: Christian Wolfram Date: Mon, 17 Jul 2023 08:07:18 +0200 Subject: [PATCH 5/6] Fix misspelling property name --- .../TYPO3/CMS/Backend/Controller/Page/TreeController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php index 78717a6..4d08d3d 100755 --- a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php +++ b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php @@ -107,10 +107,10 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 'allowEdit' => $this->userHasAccessToModifyPagesAndToDefaultLanguage && $backendUser->doesUserHaveAccess($page, Permission::PAGE_EDIT), ]; - if (!empty($page['_children']) || $this->getPageTreeRepository->hasChildren($pageId)) { + if (!empty($page['_children']) || $this->pageTreeRepository->hasChildren($pageId)) { $item['hasChildren'] = true; if ($depth >= $this->levelsToFetch) { - $page = $this->getPageTreeRepository->getTreeLevels($page, 1); + $page = $this->pageTreeRepository->getTreeLevels($page, 1); } } if (!empty($prefix)) { From d0dcc5daa0e365bdbc4a6715f20c0f6dc3b3a7c0 Mon Sep 17 00:00:00 2001 From: Christian Wolfram Date: Mon, 17 Jul 2023 08:16:25 +0200 Subject: [PATCH 6/6] Revert TYPO3 version compatibility and add function get correct pageTreeRepository --- .../CMS/Backend/Controller/Page/TreeController.php | 14 ++++++++++++-- composer.json | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php index 4d08d3d..c1b1cff 100755 --- a/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php +++ b/Classes/Overrides/TYPO3/CMS/Backend/Controller/Page/TreeController.php @@ -3,6 +3,7 @@ namespace FBIT\PageReferences\Overrides\TYPO3\CMS\Backend\Controller\Page; use FBIT\PageReferences\Domain\Model\ReferencePage; +use TYPO3\CMS\Backend\Tree\Repository\PageTreeRepository; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Type\Bitmask\Permission; @@ -107,10 +108,10 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 'allowEdit' => $this->userHasAccessToModifyPagesAndToDefaultLanguage && $backendUser->doesUserHaveAccess($page, Permission::PAGE_EDIT), ]; - if (!empty($page['_children']) || $this->pageTreeRepository->hasChildren($pageId)) { + if (!empty($page['_children']) || $this->getPageTreeRepository()->hasChildren($pageId)) { $item['hasChildren'] = true; if ($depth >= $this->levelsToFetch) { - $page = $this->pageTreeRepository->getTreeLevels($page, 1); + $page = $this->getPageTreeRepository()->getTreeLevels($page, 1); } } if (!empty($prefix)) { @@ -159,4 +160,13 @@ protected function pagesToFlatArray(array $page, int $entryPoint, int $depth = 0 } return $items; } + + protected function getPageTreeRepository(): PageTreeRepository + { + if (method_exists(\TYPO3\CMS\Backend\Controller\Page\TreeController::class, 'getPageTreeRepository')) { + return parent::getPageTreeRepository(); + } + + return $this->pageTreeRepository; + } } diff --git a/composer.json b/composer.json index b12594a..1aabdad 100755 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "type": "typo3-cms-extension", "version": "1.7.0", "require": { - "typo3/cms-core": "^11.5.26 <12" + "typo3/cms-core": ">=9 <12" }, "autoload": { "psr-4": {