From 93e414b756d1cb328eb905548bd06bf24d5117cb Mon Sep 17 00:00:00 2001
From: Oliver Bartsch <bo@cedev.de>
Date: Wed, 9 Feb 2022 11:21:20 +0100
Subject: [PATCH] [TASK] Use factory method for generating preview urls

This is a followup for #96777, which uses the
factory method instead of instantiating the
PreviewUriBuilder via makeInstance().

Resolves: #96804
Related: #96777
Releases: main
Change-Id: I2224b118490d0fff917f96df3b6c1b80b548d901
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73374
Tested-by: core-ci <typo3@b13.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Benni Mack <benni@typo3.org>
---
 .../Classes/ContextMenu/ItemProviders/PageProvider.php        | 3 +--
 .../Classes/ContextMenu/ItemProviders/RecordProvider.php      | 2 +-
 .../backend/Classes/Controller/EditDocumentController.php     | 4 ++--
 .../viewpage/Classes/Controller/ViewModuleController.php      | 3 +--
 4 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php b/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php
index 76df91780c66..7a6902c37883 100644
--- a/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php
+++ b/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/PageProvider.php
@@ -584,10 +584,9 @@ class PageProvider extends RecordProvider
         $additionalParams = ($language > 0) ? '&L=' . $language : '';
 
         try {
-            $uri = GeneralUtility::makeInstance(PreviewUriBuilder::class, $this->getPreviewPid())
+            return (string)PreviewUriBuilder::create($this->getPreviewPid())
                 ->withAdditionalQueryParameters($additionalParams)
                 ->buildUri();
-            return (string)$uri;
         } catch (UnableToLinkToPageException $e) {
             return '';
         }
diff --git a/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/RecordProvider.php b/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/RecordProvider.php
index e307f24924a7..ed858b83f3fb 100644
--- a/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/RecordProvider.php
+++ b/typo3/sysext/backend/Classes/ContextMenu/ItemProviders/RecordProvider.php
@@ -457,7 +457,7 @@ class RecordProvider extends AbstractProvider
         }
 
         try {
-            return (string)GeneralUtility::makeInstance(PreviewUriBuilder::class, $this->getPreviewPid())
+            return (string)PreviewUriBuilder::create($this->getPreviewPid())
                 ->withAdditionalQueryParameters($additionalParams)
                 ->withSection($anchorSection)
                 ->buildUri();
diff --git a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
index dca0eebcd67f..e12d898e6a50 100644
--- a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
+++ b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php
@@ -1353,12 +1353,12 @@ class EditDocumentController
             ) {
                 $previewPageId = $this->getPreviewPageId();
                 try {
-                    $previewUrl = GeneralUtility::makeInstance(PreviewUriBuilder::class, $previewPageId)
+                    $previewUrl = (string)PreviewUriBuilder::create($previewPageId)
                         ->withSection($this->getPreviewUrlAnchorSection())
                         ->withAdditionalQueryParameters($this->getPreviewUrlParameters($previewPageId))
                         ->buildUri();
                     $viewButton = $buttonBar->makeLinkButton()
-                        ->setHref((string)$previewUrl)
+                        ->setHref($previewUrl)
                         ->setIcon($this->iconFactory->getIcon('actions-view', Icon::SIZE_SMALL))
                         ->setShowLabelText(true)
                         ->setTitle($this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:rm.viewDoc'))
diff --git a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
index 86bc4a134d4e..b08729e7db16 100644
--- a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
+++ b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
@@ -83,10 +83,9 @@ class ViewModuleController
 
         try {
             $languageId = $this->getCurrentLanguage($pageId, $request->getParsedBody()['language'] ?? $request->getQueryParams()['language'] ?? null);
-            $targetUrl = GeneralUtility::makeInstance(PreviewUriBuilder::class, $pageId)
+            $targetUrl = (string)PreviewUriBuilder::create($pageId)
                 ->withAdditionalQueryParameters($this->getTypeParameterIfSet($pageId) . '&L=' . $languageId)
                 ->buildUri();
-            $targetUrl = (string)$targetUrl;
         } catch (UnableToLinkToPageException $e) {
             $view->addFlashMessage(
                 $languageService->sL('LLL:EXT:viewpage/Resources/Private/Language/locallang.xlf:noSiteConfiguration'),
-- 
GitLab