diff --git a/typo3/sysext/backend/Classes/Controller/PageLayoutController.php b/typo3/sysext/backend/Classes/Controller/PageLayoutController.php index cc539391cfe51b38469bebf2fdfd025c738024be..77d02bdab9a4c813a5a5bed4f1f5ec536055d813 100644 --- a/typo3/sysext/backend/Classes/Controller/PageLayoutController.php +++ b/typo3/sysext/backend/Classes/Controller/PageLayoutController.php @@ -539,33 +539,8 @@ class PageLayoutController */ protected function getLocalizedPageTitle(): string { - if ($this->current_sys_language > 0) { - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable('pages'); - $queryBuilder->getRestrictions() - ->removeAll() - ->add(GeneralUtility::makeInstance(DeletedRestriction::class)) - ->add(GeneralUtility::makeInstance(WorkspaceRestriction::class, (int)$this->getBackendUser()->workspace)); - $localizedPage = $queryBuilder - ->select('*') - ->from('pages') - ->where( - $queryBuilder->expr()->eq( - $GLOBALS['TCA']['pages']['ctrl']['transOrigPointerField'], - $queryBuilder->createNamedParameter($this->id, Connection::PARAM_INT) - ), - $queryBuilder->expr()->eq( - $GLOBALS['TCA']['pages']['ctrl']['languageField'], - $queryBuilder->createNamedParameter($this->current_sys_language, Connection::PARAM_INT) - ) - ) - ->setMaxResults(1) - ->executeQuery() - ->fetchAssociative(); - BackendUtility::workspaceOL('pages', $localizedPage); - return $localizedPage['title']; - } - return $this->pageinfo['title']; + $pageLocalizationRecord = $this->pageRepository->getPageOverlay($this->id, $this->current_sys_language); + return $this->current_sys_language <= 0 ? $this->pageinfo['title'] : ($pageLocalizationRecord['title'] ?? ''); } /** @@ -853,35 +828,13 @@ class PageLayoutController && $this->current_sys_language > 0 && $this->isPageEditable($this->current_sys_language) ) { - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages'); - $queryBuilder->getRestrictions() - ->removeAll() - ->add(GeneralUtility::makeInstance(DeletedRestriction::class)) - ->add(GeneralUtility::makeInstance(WorkspaceRestriction::class, $this->getBackendUser()->workspace)); - $overlayRecord = $queryBuilder - ->select('uid') - ->from('pages') - ->where( - $queryBuilder->expr()->eq( - $GLOBALS['TCA']['pages']['ctrl']['transOrigPointerField'], - $queryBuilder->createNamedParameter($this->id, Connection::PARAM_INT) - ), - $queryBuilder->expr()->eq( - $GLOBALS['TCA']['pages']['ctrl']['languageField'], - $queryBuilder->createNamedParameter($this->current_sys_language, Connection::PARAM_INT) - ) - ) - ->setMaxResults(1) - ->executeQuery() - ->fetchAssociative(); - BackendUtility::workspaceOL('pages', $overlayRecord, $this->getBackendUser()->workspace); - // Edit button + $overlayRecord = $this->pageRepository->getPageOverlay($this->id, $this->current_sys_language); $url = (string)$this->uriBuilder->buildUriFromRoute( 'record_edit', [ 'edit' => [ 'pages' => [ - $overlayRecord['uid'] => 'edit', + $overlayRecord['_PAGES_OVERLAY_UID'] => 'edit', ], ], 'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),