diff --git a/typo3/sysext/backend/Classes/Backend/ToolbarItems/ClearCacheToolbarItem.php b/typo3/sysext/backend/Classes/Backend/ToolbarItems/ClearCacheToolbarItem.php index 658a1c6ee9a1ed66fe90bc05d8706f41350357ec..314629767c54778a546d45dcf5c8114b21ab55ca 100644 --- a/typo3/sysext/backend/Classes/Backend/ToolbarItems/ClearCacheToolbarItem.php +++ b/typo3/sysext/backend/Classes/Backend/ToolbarItems/ClearCacheToolbarItem.php @@ -14,11 +14,12 @@ namespace TYPO3\CMS\Backend\Backend\ToolbarItems; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; +use TYPO3\CMS\Backend\Toolbar\ClearCacheActionsHookInterface; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; -use TYPO3\CMS\Backend\Toolbar\ClearCacheActionsHookInterface; +use TYPO3\CMS\Core\Page\PageRenderer; /** * Render cache clearing toolbar item @@ -189,12 +190,10 @@ class ClearCacheToolbarItem implements ToolbarItemInterface { /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } /** diff --git a/typo3/sysext/backend/Classes/Backend/ToolbarItems/LiveSearchToolbarItem.php b/typo3/sysext/backend/Classes/Backend/ToolbarItems/LiveSearchToolbarItem.php index 1d9efd210b55f36188f955461f1dbc8dcaf8bad4..c9d9f4bd8dd1d09de4b80a99cdcc0c66c594360a 100644 --- a/typo3/sysext/backend/Classes/Backend/ToolbarItems/LiveSearchToolbarItem.php +++ b/typo3/sysext/backend/Classes/Backend/ToolbarItems/LiveSearchToolbarItem.php @@ -16,6 +16,7 @@ namespace TYPO3\CMS\Backend\Backend\ToolbarItems; use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; use TYPO3\CMS\Backend\Module\ModuleLoader; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -105,12 +106,10 @@ class LiveSearchToolbarItem implements ToolbarItemInterface { /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } } diff --git a/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php b/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php index 63c5149ca74d9c9b88423ae84b983dfd89b8b317..fd893d75043e839a75c274e59b1644a101b70fff 100644 --- a/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php +++ b/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php @@ -14,13 +14,14 @@ namespace TYPO3\CMS\Backend\Backend\ToolbarItems; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Backend\Module\ModuleLoader; +use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; +use TYPO3\CMS\Core\Http\AjaxRequestHandler; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; -use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; -use TYPO3\CMS\Backend\Module\ModuleLoader; -use TYPO3\CMS\Core\Http\AjaxRequestHandler; use TYPO3\CMS\Core\Utility\PathUtility; /** @@ -759,12 +760,10 @@ class ShortcutToolbarItem implements ToolbarItemInterface { /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } /** diff --git a/typo3/sysext/backend/Classes/Backend/ToolbarItems/SystemInformationToolbarItem.php b/typo3/sysext/backend/Classes/Backend/ToolbarItems/SystemInformationToolbarItem.php index 0e631b49e24e6b0d99ce2d964f4c5d5b0a3a2cab..c5a8d06e33349fa614a679e5b050796967d7b9db 100644 --- a/typo3/sysext/backend/Classes/Backend/ToolbarItems/SystemInformationToolbarItem.php +++ b/typo3/sysext/backend/Classes/Backend/ToolbarItems/SystemInformationToolbarItem.php @@ -19,6 +19,7 @@ use TYPO3\CMS\Backend\Toolbar\Enumeration\InformationStatus; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Http\AjaxRequestHandler; +use \TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\CommandUtility; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -89,8 +90,7 @@ class SystemInformationToolbarItem implements ToolbarItemInterface { $this->standaloneView = GeneralUtility::makeInstance(StandaloneView::class); $this->standaloneView->setTemplatePathAndFilename($extPath . 'Resources/Private/Templates/ToolbarMenu/' . static::TOOLBAR_MENU_TEMPLATE); - $pageRenderer = $this->getPageRenderer(); - $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Toolbar/SystemInformationMenu'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/Toolbar/SystemInformationMenu'); } /** @@ -350,12 +350,10 @@ class SystemInformationToolbarItem implements ToolbarItemInterface { /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } /** diff --git a/typo3/sysext/backend/Classes/Controller/BackendController.php b/typo3/sysext/backend/Classes/Controller/BackendController.php index 4823fe40dcb62368a1655d5a8f432428214365ff..f2eeb7daf9a28e87dab10fa525df177c33c24f14 100644 --- a/typo3/sysext/backend/Classes/Controller/BackendController.php +++ b/typo3/sysext/backend/Classes/Controller/BackendController.php @@ -14,12 +14,13 @@ namespace TYPO3\CMS\Backend\Controller; * The TYPO3 project - inspiring people to share! */ -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Backend\Domain\Repository\Module\BackendModuleRepository; use TYPO3\CMS\Backend\Module\ModuleLoader; use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; +use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; +use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Fluid\View\StandaloneView; use TYPO3\CMS\Rsaauth\RsaEncryptionEncoder; @@ -87,14 +88,16 @@ class BackendController { protected $moduleLoader; /** - * @var \TYPO3\CMS\Core\Page\PageRenderer + * @var PageRenderer */ protected $pageRenderer; /** - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer + * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8 */ public function getPageRenderer() { + GeneralUtility::logDeprecatedFunction(); return $this->pageRenderer; } @@ -109,7 +112,7 @@ class BackendController { // Initializes the backend modules structure for use later. $this->moduleLoader = GeneralUtility::makeInstance(ModuleLoader::class); $this->moduleLoader->load($GLOBALS['TBE_MODULES']); - $this->pageRenderer = $this->getDocumentTemplate()->getPageRenderer(); + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $this->pageRenderer->loadExtJS(); // included for the module menu JavaScript, please note that this is subject to change $this->pageRenderer->loadJquery(); diff --git a/typo3/sysext/backend/Classes/Controller/BackendLayoutWizardController.php b/typo3/sysext/backend/Classes/Controller/BackendLayoutWizardController.php index adf47b3034434669c963619443a52a50851bdba8..274a4b227a478ed044d771363da53ded84952df7 100644 --- a/typo3/sysext/backend/Classes/Controller/BackendLayoutWizardController.php +++ b/typo3/sysext/backend/Classes/Controller/BackendLayoutWizardController.php @@ -14,12 +14,13 @@ namespace TYPO3\CMS\Backend\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Backend\Template\DocumentTemplate; +use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser; -use TYPO3\CMS\Backend\Template\DocumentTemplate; -use TYPO3\CMS\Backend\Utility\BackendUtility; /** @@ -81,7 +82,7 @@ class BackendLayoutWizardController { // Initialize document object: $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class); $this->doc->backPath = $GLOBALS['BACK_PATH']; - $pageRenderer = $this->doc->getPageRenderer(); + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadExtJS(); $pageRenderer->addJsFile(ExtensionManagementUtility::extRelPath('backend') . 'Resources/Public/JavaScript/grideditor.js'); $pageRenderer->addInlineSetting('ContextHelp', 'moduleUrl', BackendUtility::getModuleUrl('help_cshmanual')); diff --git a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php index ac0f7bef6dc68198fd3b688d11e1949425361f0b..1d8686e6338792ad340bfc4b35491477b71dcafc 100644 --- a/typo3/sysext/backend/Classes/Controller/EditDocumentController.php +++ b/typo3/sysext/backend/Classes/Controller/EditDocumentController.php @@ -14,22 +14,23 @@ namespace TYPO3\CMS\Backend\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Backend\Form\DataPreprocessor; use TYPO3\CMS\Backend\Form\FormEngine; +use TYPO3\CMS\Backend\Form\Utility\FormEngineUtility; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; +use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Html\HtmlParser; +use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Messaging\FlashMessageService; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Type\Bitmask\JsConfirmation; use TYPO3\CMS\Core\Type\Bitmask\Permission; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; use TYPO3\CMS\Core\Utility\MathUtility; -use TYPO3\CMS\Frontend\Page\PageRepository; -use TYPO3\CMS\Backend\Form\Utility\FormEngineUtility; use TYPO3\CMS\Extbase\SignalSlot\Dispatcher; -use TYPO3\CMS\Core\DataHandling\DataHandler; -use TYPO3\CMS\Backend\Form\DataPreprocessor; -use TYPO3\CMS\Core\Messaging\FlashMessage; -use TYPO3\CMS\Core\Messaging\FlashMessageService; +use TYPO3\CMS\Frontend\Page\PageRepository; /** * Script Class: Drawing the editing form for editing records in TYPO3. @@ -679,11 +680,12 @@ class EditDocumentController { $this->MCONF['name'] = 'xMOD_alt_doc.php'; // Create an instance of the document template object $this->doc = $GLOBALS['TBE_TEMPLATE']; - $this->doc->getPageRenderer()->addInlineLanguageLabelFile('EXT:lang/locallang_alt_doc.xlf'); + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + $pageRenderer->addInlineLanguageLabelFile('EXT:lang/locallang_alt_doc.xlf'); + $pageRenderer->loadPrototype(); $this->doc->backPath = $GLOBALS['BACK_PATH']; $this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/alt_doc.html'); $this->doc->form = '<form action="' . htmlspecialchars($this->R_URI) . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '" name="editform" onsubmit="document.editform._scrollPosition.value=(document.documentElement.scrollTop || document.body.scrollTop); return TBE_EDITOR.checkSubmit(1);">'; - $this->doc->getPageRenderer()->loadPrototype(); // override the default jumpToUrl $this->doc->JScodeArray['jumpToUrl'] = ' function jumpToUrl(URL,formEl) { diff --git a/typo3/sysext/backend/Classes/Controller/LoginController.php b/typo3/sysext/backend/Classes/Controller/LoginController.php index ee522e9a21d42fa7a5f24d46bfcee3a31529bf50..7bee52655e63d70f81b1273248412b09ac14a76f 100644 --- a/typo3/sysext/backend/Classes/Controller/LoginController.php +++ b/typo3/sysext/backend/Classes/Controller/LoginController.php @@ -20,6 +20,7 @@ use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\FormProtection\BackendFormProtection; use TYPO3\CMS\Core\FormProtection\FormProtectionFactory; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; use TYPO3\CMS\Core\Utility\PathUtility; @@ -144,8 +145,8 @@ class LoginController implements \TYPO3\CMS\Core\Http\ControllerInterface { * @return string The content to output */ public function main() { - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $this->getDocumentTemplate()->getPageRenderer(); + /** @var $pageRenderer PageRenderer */ + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Login'); // support placeholders for IE9 and lower diff --git a/typo3/sysext/backend/Classes/Controller/LoginFramesetController.php b/typo3/sysext/backend/Classes/Controller/LoginFramesetController.php index 2442f1a04e61b0005029708db2cad18aced16b55..84cab9a83b186a624084d460fc598dfaea855c69 100644 --- a/typo3/sysext/backend/Classes/Controller/LoginFramesetController.php +++ b/typo3/sysext/backend/Classes/Controller/LoginFramesetController.php @@ -16,6 +16,7 @@ namespace TYPO3\CMS\Backend\Controller; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; /** * Script Class, putting the frameset together. @@ -40,7 +41,7 @@ class LoginFramesetController { $this->getDocumentTemplate()->startPage($title); // Create the frameset for the window - $this->content = $this->getDocumentTemplate()->getPageRenderer()->render(PageRenderer::PART_HEADER) . ' + $this->content = $this->getPageRenderer()->render(PageRenderer::PART_HEADER) . ' <frameset rows="*,1"> <frame name="login" src="index.php?loginRefresh=1" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize" /> <frame name="dummy" src="' . htmlspecialchars(BackendUtility::getModuleUrl('dummy')) . '" marginwidth="0" marginheight="0" scrolling="auto" noresize="noresize" /> @@ -66,4 +67,11 @@ class LoginFramesetController { return $GLOBALS['TBE_TEMPLATE']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } + } diff --git a/typo3/sysext/backend/Classes/Controller/PageTreeNavigationController.php b/typo3/sysext/backend/Classes/Controller/PageTreeNavigationController.php index 19fb6e02a97d01ebaa0c7b10dc8b6d2179930d0d..b3655c9d45013ecd739d46eb15993f077a087294 100644 --- a/typo3/sysext/backend/Classes/Controller/PageTreeNavigationController.php +++ b/typo3/sysext/backend/Classes/Controller/PageTreeNavigationController.php @@ -14,15 +14,16 @@ namespace TYPO3\CMS\Backend\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Backend\Template\DocumentTemplate; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; -use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Backend\View\PageTreeView; -use TYPO3\CMS\Backend\Template\DocumentTemplate; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Workspaces\Service\WorkspaceService; +use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; +use TYPO3\CMS\Workspaces\Service\WorkspaceService; /** * Main script class for the page tree navigation frame @@ -156,8 +157,8 @@ class PageTreeNavigationController { // Adding javascript code for drag&drop and the pagetree as well as the click menu code $this->doc->getDragDropCode('pages', $dragDropCode); $this->doc->getContextMenuCode(); - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $this->doc->getPageRenderer(); + /** @var $pageRenderer PageRenderer */ + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadExtJS(); $this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . ' // Function, loading the list frame from navigation tree: diff --git a/typo3/sysext/backend/Classes/Controller/Wizard/ColorpickerController.php b/typo3/sysext/backend/Classes/Controller/Wizard/ColorpickerController.php index 152677515e3f151ef89ae7babdeba2edd8509456..b5dd2f18f339f70a23ad309cecfff2b4ebd71e91 100644 --- a/typo3/sysext/backend/Classes/Controller/Wizard/ColorpickerController.php +++ b/typo3/sysext/backend/Classes/Controller/Wizard/ColorpickerController.php @@ -16,6 +16,7 @@ namespace TYPO3\CMS\Backend\Controller\Wizard; use TYPO3\CMS\Backend\Template\DocumentTemplate; use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -293,7 +294,7 @@ class ColorpickerController extends AbstractWizardController { 'fieldChangeFuncHash' => $this->P['fieldChangeFuncHash'], ) ); - $this->content = $this->getDocumentTemplate()->getPageRenderer()->render(\TYPO3\CMS\Core\Page\PageRenderer::PART_HEADER) . ' + $this->content = $this->getPageRenderer()->render(PageRenderer::PART_HEADER) . ' <frameset rows="*,1" framespacing="0" frameborder="0" border="0"> <frame name="content" src="' . htmlspecialchars($url) . '" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" noresize="noresize" /> <frame name="menu" src="' . htmlspecialchars(BackendUtility::getModuleUrl('dummy')) . '" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" noresize="noresize" /> @@ -434,4 +435,11 @@ class ColorpickerController extends AbstractWizardController { return $this->fieldChangeFunc && $this->fieldChangeFuncHash && $this->fieldChangeFuncHash === GeneralUtility::hmac($this->fieldChangeFunc); } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } + } diff --git a/typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php b/typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php index 3b6511e71d767d4e828f40d18ab03da221297808..9ae3e671faf835aa610c989fbc3ba4e4c6e45e84 100644 --- a/typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php +++ b/typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php @@ -14,15 +14,15 @@ namespace TYPO3\CMS\Backend\Form\Element; * The TYPO3 project - inspiring people to share! */ -use TYPO3\CMS\Backend\Form\FormEngine; +use TYPO3\CMS\Backend\Form\NodeFactory; use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Extbase\Utility\ArrayUtility; -use TYPO3\CMS\Backend\Form\NodeFactory; /** * Generation of image manipulation TCEform element @@ -133,8 +133,8 @@ class ImageManipulationElement extends AbstractFormElement { $content .= $this->getImageManipulationInfoTable($parameterArray['itemFormElValue']); - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $GLOBALS['SOBE']->doc->getPageRenderer(); + /** @var $pageRenderer PageRenderer */ + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadRequireJsModule( 'TYPO3/CMS/Backend/ImageManipulation', 'function(ImageManipulation){ImageManipulation.initializeTrigger()}' // Initialize after load diff --git a/typo3/sysext/backend/Classes/Form/Element/SelectTreeElement.php b/typo3/sysext/backend/Classes/Form/Element/SelectTreeElement.php index b00c90755307da91bc81e617524a0bc908615ac4..9c081f84b226771ef37b37bb58cd12d783080b17 100644 --- a/typo3/sysext/backend/Classes/Form/Element/SelectTreeElement.php +++ b/typo3/sysext/backend/Classes/Form/Element/SelectTreeElement.php @@ -14,18 +14,18 @@ namespace TYPO3\CMS\Backend\Form\Element; * The TYPO3 project - inspiring people to share! */ -use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Backend\Form\Utility\FormEngineUtility; -use TYPO3\CMS\Lang\LanguageService; +use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Tree\TableConfiguration\ExtJsArrayTreeRenderer; use TYPO3\CMS\Core\Tree\TableConfiguration\TableConfigurationTree; use TYPO3\CMS\Core\Tree\TableConfiguration\TreeDataProviderFactory; use TYPO3\CMS\Core\Type\Bitmask\JsConfirmation; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Backend\Utility\IconUtility; +use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Lang\LanguageService; /** * Render data as a tree. @@ -167,8 +167,8 @@ class SelectTreeElement extends AbstractFormElement { $onChange .= 'if (TBE_EDITOR.checkSubmit(-1)){ TBE_EDITOR.submitForm() };'; } } - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $GLOBALS['SOBE']->doc->getPageRenderer(); + /** @var $pageRenderer PageRenderer */ + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadExtJs(); $pageRenderer->addJsFile('sysext/backend/Resources/Public/JavaScript/tree.js'); $pageRenderer->addInlineLanguageLabelFile(ExtensionManagementUtility::extPath('lang') . 'locallang_csh_corebe.xlf', 'tcatree'); diff --git a/typo3/sysext/backend/Classes/Form/FormEngine.php b/typo3/sysext/backend/Classes/Form/FormEngine.php index 84ed66148ef91a08f2bae7268e9b9417f8641d4d..7fc64f08a0a28e9cbc9e553f95caae4e05b1615d 100644 --- a/typo3/sysext/backend/Classes/Form/FormEngine.php +++ b/typo3/sysext/backend/Classes/Form/FormEngine.php @@ -22,15 +22,12 @@ use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\FormProtection\FormProtectionFactory; use TYPO3\CMS\Core\Html\HtmlParser; use TYPO3\CMS\Core\Http\AjaxRequestHandler; +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Lang\LanguageService; -use TYPO3\CMS\Backend\Form\Container\FullRecordContainer; -use TYPO3\CMS\Backend\Form\Container\SoloFieldContainer; -use TYPO3\CMS\Backend\Form\Container\InlineRecordContainer; -use TYPO3\CMS\Backend\Form\Container\ListOfFieldsContainer; -use TYPO3\CMS\Core\Utility\ArrayUtility; /** * This is form engine - Class for creating the backend editing forms. @@ -213,6 +210,11 @@ class FormEngine { */ protected $requireJsModules = array(); + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Constructor function, setting internal variables, loading the styles used. * @@ -1055,8 +1057,8 @@ class FormEngine { * @todo: aaaargs ... */ protected function getJavaScriptOfPageRenderer() { - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = clone $GLOBALS['SOBE']->doc->getPageRenderer(); + /** @var $pageRenderer PageRenderer */ + $pageRenderer = clone $this->getPageRenderer(); $pageRenderer->setCharSet($this->getLanguageService()->charSet); $pageRenderer->setTemplateFile('EXT:backend/Resources/Private/Templates/helper_javascript_css.html'); return $pageRenderer->render(); @@ -1220,7 +1222,6 @@ class FormEngine { if ($this->loadMD5_JS) { $this->loadJavascriptLib('sysext/backend/Resources/Public/JavaScript/md5.js'); } - $pageRenderer = $this->getPageRenderer(); // load the main module for FormEngine with all important JS functions $this->requireJsModules['TYPO3/CMS/Backend/FormEngine'] = 'function(FormEngine) { FormEngine.setBrowserUrl(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('browser')) . '); @@ -1235,26 +1236,26 @@ class FormEngine { $callbacks = array($callbacks); } foreach ($callbacks as $callback) { - $pageRenderer->loadRequireJsModule($moduleName, $callback); + $this->getPageRenderer()->loadRequireJsModule($moduleName, $callback); } } - $pageRenderer->loadPrototype(); - $pageRenderer->loadJquery(); - $pageRenderer->loadExtJS(); + $this->getPageRenderer()->loadPrototype(); + $this->getPageRenderer()->loadJquery(); + $this->getPageRenderer()->loadExtJS(); // rtehtmlarea needs extjs quick tips (?) - $pageRenderer->enableExtJSQuickTips(); + $this->getPageRenderer()->enableExtJSQuickTips(); $beUserAuth = $this->getBackendUserAuthentication(); // Make textareas resizable and flexible ("autogrow" in height) $textareaSettings = array( 'autosize' => (bool)$beUserAuth->uc['resizeTextareas_Flexible'] ); - $pageRenderer->addInlineSettingArray('Textarea', $textareaSettings); + $this->getPageRenderer()->addInlineSettingArray('Textarea', $textareaSettings); $this->loadJavascriptLib('sysext/backend/Resources/Public/JavaScript/jsfunc.tbe_editor.js'); - $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ValueSlider'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ValueSlider'); // Needed for FormEngine manipulation (date picker) $dateFormat = ($GLOBALS['TYPO3_CONF_VARS']['SYS']['USdateFormat'] ? array('MM-DD-YYYY', 'HH:mm MM-DD-YYYY') : array('DD-MM-YYYY', 'HH:mm DD-MM-YYYY')); - $pageRenderer->addInlineSetting('DateTimePicker', 'DateFormat', $dateFormat); + $this->getPageRenderer()->addInlineSetting('DateTimePicker', 'DateFormat', $dateFormat); // support placeholders for IE9 and lower $clientInfo = GeneralUtility::clientInfo(); @@ -1263,13 +1264,13 @@ class FormEngine { } // @todo: remove scriptaclous once suggest & flex form foo is moved to RequireJS, see #55575 - $pageRenderer->loadScriptaculous(); + $this->getPageRenderer()->loadScriptaculous(); $this->loadJavascriptLib('sysext/backend/Resources/Public/JavaScript/jsfunc.tceforms_suggest.js'); - $pageRenderer->loadRequireJsModule('TYPO3/CMS/Filelist/FileListLocalisation'); - $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/DragUploader'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Filelist/FileListLocalisation'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/DragUploader'); - $pageRenderer->addInlineLanguagelabelFile( + $this->getPageRenderer()->addInlineLanguagelabelFile( \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('lang') . 'locallang_core.xlf', 'file_upload' ); @@ -1327,15 +1328,12 @@ class FormEngine { * @return string */ public function printNeededJSFunctions() { - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $this->getControllerDocumentTemplate()->getPageRenderer(); - // set variables to be accessible for JS - $pageRenderer->addInlineSetting('FormEngine', 'formName', 'editform'); - $pageRenderer->addInlineSetting('FormEngine', 'backPath', ''); + $this->getPageRenderer()->addInlineSetting('FormEngine', 'formName', 'editform'); + $this->getPageRenderer()->addInlineSetting('FormEngine', 'backPath', ''); // Integrate JS functions for the element browser if such fields or IRRE fields were processed - $pageRenderer->addInlineSetting('FormEngine', 'legacyFieldChangedCb', 'function() { ' . $this->TBE_EDITOR_fieldChanged_func . ' };'); + $this->getPageRenderer()->addInlineSetting('FormEngine', 'legacyFieldChangedCb', 'function() { ' . $this->TBE_EDITOR_fieldChanged_func . ' };'); return $this->JSbottom('editform'); } @@ -1467,7 +1465,11 @@ class FormEngine { * @return \TYPO3\CMS\Core\Page\PageRenderer */ protected function getPageRenderer() { - return $this->getControllerDocumentTemplate()->getPageRenderer(); + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; } } diff --git a/typo3/sysext/backend/Classes/Module/AbstractFunctionModule.php b/typo3/sysext/backend/Classes/Module/AbstractFunctionModule.php index b85bbe4bae2f58f51d075d22ea20e62ad3084fa8..baf2419fe913762c7fe7f29b9b5afc5c94867669 100644 --- a/typo3/sysext/backend/Classes/Module/AbstractFunctionModule.php +++ b/typo3/sysext/backend/Classes/Module/AbstractFunctionModule.php @@ -18,6 +18,7 @@ use TYPO3\CMS\Backend\Template\DocumentTemplate; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Database\DatabaseConnection; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Lang\LanguageService; @@ -156,6 +157,11 @@ abstract class AbstractFunctionModule { */ public $function_key = ''; + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Initialize the object * @@ -287,4 +293,15 @@ abstract class AbstractFunctionModule { return $GLOBALS['TYPO3_DB']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; + } + } diff --git a/typo3/sysext/backend/Classes/Module/BaseScriptClass.php b/typo3/sysext/backend/Classes/Module/BaseScriptClass.php index ae85902723e9a6b41dc184bb1f28cf6dc158bebf..a188c19c0483f29bf11d603dd57c20487b982489 100644 --- a/typo3/sysext/backend/Classes/Module/BaseScriptClass.php +++ b/typo3/sysext/backend/Classes/Module/BaseScriptClass.php @@ -18,6 +18,7 @@ use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Database\DatabaseConnection; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Lang\LanguageService; @@ -189,6 +190,11 @@ class BaseScriptClass { */ public $extObj; + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Initializes the backend module by setting internal variables, initializing the menu. * @@ -365,4 +371,15 @@ class BaseScriptClass { return $GLOBALS['TYPO3_DB']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; + } + } diff --git a/typo3/sysext/backend/Classes/Template/DocumentTemplate.php b/typo3/sysext/backend/Classes/Template/DocumentTemplate.php index bb943bd9e7326ca25fa56b1c5411ae8503f534fa..1858b961259ef321069da177c4f2e3b0a747f389 100644 --- a/typo3/sysext/backend/Classes/Template/DocumentTemplate.php +++ b/typo3/sysext/backend/Classes/Template/DocumentTemplate.php @@ -352,7 +352,7 @@ function jumpToUrl(URL) { public $hasDocheader = TRUE; /** - * @var \TYPO3\CMS\Core\Page\PageRenderer + * @var PageRenderer */ protected $pageRenderer; @@ -436,11 +436,12 @@ function jumpToUrl(URL) { /** * Gets instance of PageRenderer configured with the current language, file references and debug settings * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer + * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. This method will become protected then. */ public function getPageRenderer() { if (!isset($this->pageRenderer)) { - $this->pageRenderer = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class); + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $this->pageRenderer->setLanguage($GLOBALS['LANG']->lang); $this->pageRenderer->enableConcatenateFiles(); $this->pageRenderer->enableCompressCss(); @@ -1579,7 +1580,7 @@ function jumpToUrl(URL) { * @return string */ public function getDynamicTabMenu(array $menuItems, $identString, $defaultTabIndex = 1, $collapseable = FALSE, $wrapContent = TRUE, $storeLastActiveTab = TRUE) { - $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/Tabs'); + $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Tabs'); $templatePathAndFileName = 'EXT:backend/Resources/Private/Templates/DocumentTemplate/' . ($collapseable ? 'Collapse.html' : 'Tabs.html'); $view = GeneralUtility::makeInstance(StandaloneView::class); $view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName($templatePathAndFileName)); diff --git a/typo3/sysext/backend/Classes/Template/FrontendDocumentTemplate.php b/typo3/sysext/backend/Classes/Template/FrontendDocumentTemplate.php index f5ad348c28672991e7f4040871ec3ed22378adb0..5a7ed5ab315112ab9cc7884d4bd566168d593318 100644 --- a/typo3/sysext/backend/Classes/Template/FrontendDocumentTemplate.php +++ b/typo3/sysext/backend/Classes/Template/FrontendDocumentTemplate.php @@ -14,6 +14,9 @@ namespace TYPO3\CMS\Backend\Template; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; + /** * Extension class for "template" - used in the context of frontend editing. */ @@ -22,11 +25,13 @@ class FrontendDocumentTemplate extends DocumentTemplate { /** * Gets instance of PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer + * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8 */ public function getPageRenderer() { + GeneralUtility::logDeprecatedFunction(); if (!isset($this->pageRenderer)) { - $this->pageRenderer = $GLOBALS['TSFE']->getPageRenderer(); + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); } return $this->pageRenderer; } diff --git a/typo3/sysext/backend/Classes/View/PageLayoutView.php b/typo3/sysext/backend/Classes/View/PageLayoutView.php index 930eb162cec8ec0c9f05c2dff932f1207a03c38b..69f30f78b431ec75b0b6949a380dd92cf270fd11 100644 --- a/typo3/sysext/backend/Classes/View/PageLayoutView.php +++ b/typo3/sysext/backend/Classes/View/PageLayoutView.php @@ -20,6 +20,7 @@ use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Database\DatabaseConnection; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Type\Bitmask\Permission; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Versioning\VersionState; @@ -374,8 +375,8 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe $this->initializeLanguages(); $this->initializeClipboard(); $pageTitleParamForAltDoc = '&recTitle=' . rawurlencode(BackendUtility::getRecordTitle('pages', BackendUtility::getRecordWSOL('pages', $id), TRUE)); - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $this->getPageLayoutController()->doc->getPageRenderer(); + /** @var $pageRenderer PageRenderer */ + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/LayoutModule/DragDrop'); $userCanEditPage = $this->ext_CALC_PERMS & Permission::PAGE_EDIT && !empty($this->id); if ($this->tt_contentConfig['languageColsPointer'] > 0) { diff --git a/typo3/sysext/belog/Classes/Controller/AbstractController.php b/typo3/sysext/belog/Classes/Controller/AbstractController.php index 82eae430cee7dde2f6b26f6934c93cb2d89c300b..92bd7982f1b53145d5a78ada0659baa301c52ddf 100644 --- a/typo3/sysext/belog/Classes/Controller/AbstractController.php +++ b/typo3/sysext/belog/Classes/Controller/AbstractController.php @@ -14,6 +14,8 @@ namespace TYPO3\CMS\Belog\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; + /** * Abstract class to show log entries from sys_log * @@ -77,7 +79,7 @@ abstract class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\Acti protected $logEntryRepository = NULL; /** - * @var \TYPO3\CMS\Core\Page\PageRenderer + * @var PageRenderer */ protected $pageRenderer; @@ -86,7 +88,7 @@ abstract class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\Acti * @return void */ public function initializeAction() { - $this->pageRenderer = $this->objectManager->get(\TYPO3\CMS\Core\Page\PageRenderer::class); + $this->pageRenderer = $this->objectManager->get(PageRenderer::class); $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/DateTimePicker'); } diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-68074-DeprecateGetPageRenderer.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-68074-DeprecateGetPageRenderer.rst new file mode 100644 index 0000000000000000000000000000000000000000..b215cd34995342e533a3e6b93e5b81d43a48cf0e --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-68074-DeprecateGetPageRenderer.rst @@ -0,0 +1,28 @@ +========================================================= +Deprecation: #68074 - Deprecate getPageRenderer() methods +========================================================= + +Description +=========== + +The following public functions have been marked for deprecation as the instance they return is a singleton: + +* TYPO3\CMS\Backend\Controller\BackendController::getPageRenderer() +* TYPO3\CMS\Backend\Template\DocumentTemplate::getPageRenderer() +* TYPO3\CMS\Backend\Template\FrontendDocumentTemplate::getPageRenderer() +* TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::getPageRenderer() + + +Impact +====== + +Using ``BackendController::getPageRenderer`` or ``FrontendDocumentTemplate::getPageRenderer`` will throw a deprecation message. +The public functions ``DocumentTemplate::getPageRenderer`` and ``TypoScriptFrontendController::getPageRenderer`` will become +protected methods with TYPO3 CMS 8. As those functions have to be used within the classes themselves no deprecation message can be thrown. + + +Migration +========= + +As the PageRenderer implements a SingletonInterface you can get your own (shared) instance with +\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class) and work with that one. diff --git a/typo3/sysext/extbase/Classes/Mvc/Web/Response.php b/typo3/sysext/extbase/Classes/Mvc/Web/Response.php index 0ba317cd1abd37379ccf134a99935c255f58f811..48406f3c22e79b7508c48c17caad3d553189a61c 100644 --- a/typo3/sysext/extbase/Classes/Mvc/Web/Response.php +++ b/typo3/sysext/extbase/Classes/Mvc/Web/Response.php @@ -14,8 +14,8 @@ namespace TYPO3\CMS\Extbase\Mvc\Web; * The TYPO3 project - inspiring people to share! */ -use TYPO3\CMS\Backend\Template\DocumentTemplate; use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; /** @@ -238,15 +238,8 @@ class Response extends \TYPO3\CMS\Extbase\Mvc\Response { } if ($this->request->isCached()) { /** @var PageRenderer $pageRenderer */ - $pageRenderer = NULL; - if ($this->environmentService->isEnvironmentInFrontendMode()) { - $pageRenderer = $this->getTypoScriptFrontendController()->getPageRenderer(); - } elseif ($this->environmentService->isEnvironmentInBackendMode()) { - $pageRenderer = $this->getDocumentTemplate()->getPageRenderer(); - } - if ($pageRenderer !== NULL) { - $pageRenderer->addHeaderData($additionalHeaderData); - } + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + $pageRenderer->addHeaderData($additionalHeaderData); } else { $this->additionalHeaderData[] = $additionalHeaderData; } @@ -296,11 +289,4 @@ class Response extends \TYPO3\CMS\Extbase\Mvc\Response { return $GLOBALS['TSFE']; } - /** - * @return DocumentTemplate - */ - protected function getDocumentTemplate() { - return $GLOBALS['TBE_TEMPLATE']; - } - } \ No newline at end of file diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php index 145e502772db89bb459461635b968bde5cedc7f7..ec06c9d4370e27ba86f9440cf53d12a33dd650ea 100644 --- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php +++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php @@ -14,6 +14,7 @@ namespace TYPO3\CMS\Extensionmanager\ViewHelpers\Be; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Extensionmanager\Controller\AbstractController; /** @@ -43,8 +44,7 @@ class TriggerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendV * @see \TYPO3\CMS\Core\Page\PageRenderer */ public function render($triggers = array()) { - $doc = $this->getDocInstance(); - $pageRenderer = $doc->getPageRenderer(); + $pageRenderer = $this->getPageRenderer(); // Handle triggers if (!empty($triggers[AbstractController::TRIGGER_RefreshModuleMenu])) { $pageRenderer->addJsInlineCode( @@ -55,4 +55,11 @@ class TriggerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendV return ''; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return $this->objectManager->get(PageRenderer::class); + } + } diff --git a/typo3/sysext/filelist/Classes/Controller/FileListController.php b/typo3/sysext/filelist/Classes/Controller/FileListController.php index c7bace2243117738cb09d503ddfc7ccd8020e5e3..56ceaa05624b8b14273605a3f73c9eed62c1405c 100644 --- a/typo3/sysext/filelist/Classes/Controller/FileListController.php +++ b/typo3/sysext/filelist/Classes/Controller/FileListController.php @@ -18,6 +18,7 @@ use TYPO3\CMS\Backend\Template\DocumentTemplate; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Resource\Exception; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Resource\Utility\ListUtility; @@ -269,8 +270,7 @@ class FileListController { $this->doc->backPath = $GLOBALS['BACK_PATH']; $this->doc->setModuleTemplate('EXT:filelist/Resources/Private/Templates/file_list.html'); - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $this->doc->getPageRenderer(); + $pageRenderer = $this->getPageRenderer(); $pageRenderer->loadJQuery(); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Filelist/FileListLocalisation'); @@ -540,4 +540,11 @@ class FileListController { return $GLOBALS['BE_USER']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } + } diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/AbstractBackendViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/AbstractBackendViewHelper.php index 6fba7efce2bee7b1637f128a8838b3d1e8a4847d..ced5645ea1aeffe593a6bb2343e989741ae10757 100644 --- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/AbstractBackendViewHelper.php +++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/AbstractBackendViewHelper.php @@ -22,6 +22,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Be; * */ use TYPO3\CMS\Backend\Template\DocumentTemplate; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper; @@ -50,4 +51,21 @@ abstract class AbstractBackendViewHelper extends AbstractViewHelper { return $doc; } + /** + * Gets instance of PageRenderer if exists or create a new one. + * Saves instance in viewHelperVariableContainer + * + * @return PageRenderer + */ + public function getPageRenderer() { + if ($this->viewHelperVariableContainer->exists(AbstractBackendViewHelper::class, 'PageRenderer')) { + $pageRenderer = $this->viewHelperVariableContainer->get(AbstractBackendViewHelper::class, 'PageRenderer'); + } else { + /** @var $doc DocumentTemplate */ + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + $this->viewHelperVariableContainer->add(AbstractBackendViewHelper::class, 'PageRenderer', $pageRenderer); + } + + return $pageRenderer; + } } diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/ContainerViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/ContainerViewHelper.php index 2079e9e3d8cdf2ae8ffe6a419b536c123d39c322..bd550badc0e12ac6fd26b41be34c9e81c7216603 100644 --- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/ContainerViewHelper.php +++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/ContainerViewHelper.php @@ -71,8 +71,8 @@ class ContainerViewHelper extends AbstractBackendViewHelper { * @see \TYPO3\CMS\Core\Page\PageRenderer */ public function render($pageTitle = '', $enableClickMenu = TRUE, $loadPrototype = TRUE, $loadScriptaculous = FALSE, $scriptaculousModule = '', $loadExtJs = FALSE, $loadExtJsTheme = TRUE, $enableExtJsDebug = FALSE, $loadJQuery = FALSE, $includeCssFiles = NULL, $includeJsFiles = NULL, $addJsInlineLabels = NULL, $includeCsh = TRUE, $includeRequireJsModules = NULL) { + $pageRenderer = $this->getPageRenderer(); $doc = $this->getDocInstance(); - $pageRenderer = $doc->getPageRenderer(); $doc->JScode .= $doc->wrapScriptTags($doc->redirectUrls()); // Load various standard libraries diff --git a/typo3/sysext/form/Classes/View/Wizard/WizardView.php b/typo3/sysext/form/Classes/View/Wizard/WizardView.php index 2b66204277069b3c7f57e0a4fe5d75d9926fdc19..8a3e7e1a85a919da782de02aba5820533817d06d 100644 --- a/typo3/sysext/form/Classes/View/Wizard/WizardView.php +++ b/typo3/sysext/form/Classes/View/Wizard/WizardView.php @@ -16,6 +16,7 @@ namespace TYPO3\CMS\Form\View\Wizard; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -36,7 +37,7 @@ class WizardView extends \TYPO3\CMS\Form\View\Wizard\AbstractWizardView { public $doc; /** - * @var \TYPO3\CMS\Core\Page\PageRenderer + * @var PageRenderer */ protected $pageRenderer; @@ -59,10 +60,9 @@ class WizardView extends \TYPO3\CMS\Form\View\Wizard\AbstractWizardView { $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class); $this->doc->backPath = $GLOBALS['BACK_PATH']; $this->doc->setModuleTemplate('EXT:form/Resources/Private/Templates/Wizard.html'); - $this->pageRenderer = $this->doc->getPageRenderer(); - $this->pageRenderer->enableConcatenateFiles(); - $this->pageRenderer->enableCompressCss(); - $this->pageRenderer->enableCompressJavascript(); + $this->getPageRenderer()->enableConcatenateFiles(); + $this->getPageRenderer()->enableCompressCss(); + $this->getPageRenderer()->enableCompressJavascript(); } /** @@ -355,4 +355,15 @@ class WizardView extends \TYPO3\CMS\Form\View\Wizard\AbstractWizardView { return $bodyContent; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + if (!isset($this->pageRenderer)) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; + } + } diff --git a/typo3/sysext/frontend/Classes/ContentObject/AbstractContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/AbstractContentObject.php index c21bb84aee7c7d8f3c3ef01a8f94a4504426a7d2..bbb1fbc3f30ed399d463aa442940736c8008080f 100644 --- a/typo3/sysext/frontend/Classes/ContentObject/AbstractContentObject.php +++ b/typo3/sysext/frontend/Classes/ContentObject/AbstractContentObject.php @@ -14,6 +14,9 @@ namespace TYPO3\CMS\Frontend\ContentObject; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; + /** * Contains an abstract class for all tslib content class implementations. * @@ -27,6 +30,11 @@ abstract class AbstractContentObject { */ protected $cObj; + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Default constructor. * @@ -53,4 +61,15 @@ abstract class AbstractContentObject { return $this->cObj; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; + } + } diff --git a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php index f7ca37bbc5287c53a62f80a01266986647b84b2a..dfbca23d3a4b42d079a858b05034b710f1ccea19 100644 --- a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php +++ b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php @@ -978,6 +978,7 @@ class TypoScriptFrontendController { * Gets instance of PageRenderer * * @return PageRenderer + * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. This method will become protected then. */ public function getPageRenderer() { if (!isset($this->pageRenderer)) { diff --git a/typo3/sysext/frontend/Classes/Page/PageGenerator.php b/typo3/sysext/frontend/Classes/Page/PageGenerator.php index 7ccb46bdb716fa43ac6edf60295229b2c4978d71..05f6351e7cb1ca1278a30aa261b0a74169a14f11 100644 --- a/typo3/sysext/frontend/Classes/Page/PageGenerator.php +++ b/typo3/sysext/frontend/Classes/Page/PageGenerator.php @@ -157,12 +157,12 @@ class PageGenerator { $tsfe->xhtmlVersion = 200; break; default: - $tsfe->getPageRenderer()->setRenderXhtml(FALSE); + static::getPageRenderer()->setRenderXhtml(FALSE); $tsfe->xhtmlDoctype = ''; $tsfe->xhtmlVersion = 0; } } else { - $tsfe->getPageRenderer()->setRenderXhtml(FALSE); + static::getPageRenderer()->setRenderXhtml(FALSE); } } @@ -236,7 +236,7 @@ class PageGenerator { /** @var TimeTracker $timeTracker */ $timeTracker = $GLOBALS['TT']; - $pageRenderer = $tsfe->getPageRenderer(); + $pageRenderer = static::getPageRenderer(); if ($tsfe->config['config']['moveJsFromHeaderToFooter']) { $pageRenderer->enableMoveJsFromHeaderToFooter(); } @@ -1125,7 +1125,7 @@ class PageGenerator { $titleTagContent = $tsfe->cObj->stdWrap($titleTagContent, $tsfe->config['config']['pageTitle.']); } if ($titleTagContent !== '' && (int)$tsfe->config['config']['noPageTitle'] !== self::NO_PAGE_TITLE) { - $tsfe->getPageRenderer()->setTitle($titleTagContent); + static::getPageRenderer()->setTitle($titleTagContent); } } @@ -1202,4 +1202,11 @@ class PageGenerator { $tsfe->sWordRegEx = rtrim($tsfe->sWordRegEx, '|'); } } + + /** + * @return PageRenderer + */ + static protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } } diff --git a/typo3/sysext/impexp/Classes/Hook/BackendControllerHook.php b/typo3/sysext/impexp/Classes/Hook/BackendControllerHook.php index a0cde946669d8550439448656e665a4e07a8bad7..c2f57a74aa953d9fbc4d48860b5d526ed280d3c9 100644 --- a/typo3/sysext/impexp/Classes/Hook/BackendControllerHook.php +++ b/typo3/sysext/impexp/Classes/Hook/BackendControllerHook.php @@ -15,6 +15,8 @@ namespace TYPO3\CMS\Impexp\Hook; */ use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; /** * This class adds import export related JavaScript to the backend @@ -28,7 +30,14 @@ class BackendControllerHook { * @return void */ public function addJavaScript(array $configuration, \TYPO3\CMS\Backend\Controller\BackendController $backendController) { - $backendController->getPageRenderer()->addInlineSetting('ImportExport', 'moduleUrl', BackendUtility::getModuleUrl('xMOD_tximpexp')); + $this->getPageRenderer()->addInlineSetting('ImportExport', 'moduleUrl', BackendUtility::getModuleUrl('xMOD_tximpexp')); + } + + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); } } diff --git a/typo3/sysext/install/Classes/ViewHelpers/Be/ContainerViewHelper.php b/typo3/sysext/install/Classes/ViewHelpers/Be/ContainerViewHelper.php index f51f372793241b7396b03887e01583d13d159b3d..685f406820ac1b5ca829227037e014d1d72bc305 100644 --- a/typo3/sysext/install/Classes/ViewHelpers/Be/ContainerViewHelper.php +++ b/typo3/sysext/install/Classes/ViewHelpers/Be/ContainerViewHelper.php @@ -62,7 +62,7 @@ class ContainerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBacken */ public function render($pageTitle = '', $enableClickMenu = TRUE, $loadPrototype = TRUE, $loadScriptaculous = FALSE, $scriptaculousModule = '', $loadExtJs = FALSE, $loadExtJsTheme = TRUE, $enableExtJsDebug = FALSE, $addCssFiles = array(), $addJsFiles = array(), $triggers = array()) { $doc = $this->getDocInstance(); - $pageRenderer = $doc->getPageRenderer(); + $pageRenderer = $this->getPageRenderer(); $doc->JScode .= $doc->wrapScriptTags($doc->redirectUrls()); if ($enableClickMenu) { diff --git a/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php b/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php index befada87e1f05f7e6d75ab8bb830cda0b9616cff..65e6eef0fb5232fd9eda77ab81bf0cab0134b952 100644 --- a/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php +++ b/typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php @@ -168,7 +168,7 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu $this->initialize(); // Localization - $this->doc->getPageRenderer()->addInlineLanguageLabelFile( + $this->getPageRenderer()->addInlineLanguageLabelFile( ExtensionManagementUtility::extPath('linkvalidator', 'Resources/Private/Language/Module/locallang.xlf') ); @@ -238,8 +238,8 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu } $this->doc->addStyleSheet('module', 'sysext/linkvalidator/Resources/Public/Styles/styles.css'); - $this->doc->getPageRenderer()->loadJquery(); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Linkvalidator/Linkvalidator'); + $this->getPageRenderer()->loadJquery(); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Linkvalidator/Linkvalidator'); // Don't access in workspace if ($this->getBackendUser()->workspace !== 0) { diff --git a/typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php b/typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php index 6342ecf9206c057db5529082da67fdc97fafea98..d60a954d557c9a5288aba55e7f78bf843368ab08 100644 --- a/typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php +++ b/typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php @@ -306,7 +306,7 @@ class DatabaseIntegrityView extends BaseScriptClass { $this->view->assign('searchMode', $searchMode); switch ($searchMode) { case 'query': - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Core/QueryGenerator'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Core/QueryGenerator'); $this->view->assign('queryMaker', $fullsearch->queryMaker()); break; case 'raw': diff --git a/typo3/sysext/mediace/Classes/ContentObject/FlowPlayerContentObject.php b/typo3/sysext/mediace/Classes/ContentObject/FlowPlayerContentObject.php index c4a1a5f31605ae53f5023c08484c0208f56754a5..59ec55a45e85591254c1b5a5710028f066b803f3 100644 --- a/typo3/sysext/mediace/Classes/ContentObject/FlowPlayerContentObject.php +++ b/typo3/sysext/mediace/Classes/ContentObject/FlowPlayerContentObject.php @@ -15,6 +15,7 @@ namespace TYPO3\CMS\Mediace\ContentObject; */ use TYPO3\CMS\Core\Utility\ArrayUtility; +use TYPO3\CMS\Core\Utility\GeneralUtility; /** * Contains FlowPlayer class object. @@ -207,8 +208,6 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract * @return string Output */ public function render($conf = array()) { - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $GLOBALS['TSFE']->getPageRenderer(); $params = ($prefix = ''); if ($GLOBALS['TSFE']->baseUrl) { $prefix = $GLOBALS['TSFE']->baseUrl; @@ -224,16 +223,16 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract $type = isset($conf['type.']) ? $this->cObj->stdWrap($conf['type'], $conf['type.']) : $conf['type']; $typeConf = $conf[$type . '.']; // Add Flowplayer js-file - $pageRenderer->addJsFile($this->getPathToLibrary('flowplayer/flowplayer-3.2.13.min.js')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('flowplayer/flowplayer-3.2.13.min.js')); // Add Flowpayer css for exprss install - $pageRenderer->addCssFile($this->getPathToLibrary('flowplayer/express-install/express-install.css')); + $this->getPageRenderer()->addCssFile($this->getPathToLibrary('flowplayer/express-install/express-install.css')); // Add videoJS js-file - $pageRenderer->addJsFile($this->getPathToLibrary('videojs/video-js/video.js')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('videojs/video-js/video.js')); // Add videoJS css-file - $pageRenderer->addCssFile($this->getPathToLibrary('videojs/video-js/video-js.css')); + $this->getPageRenderer()->addCssFile($this->getPathToLibrary('videojs/video-js/video-js.css')); // Add extended videoJS control bar - $pageRenderer->addJsFile($this->getPathToLibrary('videojs/video-js/controls/control-bar.js')); - $pageRenderer->addCssFile($this->getPathToLibrary('videojs/video-js/controls/control-bar.css')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('videojs/video-js/controls/control-bar.js')); + $this->getPageRenderer()->addCssFile($this->getPathToLibrary('videojs/video-js/controls/control-bar.css')); // Build Flash configuration $player = isset($typeConf['player.']) ? $this->cObj->stdWrap($typeConf['player'], $typeConf['player.']) : $typeConf['player']; if (!$player) { @@ -315,7 +314,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract // Hook for manipulating the conf array, it's needed for some players like flowplayer if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/hooks/class.tx_cms_mediaitems.php']['swfParamTransform'])) { foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/hooks/class.tx_cms_mediaitems.php']['swfParamTransform'] as $classRef) { - \TYPO3\CMS\Core\Utility\GeneralUtility::callUserFunction($classRef, $conf, $this); + GeneralUtility::callUserFunction($classRef, $conf, $this); } } // Flowplayer config @@ -333,7 +332,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract $videoSources = ''; if (is_array($conf['sources'])) { foreach ($conf['sources'] as $source) { - $fileinfo = \TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($source); + $fileinfo = GeneralUtility::split_fileref($source); $mimeType = $this->mimeTypes[$fileinfo['fileext']]['video']; $videoSources .= '<source src="' . $source . '"' . ($mimeType ? ' type="' . $mimeType . '"' : '') . ' />' . LF; } @@ -342,7 +341,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract $audioSources = ''; if (is_array($conf['audioSources'])) { foreach ($conf['audioSources'] as $source) { - $fileinfo = \TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($source); + $fileinfo = GeneralUtility::split_fileref($source); $mimeType = $this->mimeTypes[$fileinfo['fileext']]['audio']; $audioSources .= '<source src="' . $source . '"' . ($mimeType ? ' type="' . $mimeType . '"' : '') . ' />' . LF; } @@ -352,7 +351,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract // Assemble captions track tag $videoCaptions = '<track id="' . $replaceElementIdString . '_captions_track" kind="captions" src="' . $conf['caption'] . '" default>' . LF; // Add videoJS extension for captions - $pageRenderer->addJsFile($this->getPathToLibrary('videojs/video-js/controls/captions.js')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('videojs/video-js/controls/captions.js')); // Flowplayer captions $conf['videoflashvars']['captionUrl'] = $conf['caption']; // Flowplayer captions plugin configuration @@ -366,7 +365,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract if ($conf['type'] == 'video') { if (is_array($conf['audioSources']) && !empty($conf['audioSources'])) { // Add videoJS audio description toggle - $pageRenderer->addJsFile($this->getPathToLibrary('videojs/video-js/controls/audio-description.js')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('videojs/video-js/controls/audio-description.js')); } if (isset($conf['audioFallback'])) { // Audio description flowplayer config (remove controls) @@ -504,7 +503,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract // Create "source" elements if (is_array($conf['sources']) && !empty($conf['sources'])) { foreach ($conf['sources'] as $source) { - $fileinfo = \TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($source); + $fileinfo = GeneralUtility::split_fileref($source); $mimeType = $this->mimeTypes[$fileinfo['fileext']]['video']; $videoTagAssembly .= ' ' . $replaceElementIdString . '_video_js.appendChild($f.extend(document.createElement("source"), { @@ -557,7 +556,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract // Test whether the browser supports any of types of the provided sources $supported = array(); foreach ($conf['sources'] as $source) { - $fileinfo = \TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($source); + $fileinfo = GeneralUtility::split_fileref($source); $mimeType = $this->mimeTypes[$fileinfo['fileext']]['video']; $supported[] = $replaceElementIdString . '_videoTag.canPlayType("' . $mimeType . '") != ""'; } @@ -596,7 +595,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract // Create "source" elements if (is_array($conf['audioSources']) && !empty($conf['audioSources'])) { foreach ($conf['audioSources'] as $source) { - $fileinfo = \TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($source); + $fileinfo = GeneralUtility::split_fileref($source); $mimeType = $this->mimeTypes[$fileinfo['fileext']]['audio']; $audioTagAssembly .= ' ' . $replaceElementIdString . '_audio_element.appendChild($f.extend(document.createElement("source"), { @@ -637,7 +636,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract // Test whether the browser supports any of types of the provided sources $supported = array(); foreach ($conf['audioSources'] as $source) { - $fileinfo = \TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($source); + $fileinfo = GeneralUtility::split_fileref($source); $mimeType = $this->mimeTypes[$fileinfo['fileext']]['audio']; $supported[] = $replaceElementIdString . '_audioTag.canPlayType("' . $mimeType . '") != ""'; } @@ -714,7 +713,7 @@ class FlowPlayerContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abstract if ($jsInlineCode) { $jsInlineCode = 'VideoJS.DOMReady(function(){' . $jsInlineCode . LF . '});'; } - $pageRenderer->addJsInlineCode($replaceElementIdString, $jsInlineCode); + $this->getPageRenderer()->addJsInlineCode($replaceElementIdString, $jsInlineCode); if (isset($conf['stdWrap.'])) { $content = $this->cObj->stdWrap($content, $conf['stdWrap.']); } diff --git a/typo3/sysext/mediace/Classes/ContentObject/QuicktimeObjectContentObject.php b/typo3/sysext/mediace/Classes/ContentObject/QuicktimeObjectContentObject.php index 45702058f3b58a6170e5783c8afe5773ce298883..63eb6986af4acc3f658a8b18d06a4fd2b641bd5c 100644 --- a/typo3/sysext/mediace/Classes/ContentObject/QuicktimeObjectContentObject.php +++ b/typo3/sysext/mediace/Classes/ContentObject/QuicktimeObjectContentObject.php @@ -51,7 +51,7 @@ class QuicktimeObjectContentObject extends \TYPO3\CMS\Frontend\ContentObject\Abs $typeConf = $conf[$type . '.']; // Add QTobject js-file - $GLOBALS['TSFE']->getPageRenderer()->addJsFile($this->getPathToLibrary('flashmedia/qtobject/qtobject.js')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('flashmedia/qtobject/qtobject.js')); $replaceElementIdString = str_replace('.', '', uniqid('mmqt', TRUE)); $GLOBALS['TSFE']->register['MMQTID'] = $replaceElementIdString; $qtObject = 'QTObject' . $replaceElementIdString; diff --git a/typo3/sysext/mediace/Classes/ContentObject/ShockwaveFlashObjectContentObject.php b/typo3/sysext/mediace/Classes/ContentObject/ShockwaveFlashObjectContentObject.php index 0e97f5366c15ffdba167d396e9c167389d904ec6..ab929d1fd2b50df6db42e17ac81e27e72969f150 100644 --- a/typo3/sysext/mediace/Classes/ContentObject/ShockwaveFlashObjectContentObject.php +++ b/typo3/sysext/mediace/Classes/ContentObject/ShockwaveFlashObjectContentObject.php @@ -40,11 +40,9 @@ class ShockwaveFlashObjectContentObject extends \TYPO3\CMS\Frontend\ContentObjec } $type = isset($conf['type.']) ? $this->cObj->stdWrap($conf['type'], $conf['type.']) : $conf['type']; $typeConf = $conf[$type . '.']; - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ - $pageRenderer = $GLOBALS['TSFE']->getPageRenderer(); // Add SWFobject js-file - $pageRenderer->addJsFile($this->getPathToLibrary('flashmedia/swfobject/swfobject.js')); + $this->getPageRenderer()->addJsFile($this->getPathToLibrary('flashmedia/swfobject/swfobject.js')); $player = isset($typeConf['player.']) ? $this->cObj->stdWrap($typeConf['player'], $typeConf['player.']) : $typeConf['player']; if (strpos($player, 'EXT:') === 0) { $player = $prefix . $GLOBALS['TSFE']->tmpl->getFileName($player); @@ -122,7 +120,7 @@ class ShockwaveFlashObjectContentObject extends \TYPO3\CMS\Frontend\ContentObjec $embed = 'swfobject.embedSWF("' . $conf['player'] . '", "' . $replaceElementIdString . '", "' . $width . '", "' . $height . '", "' . $flashVersion . '", "' . $installUrl . '", ' . $conf['embedParams'] . ');'; $script = $flashvars . $params . $attributes . $embed; - $pageRenderer->addJsInlineCode($replaceElementIdString, $script); + $this->getPageRenderer()->addJsInlineCode($replaceElementIdString, $script); if (isset($conf['stdWrap.'])) { $content = $this->cObj->stdWrap($content, $conf['stdWrap.']); } diff --git a/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php b/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php index 36f716232405cb0db9ebae7aa7590a8d908bd033..79916986c0df0819f318a5c85a6841fdef865707 100644 --- a/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php +++ b/typo3/sysext/opendocs/Classes/Backend/ToolbarItems/OpendocsToolbarItem.php @@ -16,6 +16,7 @@ namespace TYPO3\CMS\Opendocs\Backend\ToolbarItems; use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; use TYPO3\CMS\Backend\Utility\IconUtility; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -262,12 +263,10 @@ class OpendocsToolbarItem implements ToolbarItemInterface { /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } /** diff --git a/typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php b/typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php index 150dfb0b9c1205c9583869f50b42aa466f45257c..93235fb61fdc7967da1ef3b3729e22f92950e38a 100644 --- a/typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php +++ b/typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php @@ -17,10 +17,13 @@ namespace TYPO3\CMS\Recordlist\Browser; use TYPO3\CMS\Backend\Form\FormEngine; use TYPO3\CMS\Backend\RecordList\ElementBrowserRecordList; use TYPO3\CMS\Backend\Template\DocumentTemplate; +use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Database\DatabaseConnection; use TYPO3\CMS\Core\ElementBrowser\ElementBrowserHookInterface; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Resource\Exception; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\FileInterface; @@ -32,8 +35,6 @@ use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\File\BasicFileUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\StringUtility; -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Frontend\Service\TypoLinkCodecService; use TYPO3\CMS\Lang\LanguageService; @@ -248,6 +249,11 @@ class ElementBrowser { */ public $fileProcessor; + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Sets the script url depending on being a module or script request */ @@ -363,8 +369,8 @@ class ElementBrowser { $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class); $this->doc->bodyTagId = 'typo3-browse-links-php'; $this->doc->backPath = $GLOBALS['BACK_PATH']; - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/BrowseLinks'); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/BrowseLinks'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree'); } /** @@ -2617,4 +2623,15 @@ class ElementBrowser { return $GLOBALS['TYPO3_DB']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; + } + } diff --git a/typo3/sysext/recordlist/Classes/Controller/ElementBrowserFramesetController.php b/typo3/sysext/recordlist/Classes/Controller/ElementBrowserFramesetController.php index 4806294bbb58aefdbb9a0b170f1d06e2eb411253..d3ee0aea73695647122151dd1f05c90490b6ff07 100644 --- a/typo3/sysext/recordlist/Classes/Controller/ElementBrowserFramesetController.php +++ b/typo3/sysext/recordlist/Classes/Controller/ElementBrowserFramesetController.php @@ -34,6 +34,11 @@ class ElementBrowserFramesetController { */ public $content; + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Main function. * Creates the header code in XHTML, the JavaScript, then the frameset for the two frames. @@ -67,7 +72,7 @@ class ElementBrowserFramesetController { // Create the frameset for the window // Formerly there were a ' onunload="closing();"' in the <frameset> tag - but it failed on Safari browser on Mac unless the handler was "onUnload" - $this->content = $documentTemplate->getPageRenderer()->render(PageRenderer::PART_HEADER) . + $this->content = $this->getPageRenderer()->render(PageRenderer::PART_HEADER) . '<frameset rows="*,1" framespacing="0" frameborder="0" border="0"> <frame name="content" src="' . htmlspecialchars($url) . '" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" noresize="noresize" /> <frame name="menu" src="' . htmlspecialchars(BackendUtility::getModuleUrl('dummy')) . '" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" noresize="noresize" /> @@ -99,4 +104,15 @@ class ElementBrowserFramesetController { return $GLOBALS['LANG']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; + } + } diff --git a/typo3/sysext/recordlist/Classes/RecordList.php b/typo3/sysext/recordlist/Classes/RecordList.php index 61beb5d46b8aa73ef583dd655dfceecfb9f10a1a..84a4ba98c15868599f808560cfab8123a022e46d 100644 --- a/typo3/sysext/recordlist/Classes/RecordList.php +++ b/typo3/sysext/recordlist/Classes/RecordList.php @@ -16,14 +16,15 @@ namespace TYPO3\CMS\Recordlist; use TYPO3\CMS\Backend\Clipboard\Clipboard; use TYPO3\CMS\Backend\Template\DocumentTemplate; +use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Type\Bitmask\Permission; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Extbase\Service\TypoScriptService; use TYPO3\CMS\Lang\LanguageService; @@ -181,6 +182,11 @@ class RecordList { */ public $body = ''; + /** + * @var PageRenderer + */ + protected $pageRenderer = NULL; + /** * Constructor */ @@ -216,7 +222,7 @@ class RecordList { $this->menuConfig(); // Store session data $backendUser->setAndSaveSessionData(RecordList::class, $sessionData); - $this->getDocumentTemplate()->getPageRenderer()->addInlineLanguageLabelFile('EXT:lang/locallang_mod_web_list.xlf'); + $this->getPageRenderer()->addInlineLanguageLabelFile('EXT:lang/locallang_mod_web_list.xlf'); } /** @@ -266,14 +272,14 @@ class RecordList { $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class); $this->doc->backPath = $GLOBALS['BACK_PATH']; $this->doc->setModuleTemplate('EXT:recordlist/Resources/Private/Templates/db_list.html'); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/AjaxDataHandler'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/AjaxDataHandler'); $calcPerms = $backendUser->calcPerms($this->pageinfo); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/PageActions', 'function(PageActions) { + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/PageActions', 'function(PageActions) { PageActions.setPageId(' . (int)$this->id . '); PageActions.setCanEditPage(' . ($calcPerms & Permission::PAGE_EDIT && !empty($this->id) ? 'true' : 'false') . '); PageActions.initializePageTitleRenaming(); }'); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Recordlist/Tooltip'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Recordlist/Tooltip'); // Apply predefined values for hidden checkboxes // Set predefined value for DisplayBigControlPanel: if ($this->modTSconfig['properties']['enableDisplayBigControlPanel'] === 'activated') { @@ -568,10 +574,14 @@ class RecordList { } /** - * @return DocumentTemplate + * @return PageRenderer */ - protected function getDocumentTemplate() { - return $GLOBALS['TBE_TEMPLATE']; + protected function getPageRenderer() { + if ($this->pageRenderer === NULL) { + $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + } + + return $this->pageRenderer; } } diff --git a/typo3/sysext/recycler/Classes/Controller/RecyclerModuleController.php b/typo3/sysext/recycler/Classes/Controller/RecyclerModuleController.php index f8bd3e85e72781436dfde5fe16d88226b602ed6e..0dd6abb951029611ebcd12e9a703400b2478078b 100644 --- a/typo3/sysext/recycler/Classes/Controller/RecyclerModuleController.php +++ b/typo3/sysext/recycler/Classes/Controller/RecyclerModuleController.php @@ -14,6 +14,7 @@ namespace TYPO3\CMS\Recycler\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -176,11 +177,9 @@ class RecyclerModuleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionC /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } } diff --git a/typo3/sysext/rtehtmlarea/Classes/BrowseLinks.php b/typo3/sysext/rtehtmlarea/Classes/BrowseLinks.php index 05dda5c64cea7bd550e8a4913a90b9a20061c120..fcf138a8b5c924d92922d5100941253b43831c3a 100644 --- a/typo3/sysext/rtehtmlarea/Classes/BrowseLinks.php +++ b/typo3/sysext/rtehtmlarea/Classes/BrowseLinks.php @@ -135,10 +135,10 @@ class BrowseLinks extends \TYPO3\CMS\Recordlist\Browser\ElementBrowser { $this->doc->getContextMenuCode(); // Apply the same styles as those of the base script $this->doc->bodyTagId = 'typo3-browse-links-php'; - $this->doc->getPageRenderer()->addCssFile($this->doc->backPath . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('t3skin') . 'rtehtmlarea/htmlarea.css'); + $this->getPageRenderer()->addCssFile($this->doc->backPath . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('t3skin') . 'rtehtmlarea/htmlarea.css'); // Add attributes to body tag. Note: getBodyTagAdditions will invoke the hooks $this->doc->bodyTagAdditions = $this->getBodyTagAdditions(); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree', 'function(Tree) { + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree', 'function(Tree) { Tree.ajaxID = "SC_alt_file_navframe::expandCollapse"; }'); } diff --git a/typo3/sysext/rtehtmlarea/Classes/Form/Element/RichTextElement.php b/typo3/sysext/rtehtmlarea/Classes/Form/Element/RichTextElement.php index 5b5425791e6583c89ffe72e73d1155c74fbb2df2..effe47e91a2c7f87bc81a7f20a0d9fa7c8662b81 100644 --- a/typo3/sysext/rtehtmlarea/Classes/Form/Element/RichTextElement.php +++ b/typo3/sysext/rtehtmlarea/Classes/Form/Element/RichTextElement.php @@ -1357,7 +1357,7 @@ class RichTextElement extends AbstractFormElement { * @return PageRenderer */ protected function getPageRenderer() { - return $GLOBALS['SOBE']->doc->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } } diff --git a/typo3/sysext/rtehtmlarea/Classes/SelectImage.php b/typo3/sysext/rtehtmlarea/Classes/SelectImage.php index 3c3083016ed4a5a8d65d0b67c5a5c5379edf2b18..724db85cecaf0d8fac3660feaa306888b08a9c69 100644 --- a/typo3/sysext/rtehtmlarea/Classes/SelectImage.php +++ b/typo3/sysext/rtehtmlarea/Classes/SelectImage.php @@ -132,17 +132,17 @@ class SelectImage extends \TYPO3\CMS\Recordlist\Browser\ElementBrowser { $this->doc->bodyTagId = 'typo3-browse-links-php'; $this->doc->bodyTagAdditions = $this->getBodyTagAdditions(); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree', 'function(Tree) { + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree', 'function(Tree) { Tree.ajaxID = "SC_alt_file_navframe::expandCollapse"; }'); - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Rtehtmlarea/Modules/SelectImage', 'function(SelectImage) { + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Rtehtmlarea/Modules/SelectImage', 'function(SelectImage) { SelectImage.editorNo = ' . GeneralUtility::quoteJSvalue($this->editorNo) . '; SelectImage.act = ' . GeneralUtility::quoteJSvalue(($this->act ?: reset($this->allowedItems))) . '; SelectImage.sys_language_content = ' . GeneralUtility::quoteJSvalue($this->sys_language_content) . '; SelectImage.RTEtsConfigParams = ' . GeneralUtility::quoteJSvalue(rawurlencode($this->RTEtsConfigParams)) . '; SelectImage.bparams = ' . GeneralUtility::quoteJSvalue($this->bparams) . '; }'); - $this->doc->getPageRenderer()->addCssFile($this->doc->backPath . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('t3skin') . 'rtehtmlarea/htmlarea.css'); + $this->getPageRenderer()->addCssFile($this->doc->backPath . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('t3skin') . 'rtehtmlarea/htmlarea.css'); $this->doc->getContextMenuCode(); } diff --git a/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php b/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php index 3b1bb4f8139fbdb5f86ecb6370fa8195bc3be39a..739325f11405ed6c2df7daee0cf4d431abe3fa4d 100644 --- a/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php +++ b/typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php @@ -14,14 +14,15 @@ namespace TYPO3\CMS\Scheduler\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Backend\Utility\IconUtility; use TYPO3\CMS\Core\Database\DatabaseConnection; +use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Messaging\FlashMessageQueue; use TYPO3\CMS\Core\Messaging\FlashMessageService; +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Backend\Utility\IconUtility; -use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Fluid\ViewHelpers\Be\InfoboxViewHelper; use TYPO3\CMS\Saltedpasswords\Salt\SaltFactory; use TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility; @@ -68,11 +69,6 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas */ protected $scheduler; - /** - * @var \TYPO3\CMS\Core\Page\PageRenderer - */ - protected $pageRenderer; - /** * @var string */ @@ -126,8 +122,6 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas $this->doc->bodyTagId = 'typo3-mod-php'; $this->doc->bodyTagAdditions = 'class="tx_scheduler_mod1"'; - $this->pageRenderer = $this->doc->getPageRenderer(); - // Create scheduler instance $this->scheduler = GeneralUtility::makeInstance(\TYPO3\CMS\Scheduler\Scheduler::class); } @@ -647,9 +641,9 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas } // Load necessary JavaScript - $this->pageRenderer->loadJquery(); - $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Scheduler/Scheduler'); - $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/DateTimePicker'); + $this->getPageRenderer()->loadJquery(); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Scheduler/Scheduler'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/DateTimePicker'); // Start rendering the add/edit form $this->view->assign('uid', htmlspecialchars($this->submittedData['uid'])); @@ -921,8 +915,8 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas $this->view->setTemplatePathAndFilename($this->backendTemplatePath . 'ListTasksNoTasks.html'); return $this->view->render(); } else { - $this->pageRenderer->loadJquery(); - $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Scheduler/Scheduler'); + $this->getPageRenderer()->loadJquery(); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Scheduler/Scheduler'); $table = array(); // Header row $table[] = diff --git a/typo3/sysext/t3editor/Classes/Hook/FileEditHook.php b/typo3/sysext/t3editor/Classes/Hook/FileEditHook.php index 0222872cd2385b9d12a201886a29d1dfd810ae79..fff98bce4df16e30c7389239a27d15ad64d1bbb5 100644 --- a/typo3/sysext/t3editor/Classes/Hook/FileEditHook.php +++ b/typo3/sysext/t3editor/Classes/Hook/FileEditHook.php @@ -14,6 +14,7 @@ namespace TYPO3\CMS\T3editor\Hook; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -71,7 +72,7 @@ class FileEditHook { if (GeneralUtility::_GET('M') === 'file_edit') { $t3editor = $this->getT3editor(); $documentTemplate->JScode .= $t3editor->getJavascriptCode($documentTemplate); - $documentTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/T3editor/FileEdit'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/T3editor/FileEdit'); } } @@ -112,4 +113,11 @@ class FileEditHook { return $savingsuccess; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } + } diff --git a/typo3/sysext/t3editor/Classes/T3editor.php b/typo3/sysext/t3editor/Classes/T3editor.php index ce78c7adc159af0735bc8143600f51742c909992..6719686d323168504e06c601252f9dad47f232ad 100644 --- a/typo3/sysext/t3editor/Classes/T3editor.php +++ b/typo3/sysext/t3editor/Classes/T3editor.php @@ -13,6 +13,8 @@ namespace TYPO3\CMS\T3editor; * * The TYPO3 project - inspiring people to share! */ + +use TYPO3\CMS\Core\Page\PageRenderer; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -163,8 +165,7 @@ class T3editor implements \TYPO3\CMS\Core\SingletonInterface { $path_t3e = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('t3editor'); $path_codemirror = 'contrib/codemirror/js/'; // Include needed javascript-frameworks - $pageRenderer = $doc->getPageRenderer(); - /** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */ + $pageRenderer = $this->getPageRenderer(); $pageRenderer->loadPrototype(); $pageRenderer->loadScriptaculous(); // Include editor-css @@ -381,4 +382,11 @@ class T3editor implements \TYPO3\CMS\Core\SingletonInterface { $ajaxObj->setContentFormat('jsonbody'); } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } + } diff --git a/typo3/sysext/taskcenter/Classes/Controller/TaskModuleController.php b/typo3/sysext/taskcenter/Classes/Controller/TaskModuleController.php index 6ad6ab8d57cacc92f792f8c0ab92ea48c1d112c4..463609f1c28303a471b94b52f095c61f4a65a0f5 100644 --- a/typo3/sysext/taskcenter/Classes/Controller/TaskModuleController.php +++ b/typo3/sysext/taskcenter/Classes/Controller/TaskModuleController.php @@ -53,7 +53,7 @@ class TaskModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass { $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class); $this->doc->setModuleTemplate(ExtensionManagementUtility::extPath('taskcenter') . 'Resources/Private/Templates/mod_template.html'); $this->doc->backPath = $GLOBALS['BACK_PATH']; - $this->doc->getPageRenderer()->loadJquery(); + $this->getPageRenderer()->loadJquery(); $this->doc->addStyleSheet('tx_taskcenter', '../' . ExtensionManagementUtility::siteRelPath('taskcenter') . 'Resources/Public/Styles/styles.css'); } @@ -218,7 +218,7 @@ class TaskModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass { $count = 0; // Change the sorting of items to the user's one if ($mainMenu) { - $this->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Taskcenter/Taskcenter'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Taskcenter/Taskcenter'); $userSorting = unserialize($this->getBackendUser()->uc['taskcenter']['sorting']); if (is_array($userSorting)) { $newSorting = array(); diff --git a/typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateConstantEditorModuleFunctionController.php b/typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateConstantEditorModuleFunctionController.php index f05c70c34f921437cfe2b664f85a91e55341bf68..14ebb6231a412a3df14e69a6a26b0e28187a285b 100644 --- a/typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateConstantEditorModuleFunctionController.php +++ b/typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateConstantEditorModuleFunctionController.php @@ -124,7 +124,7 @@ class TypoScriptTemplateConstantEditorModuleFunctionController extends AbstractF $tplRow = $this->getTemplateRow(); $theConstants = $this->getConstants(); - $this->pObj->doc->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Tstemplate/ConstantEditor'); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Tstemplate/ConstantEditor'); $saveId = $tplRow['_ORIG_uid'] ? $tplRow['_ORIG_uid'] : $tplRow['uid']; // Update template ? if (GeneralUtility::_POST('submit') || MathUtility::canBeInterpretedAsInteger(GeneralUtility::_POST('submit_x')) && MathUtility::canBeInterpretedAsInteger(GeneralUtility::_POST('submit_y'))) { diff --git a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php index b2e17a43b9d78a59a098a5905cd9b816b0a94409..574513dda966ab58f4da4f33fb39451f8554c290 100644 --- a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php +++ b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php @@ -15,6 +15,8 @@ namespace TYPO3\CMS\Viewpage\Controller; */ use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; /** * Controller for viewing the frontend @@ -31,7 +33,8 @@ class ViewModuleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionContr */ public function initializeAction() { $GLOBALS['LANG']->includeLLFile('EXT:viewpage/Resources/Private/Language/locallang.xlf'); - $GLOBALS['TBE_TEMPLATE']->getPageRenderer()->addInlineLanguageLabelFile('EXT:viewpage/Resources/Private/Language/locallang.xlf'); + $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + $pageRenderer->addInlineLanguageLabelFile('EXT:viewpage/Resources/Private/Language/locallang.xlf'); } /** @@ -50,12 +53,12 @@ class ViewModuleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionContr * @return string */ protected function getTargetUrl() { - $pageIdToShow = (int)\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id'); + $pageIdToShow = (int)GeneralUtility::_GP('id'); $adminCommand = $this->getAdminCommand($pageIdToShow); $domainName = $this->getDomainName($pageIdToShow); // Mount point overlay: Set new target page id and mp parameter /** @var \TYPO3\CMS\Frontend\Page\PageRepository $sysPage */ - $sysPage = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\Page\PageRepository::class); + $sysPage = GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\Page\PageRepository::class); $sysPage->init(FALSE); $mountPointMpParameter = ''; $finalPageIdToShow = $pageIdToShow; @@ -74,7 +77,7 @@ class ViewModuleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionContr } else { $protocol = 'http'; $page = (array)$sysPage->getPage($finalPageIdToShow); - if ($page['url_scheme'] == 2 || $page['url_scheme'] == 0 && \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SSL')) { + if ($page['url_scheme'] == 2 || $page['url_scheme'] == 0 && GeneralUtility::getIndpEnv('TYPO3_SSL')) { $protocol = 'https'; } $protocolAndHost = $protocol . '://' . $domainName; @@ -139,7 +142,7 @@ class ViewModuleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionContr * @return array */ protected function getPreviewFrameWidths() { - $pageId = (int)\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id'); + $pageId = (int)GeneralUtility::_GP('id'); $modTSconfig = BackendUtility::getModTSconfig($pageId, 'mod.web_view'); $widths = array( '100%|100%' => $GLOBALS['LANG']->getLL('autoSize') diff --git a/typo3/sysext/wizard_crpages/Classes/Controller/CreatePagesWizardModuleFunctionController.php b/typo3/sysext/wizard_crpages/Classes/Controller/CreatePagesWizardModuleFunctionController.php index 4f982786357d2d2eb4d14ae6fb9eb781d36b0cde..82d38b5d6419c38ae6a346d226ffa6bc5d781f9e 100644 --- a/typo3/sysext/wizard_crpages/Classes/Controller/CreatePagesWizardModuleFunctionController.php +++ b/typo3/sysext/wizard_crpages/Classes/Controller/CreatePagesWizardModuleFunctionController.php @@ -163,13 +163,11 @@ class CreatePagesWizardModuleFunctionController extends \TYPO3\CMS\Backend\Modul <input class="btn btn-default" type="reset" value="' . $this->getLanguageService()->getLL('wiz_newPages_lReset') . '" /> </div>'; - /** @var \TYPO3\CMS\Core\Page\PageRenderer $pageRenderer */ - $pageRenderer = $GLOBALS['TBE_TEMPLATE']->getPageRenderer(); - $pageRenderer->loadJquery(); - $pageRenderer->loadRequireJsModule('TYPO3/CMS/WizardCrpages/WizardCreatePages'); + $this->getPageRenderer()->loadJquery(); + $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/WizardCrpages/WizardCreatePages'); // Add inline code $inlineJavaScriptCode = 'var tpl = "' . addslashes(str_replace(array(LF, TAB), array('', ''), $this->getFormLine('#'))) . '", i, line, div, bg, label;'; - $pageRenderer->addJsInlineCode('wizard_crpages', $inlineJavaScriptCode); + $this->getPageRenderer()->addJsInlineCode('wizard_crpages', $inlineJavaScriptCode); } } else { $theCode .= GeneralUtility::makeInstance(FlashMessage::class, '', $this->getLanguageService()->getLL('wiz_newPages_errorMsg1'), FlashMessage::ERROR)->render(); diff --git a/typo3/sysext/workspaces/Classes/Backend/ToolbarItems/WorkspaceSelectorToolbarItem.php b/typo3/sysext/workspaces/Classes/Backend/ToolbarItems/WorkspaceSelectorToolbarItem.php index 64d734312fbaea4fdc4be6a2dde25aed7ec5c15f..aaa66577b0d3b1ff41b09cded9c1a13c57e8da78 100644 --- a/typo3/sysext/workspaces/Classes/Backend/ToolbarItems/WorkspaceSelectorToolbarItem.php +++ b/typo3/sysext/workspaces/Classes/Backend/ToolbarItems/WorkspaceSelectorToolbarItem.php @@ -14,10 +14,11 @@ namespace TYPO3\CMS\Workspaces\Backend\ToolbarItems; * The TYPO3 project - inspiring people to share! */ -use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface; -use TYPO3\CMS\Workspaces\Service\WorkspaceService; use TYPO3\CMS\Backend\Utility\IconUtility; +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Workspaces\Service\WorkspaceService; /** * Class to render the workspace selector @@ -166,12 +167,10 @@ class WorkspaceSelectorToolbarItem implements ToolbarItemInterface { /** * Returns current PageRenderer * - * @return \TYPO3\CMS\Core\Page\PageRenderer + * @return PageRenderer */ protected function getPageRenderer() { - /** @var \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplate */ - $documentTemplate = $GLOBALS['TBE_TEMPLATE']; - return $documentTemplate->getPageRenderer(); + return GeneralUtility::makeInstance(PageRenderer::class); } /** diff --git a/typo3/sysext/workspaces/Classes/Controller/AbstractController.php b/typo3/sysext/workspaces/Classes/Controller/AbstractController.php index 4bd58e4fcfd92954565941b9317dd7e3ee076a66..bea907a9c0a47f41c9db9235d23a4e18a36befe3 100644 --- a/typo3/sysext/workspaces/Classes/Controller/AbstractController.php +++ b/typo3/sysext/workspaces/Classes/Controller/AbstractController.php @@ -14,6 +14,9 @@ namespace TYPO3\CMS\Workspaces\Controller; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\GeneralUtility; + /** * Abstract action controller. * @@ -27,7 +30,7 @@ class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControl protected $extensionName = 'Workspaces'; /** - * @var \TYPO3\CMS\Core\Page\PageRenderer + * @var PageRenderer */ protected $pageRenderer; @@ -43,7 +46,7 @@ class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControl */ protected function initializeAction() { // @todo Evaluate how the intval() call can be used with Extbase validators/filters - $this->pageId = (int)\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id'); + $this->pageId = (int)GeneralUtility::_GP('id'); $icons = array( 'language' => \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconClasses('flags-multiple'), 'integrity' => \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconClasses('status-dialog-information'), @@ -100,8 +103,8 @@ class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControl * @return void */ public function processRequest(\TYPO3\CMS\Extbase\Mvc\RequestInterface $request, \TYPO3\CMS\Extbase\Mvc\ResponseInterface $response) { - $this->template = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class); - $this->pageRenderer = $this->template->getPageRenderer(); + $this->template = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class); + $this->pageRenderer = $this->getPageRenderer(); $GLOBALS['SOBE'] = new \stdClass(); $GLOBALS['SOBE']->doc = $this->template; parent::processRequest($request, $response); @@ -145,4 +148,11 @@ class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControl return $GLOBALS['BE_USER']; } + /** + * @return PageRenderer + */ + protected function getPageRenderer() { + return GeneralUtility::makeInstance(PageRenderer::class); + } + }