[TASK] Use only one instance of iconFactory per class 34/43834/8
authorFrank Nägler <frank.naegler@typo3.org>
Mon, 5 Oct 2015 20:05:42 +0000 (22:05 +0200)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Fri, 9 Oct 2015 16:45:57 +0000 (18:45 +0200)
Resolves: #70550
Releases: master
Change-Id: I55bc6c2396688db1fa26b8662b82d0c2b43b2226
Reviewed-on: http://review.typo3.org/43834
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
24 files changed:
typo3/sysext/backend/Classes/Backend/ToolbarItems/ClearCacheToolbarItem.php
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/File/CreateFolderController.php
typo3/sysext/backend/Classes/Controller/File/EditFileController.php
typo3/sysext/backend/Classes/Controller/File/FileUploadController.php
typo3/sysext/backend/Classes/Controller/File/RenameFileController.php
typo3/sysext/backend/Classes/Controller/File/ReplaceFileController.php
typo3/sysext/backend/Classes/Controller/NewRecordController.php
typo3/sysext/backend/Classes/Controller/PageTreeNavigationController.php
typo3/sysext/backend/Classes/Form/Wizard/SuggestWizardDefaultReceiver.php
typo3/sysext/backend/Classes/RecordList/AbstractRecordList.php
typo3/sysext/backend/Classes/Tree/Pagetree/Commands.php
typo3/sysext/core/Classes/Database/QueryView.php
typo3/sysext/documentation/Classes/ViewHelpers/FormatsViewHelper.php
typo3/sysext/fluid/Classes/ViewHelpers/Be/PageInfoViewHelper.php
typo3/sysext/frontend/Classes/View/AdminPanelView.php
typo3/sysext/impexp/Classes/ImportExport.php
typo3/sysext/info_pagetsconfig/Classes/Controller/InfoPageTyposcriptConfigController.php
typo3/sysext/linkvalidator/Classes/Report/LinkValidatorReport.php
typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php
typo3/sysext/sys_action/Classes/Backend/ToolbarItems/ActionToolbarItem.php
typo3/sysext/taskcenter/Classes/Controller/TaskModuleController.php
typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateInformationModuleFunctionController.php
typo3/sysext/wizard_crpages/Classes/Controller/CreatePagesWizardModuleFunctionController.php

index 4a4d175..31e653a 100644 (file)
@@ -38,6 +38,11 @@ class ClearCacheToolbarItem implements ToolbarItemInterface
     protected $optionValues = array();
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      *
      * @throws \UnexpectedValueException
@@ -46,7 +51,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface
     {
         $backendUser = $this->getBackendUser();
         $languageService = $this->getLanguageService();
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
 
         $this->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/Toolbar/ClearCacheMenu');
 
@@ -57,7 +62,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface
                 'title' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushPageCachesTitle', true),
                 'description' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushPageCachesDescription', true),
                 'href' => BackendUtility::getModuleUrl('tce_db', ['vC' => $backendUser->veriCode(), 'cacheCmd' => 'pages', 'ajaxCall' => 1]),
-                'icon' => $iconFactory->getIcon('actions-system-cache-clear-impact-low', Icon::SIZE_SMALL)->render()
+                'icon' => $this->iconFactory->getIcon('actions-system-cache-clear-impact-low', Icon::SIZE_SMALL)->render()
             );
             $this->optionValues[] = 'pages';
         }
@@ -69,7 +74,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface
                 'title' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushGeneralCachesTitle', true),
                 'description' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushGeneralCachesDescription', true),
                 'href' => BackendUtility::getModuleUrl('tce_db', ['vC' => $backendUser->veriCode(), 'cacheCmd' => 'all', 'ajaxCall' => 1]),
-                'icon' => $iconFactory->getIcon('actions-system-cache-clear-impact-medium', Icon::SIZE_SMALL)->render()
+                'icon' => $this->iconFactory->getIcon('actions-system-cache-clear-impact-medium', Icon::SIZE_SMALL)->render()
             );
             $this->optionValues[] = 'all';
         }
@@ -85,7 +90,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface
                 'title' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushSystemCachesTitle', true),
                 'description' => $languageService->sL('LLL:EXT:lang/locallang_core.xlf:flushSystemCachesDescription', true),
                 'href' => BackendUtility::getModuleUrl('tce_db', ['vC' => $backendUser->veriCode(), 'cacheCmd' => 'system', 'ajaxCall' => 1]),
-                'icon' => $iconFactory->getIcon('actions-system-cache-clear-impact-high', Icon::SIZE_SMALL)->render()
+                'icon' => $this->iconFactory->getIcon('actions-system-cache-clear-impact-high', Icon::SIZE_SMALL)->render()
             );
             $this->optionValues[] = 'system';
         }
@@ -131,8 +136,7 @@ class ClearCacheToolbarItem implements ToolbarItemInterface
     public function getItem()
     {
         $title = $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:rm.clearCache_clearCache', true);
-        $iconRegistry = GeneralUtility::makeInstance(IconFactory::class);
-        return '<span title="' . $title . '">' . $iconRegistry->getIcon('apps-toolbar-menu-cache', Icon::SIZE_SMALL)->render() . '</span>';
+        return '<span title="' . $title . '">' . $this->iconRegistry->getIcon('apps-toolbar-menu-cache', Icon::SIZE_SMALL)->render() . '</span>';
     }
 
     /**
index 6e9f76a..522cb1f 100644 (file)
@@ -1126,14 +1126,12 @@ class EditDocumentController
             'translation_save' => '',
             'translation_saveclear' => ''
         );
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         // Render SAVE type buttons:
         // The action of each button is decided by its name attribute. (See doProcessData())
         if (!$this->errorC && !$GLOBALS['TCA'][$this->firstEl['table']]['ctrl']['readOnly']) {
             // SAVE button:
             $buttons['save'] = '<button name="_savedok" class="c-inputButton" value="1" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveDoc', true) . '">'
-                . $iconFactory->getIcon('actions-document-save', Icon::SIZE_SMALL)->render()
+                . $this->iconFactory->getIcon('actions-document-save', Icon::SIZE_SMALL)->render()
                 . '</button>';
             // SAVE / VIEW button:
             if ($this->viewId && !$this->noView && $this->getNewIconMode($this->firstEl['table'], 'saveDocView')) {
@@ -1146,27 +1144,27 @@ class EditDocumentController
                 }
                 if (!in_array((int)$this->pageinfo['doktype'], $excludeDokTypes, true) || isset($pagesTSconfig['TCEMAIN.']['preview.'][$this->firstEl['table'] . '.']['previewPageId'])) {
                     $buttons['save_view'] = '<button name="_savedokview" class="c-inputButton t3js-editform-submitButton" value="1" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveDocShow', true) . '" onclick="window.open(\'\', \'newTYPO3frontendWindow\');">'
-                        . $iconFactory->getIcon('actions-document-save-view', Icon::SIZE_SMALL)->render()
+                        . $this->iconFactory->getIcon('actions-document-save-view', Icon::SIZE_SMALL)->render()
                         . '</button>';
                 }
             }
             // SAVE / NEW button:
             if (count($this->elementsData) === 1 && $this->getNewIconMode($this->firstEl['table'])) {
                 $buttons['save_new'] = '<button name="_savedoknew" class="c-inputButton t3js-editform-submitButton" value="1" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveNewDoc', true) . '">'
-                    . $iconFactory->getIcon('actions-document-save-new', Icon::SIZE_SMALL)->render()
+                    . $this->iconFactory->getIcon('actions-document-save-new', Icon::SIZE_SMALL)->render()
                     . '</button>';
             }
             // SAVE / CLOSE
             $buttons['save_close'] = '<button name="_saveandclosedok" class="c-inputButton t3js-editform-submitButton" value="1" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.saveCloseDoc', true) . '">'
-                . $iconFactory->getIcon('actions-document-save-close', Icon::SIZE_SMALL)->render()
+                . $this->iconFactory->getIcon('actions-document-save-close', Icon::SIZE_SMALL)->render()
                 . '</button>';
             // FINISH TRANSLATION / SAVE / CLOSE
             if ($GLOBALS['TYPO3_CONF_VARS']['BE']['explicitConfirmationOfTranslation']) {
                 $buttons['translation_save'] = '<button name="_translation_savedok" class="c-inputButton" value="1" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.translationSaveDoc', true) . '">'
-                    . $iconFactory->getIcon('actions-document-save-translation', Icon::SIZE_SMALL)->render()
+                    . $this->iconFactory->getIcon('actions-document-save-translation', Icon::SIZE_SMALL)->render()
                     . '</button>';
                 $buttons['translation_saveclear'] = '<button name="_translation_savedokclear" class="c-inputButton" value="1" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:rm.translationSaveDocClear', true) . '">'
-                    . $iconFactory->getIcon('actions-document-save-cleartranslationcache', Icon::SIZE_SMALL)->render()
+                    . $this->iconFactory->getIcon('actions-document-save-cleartranslationcache', Icon::SIZE_SMALL)->render()
                     . '</button>';
             }
         }
index ce51cb1..9c20996 100644 (file)
@@ -84,11 +84,17 @@ class CreateFolderController
     public $content;
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
     {
         $GLOBALS['SOBE'] = $this;
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->init();
     }
 
@@ -119,9 +125,7 @@ class CreateFolderController
         }
 
         // Setting the title and the icon
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        $icon = $iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
+        $icon = $this->iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
         $this->title = $icon . htmlspecialchars($this->folderObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->folderObject->getIdentifier());
         // Setting template object
         $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
@@ -284,10 +288,9 @@ class CreateFolderController
         $docHeaderButtons = array(
             'back' => ''
         );
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         // Back
         if ($this->returnUrl) {
-            $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(GeneralUtility::linkThisUrl($this->returnUrl)) . '" class="typo3-goBack" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">' . $iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render() . '</a>';
+            $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(GeneralUtility::linkThisUrl($this->returnUrl)) . '" class="typo3-goBack" title="' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">' . $this->iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render() . '</a>';
         }
         // Add the HTML as a section:
         $markerArray = array(
index 1a7d093..f7ae33f 100644 (file)
@@ -114,9 +114,7 @@ class EditFileController
         }
 
         // Setting the title and the icon
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        $icon = $iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
+        $icon = $this->iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
         $this->title = $icon . htmlspecialchars($this->fileObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->fileObject->getIdentifier());
 
         // Setting template object
index dff9446..5baa388 100644 (file)
@@ -69,11 +69,17 @@ class FileUploadController
     protected $folderObject;
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
     {
         $GLOBALS['SOBE'] = $this;
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->getLanguageService()->includeLLFile('EXT:lang/locallang_misc.xlf');
         $this->init();
     }
@@ -106,9 +112,7 @@ class FileUploadController
             throw new \RuntimeException($title . ': ' . $message, 1294586843);
         }
         // Setting the title and the icon
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        $icon = $iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
+        $icon = $this->iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
         $this->title = $icon . htmlspecialchars($this->folderObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->folderObject->getIdentifier());
         // Setting template object
         $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
@@ -140,8 +144,7 @@ class FileUploadController
         );
         // Back
         if ($this->returnUrl) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-            $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::linkThisUrl($this->returnUrl)) . '" class="typo3-goBack" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">' . $iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render() . '</a>';
+            $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::linkThisUrl($this->returnUrl)) . '" class="typo3-goBack" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">' . $this->iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render() . '</a>';
         }
         $this->content .= $this->doc->moduleBody(array(), $docHeaderButtons, $markerArray);
         $this->content .= $this->doc->endPage();
index 3b903eb..6fd2f44 100644 (file)
@@ -72,11 +72,17 @@ class RenameFileController
     public $content;
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
     {
         $GLOBALS['SOBE'] = $this;
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->init();
     }
 
@@ -115,9 +121,7 @@ class RenameFileController
             }
         }
         // Setting icon and title
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        $icon = $iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
+        $icon = $this->iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
         $this->title = $icon . htmlspecialchars($this->fileOrFolderObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->fileOrFolderObject->getIdentifier());
         // Setting template object
         $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
@@ -168,8 +172,7 @@ class RenameFileController
         $docHeaderButtons['csh'] = BackendUtility::cshItem('xMOD_csh_corebe', 'file_rename');
         // Back
         if ($this->returnUrl) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-            $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::linkThisUrl($this->returnUrl)) . '" class="typo3-goBack" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">' . $iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render() . '</a>';
+            $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::linkThisUrl($this->returnUrl)) . '" class="typo3-goBack" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">' . $this->iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render() . '</a>';
         }
         // Add the HTML as a section:
         $markerArray = array(
index b46ee85..a846259 100644 (file)
@@ -74,11 +74,17 @@ class ReplaceFileController
     public $content;
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
     {
         $GLOBALS['SOBE'] = $this;
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->init();
     }
 
@@ -120,9 +126,7 @@ class ReplaceFileController
             }
         }
         // Setting icon and title
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        $icon = $iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
+        $icon = $this->iconFactory->getIcon('apps-filetree-root', Icon::SIZE_SMALL)->render();
         $this->title = $icon . htmlspecialchars($this->fileOrFolderObject->getStorage()->getName()) . ': ' . htmlspecialchars($this->fileOrFolderObject->getIdentifier());
         // Setting template object
         $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
@@ -191,10 +195,9 @@ class ReplaceFileController
         $docHeaderButtons['csh'] = BackendUtility::cshItem('xMOD_csh_corebe', 'file_rename');
         // Back
         if ($this->returnUrl) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             $docHeaderButtons['back'] = '<a href="' . htmlspecialchars(GeneralUtility::linkThisUrl($this->returnUrl))
                 . '" class="typo3-goBack" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.goBack', true) . '">'
-                . $iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render()
+                . $this->iconFactory->getIcon('actions-view-go-back', Icon::SIZE_SMALL)->render()
                 . '</a>';
         }
         // Add the HTML as a section:
index 19ab107..1f784ea 100644 (file)
@@ -387,9 +387,6 @@ class NewRecordController
      */
     public function regularNew()
     {
-
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $lang = $this->getLanguageService();
         // Initialize array for accumulating table rows:
         $this->tRows = array();
@@ -441,7 +438,7 @@ class NewRecordController
         $iconFile = array();
         // New tables (but not pages) INSIDE this pages
         $isAdmin = $this->getBackendUserAuthentication()->isAdmin();
-        $newContentIcon = $iconFactory->getIcon('actions-document-new', Icon::SIZE_SMALL)->render();
+        $newContentIcon = $this->iconFactory->getIcon('actions-document-new', Icon::SIZE_SMALL)->render();
         if ($this->newContentInto) {
             if (is_array($GLOBALS['TCA'])) {
                 $groupName = '';
index d081114..b56c5a3 100644 (file)
@@ -236,14 +236,13 @@ class PageTreeNavigationController
             'new_page' => '',
             'refresh' => ''
         );
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         // New Page
         $onclickNewPageWizard = 'top.content.list_frame.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', ['pagesOnly' => 1, 'id' => ''])) . '+Tree.pageID;';
         $buttons['new_page'] = '<a href="#" onclick="' . $onclickNewPageWizard . '" title="' . $this->getLanguageService()->sL('LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:newPage', true) . '">'
             . $this->iconFactory->getIcon('actions-page-new', Icon::SIZE_SMALL)->render()
             . '</a>';
         // Refresh
-        $buttons['refresh'] = '<a href="' . htmlspecialchars(GeneralUtility::getIndpEnv('REQUEST_URI')) . '" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.refresh', true) . '">' . $iconFactory->getIcon('actions-refresh', Icon::SIZE_SMALL)->render() . '</a>';
+        $buttons['refresh'] = '<a href="' . htmlspecialchars(GeneralUtility::getIndpEnv('REQUEST_URI')) . '" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.refresh', true) . '">' . $this->iconFactory->getIcon('actions-refresh', Icon::SIZE_SMALL)->render() . '</a>';
         // CSH
         $buttons['csh'] = str_replace('typo3-csh-inline', 'typo3-csh-inline show-right', BackendUtility::cshItem('xMOD_csh_corebe', 'pagetree'));
         return $buttons;
index 3a06138..cc0105c 100644 (file)
@@ -92,6 +92,11 @@ class SuggestWizardDefaultReceiver
     protected $params = array();
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * The constructor of this class
      *
      * @param string $table The table to query
@@ -99,6 +104,7 @@ class SuggestWizardDefaultReceiver
      */
     public function __construct($table, $config)
     {
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->table = $table;
         $this->config = $config;
         // get a list of all the pages that should be looked on
@@ -150,7 +156,6 @@ class SuggestWizardDefaultReceiver
         $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $this->table, $this->selectClause, '', $this->orderByStatement, $start . ', 50');
         $allRowsCount = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
         if ($allRowsCount) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                 // check if we already have collected the maximum number of records
                 if (count($rows) > $this->maxItems) {
@@ -162,7 +167,7 @@ class SuggestWizardDefaultReceiver
                 if (!$this->checkRecordAccess($row, $row['uid'])) {
                     continue;
                 }
-                $spriteIcon = $iconFactory->getIconForRecord($this->table, $row, Icon::SIZE_SMALL)->render();
+                $spriteIcon = $this->iconFactory->getIconForRecord($this->table, $row, Icon::SIZE_SMALL)->render();
                 $uid = $row['t3ver_oid'] > 0 ? $row['t3ver_oid'] : $row['uid'];
                 $path = $this->getRecordPath($row, $uid);
                 if (strlen($path) > 30) {
@@ -343,8 +348,7 @@ class SuggestWizardDefaultReceiver
     protected function getIcon($row)
     {
         GeneralUtility::logDeprecatedFunction();
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        return $iconFactory->getIconForRecord($this->mmForeignTable ?: $this->table, $row, Icon::SIZE_SMALL)->render();
+        return $this->iconFactory->getIconForRecord($this->mmForeignTable ?: $this->table, $row, Icon::SIZE_SMALL)->render();
     }
 
     /**
index a67c5f2..c7c60f0 100644 (file)
@@ -167,6 +167,11 @@ abstract class AbstractRecordList
     public $translateTools;
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
@@ -174,6 +179,7 @@ abstract class AbstractRecordList
         if (isset($GLOBALS['BE_USER']->uc['titleLen']) && $GLOBALS['BE_USER']->uc['titleLen'] > 0) {
             $this->fixedL = $GLOBALS['BE_USER']->uc['titleLen'];
         }
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->getTranslateTools();
         $this->determineScriptUrl();
     }
@@ -212,11 +218,11 @@ abstract class AbstractRecordList
      * @param array $data Is the dataarray, record with the fields. Notice: These fields are (currently) NOT htmlspecialchar'ed before being wrapped in <td>-tags
      * @param string $rowParams Is insert in the <tr>-tags. Must carry a ' ' as first character
      * @param string $_ OBSOLETE - NOT USED ANYMORE. $lMargin is the leftMargin (int)
-     * @param string $_2 OBSOLETE - NOT USED ANYMORE. Is the HTML <img>-tag for an alternative 'gfx/ol/line.gif'-icon (used in the top)
+     * @param string $_ OBSOLETE - NOT USED ANYMORE. Is the HTML <img>-tag for an alternative 'gfx/ol/line.gif'-icon (used in the top)
      * @param string $colType Defines the tag being used for the columns. Default is td.
      * @return string HTML content for the table row
      */
-    public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_2 = '', $colType = 'td')
+    public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_ = '', $colType = 'td')
     {
         $colType = ($colType === 'th') ? 'th' : 'td';
         $noWrap = $this->no_noWrap ? '' : ' nowrap="nowrap"';
@@ -348,15 +354,14 @@ abstract class AbstractRecordList
     {
         $content = '';
         $tParam = $table ? '&table=' . rawurlencode($table) : '';
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         switch ($type) {
             case 'fwd':
                 $href = $this->listURL() . '&pointer=' . ($pointer - $this->iLimit) . $tParam;
-                $content = '<a href="' . htmlspecialchars($href) . '">' . $iconFactory->getIcon('actions-move-up', Icon::SIZE_SMALL)->render() . '</a> <i>[1 - ' . $pointer . ']</i>';
+                $content = '<a href="' . htmlspecialchars($href) . '">' . $this->iconFactory->getIcon('actions-move-up', Icon::SIZE_SMALL)->render() . '</a> <i>[1 - ' . $pointer . ']</i>';
                 break;
             case 'rwd':
                 $href = $this->listURL() . '&pointer=' . $pointer . $tParam;
-                $content = '<a href="' . htmlspecialchars($href) . '">' . $iconFactory->getIcon('actions-move-down', Icon::SIZE_SMALL)->render() . '</a> <i>[' . ($pointer + 1) . ' - ' . $this->totalItems . ']</i>';
+                $content = '<a href="' . htmlspecialchars($href) . '">' . $this->iconFactory->getIcon('actions-move-down', Icon::SIZE_SMALL)->render() . '</a> <i>[' . ($pointer + 1) . ' - ' . $this->totalItems . ']</i>';
                 break;
         }
         return $content;
@@ -436,8 +441,7 @@ abstract class AbstractRecordList
         $out = '';
         $title = htmlspecialchars($this->languageIconTitles[$sys_language_uid]['title']);
         if ($this->languageIconTitles[$sys_language_uid]['flagIcon']) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-            $out .= '<span title="' . $title . '">' . $iconFactory->getIcon($this->languageIconTitles[$sys_language_uid]['flagIcon'], Icon::SIZE_SMALL)->render() . '</span>';
+            $out .= '<span title="' . $title . '">' . $this->iconFactory->getIcon($this->languageIconTitles[$sys_language_uid]['flagIcon'], Icon::SIZE_SMALL)->render() . '</span>';
             if (!$addAsAdditionalText) {
                 return $out;
             }
index 07d55a2..6ddf333 100644 (file)
@@ -358,7 +358,6 @@ class Commands
         $subNode->setText(htmlspecialchars($visibleText), $field, $prefix, htmlspecialchars($suffix) . $stat);
         $subNode->setQTip($qtip);
         if ((int)$record['uid'] !== 0) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             $spriteIconCode = $iconFactory->getIconForRecord('pages', $record, Icon::SIZE_SMALL)->render();
         } else {
             $spriteIconCode = $iconFactory->getIcon('apps-pagetree-root', Icon::SIZE_SMALL)->render();
index 9046dc3..38cb6a0 100644 (file)
@@ -547,8 +547,6 @@ class QueryView
      */
     public function resultRowDisplay($row, $conf, $table)
     {
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $SET = $GLOBALS['SOBE']->MOD_SETTINGS;
         $out = '<tr>';
         foreach ($row as $fieldName => $fieldValue) {
@@ -571,8 +569,8 @@ class QueryView
                 ],
                 'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI') . GeneralUtility::implodeArrayForUrl('SET', (array)GeneralUtility::_POST('SET'))
             ]);
-            $out .= '<a class="btn btn-default" href="#" onClick="top.launchView(\'' . $table . '\',' . $row['uid'] . ',\'' . $GLOBALS['BACK_PATH'] . '\');return false;">' . $iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL)->render() . '</a>';
-            $out .= '<a class="btn btn-default" href="' . htmlspecialchars($url) . '">' . $iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render() . '</a>';
+            $out .= '<a class="btn btn-default" href="#" onClick="top.launchView(\'' . $table . '\',' . $row['uid'] . ',\'' . $GLOBALS['BACK_PATH'] . '\');return false;">' . $this->iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL)->render() . '</a>';
+            $out .= '<a class="btn btn-default" href="' . htmlspecialchars($url) . '">' . $this->iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render() . '</a>';
         } else {
             $out .= '<a class="btn btn-default" href="' . GeneralUtility::linkThisUrl(BackendUtility::getModuleUrl('tce_db'), array(
                     ('cmd[' . $table . '][' . $row['uid'] . '][undelete]') => '1',
index 0bd41b3..3d4dc36 100644 (file)
@@ -67,7 +67,6 @@ class FormatsViewHelper extends AbstractViewHelper implements CompilableInterfac
             'sxw' => '<a class="btn btn-default disabled">' . $emptyIcon . '</a>'
         );
         $formats = $documentTranslation->getFormats();
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
 
         foreach ($formats as $format) {
             $output = '';
index 221f6f7..65445de 100644 (file)
@@ -72,11 +72,11 @@ class PageInfoViewHelper extends AbstractBackendViewHelper implements Compilable
         $id = GeneralUtility::_GP('id');
         $pageRecord = BackendUtility::readPageAccess($id, $GLOBALS['BE_USER']->getPagePermsClause(1));
         // Add icon with clickmenu, etc:
+        /** @var IconFactory $iconFactory */
+        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         if ($pageRecord['uid']) {
             // If there IS a real page
             $altText = BackendUtility::getRecordIconAltText($pageRecord, 'pages');
-            /** @var IconFactory $iconFactory */
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             $theIcon = '<span title="' . $altText . '">' . $iconFactory->getIconForRecord('pages', $pageRecord, Icon::SIZE_SMALL)->render() . '</span>';
             // Make Icon:
             $theIcon = $doc->wrapClickMenuOnIcon($theIcon, 'pages', $pageRecord['uid']);
@@ -84,8 +84,6 @@ class PageInfoViewHelper extends AbstractBackendViewHelper implements Compilable
             // Setting icon with clickmenu + uid
             $theIcon .= ' <em>[PID: ' . $pageRecord['uid'] . ']</em>';
         } else {
-            /** @var IconFactory $iconFactory */
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             // On root-level of page tree
             // Make Icon
             $theIcon = '<span title="' . htmlspecialchars($GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename']) . '">' . $iconFactory->getIcon('apps-pagetree-page-domain', Icon::SIZE_SMALL)->render() . '</span>';
index 0154cc1..aabf1c0 100755 (executable)
@@ -46,6 +46,11 @@ class AdminPanelView
     protected $extJSCODE = '';
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
@@ -60,6 +65,7 @@ class AdminPanelView
      */
     public function initialize()
     {
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->saveConfigOptions();
         $typoScriptFrontend = $this->getTypoScriptFrontendController();
         // Setting some values based on the admin panel
@@ -419,10 +425,8 @@ class AdminPanelView
             $beUser->extPageInTreeInfo = array();
             $beUser->extPageInTreeInfo[] = array($tsfe->page['uid'], htmlspecialchars($tsfe->page['title']), $depth + 1);
             $beUser->extGetTreeList($tsfe->id, $depth, 0, $beUser->getPagePermsClause(1));
-            /** @var IconFactory $iconFactory */
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             foreach ($beUser->extPageInTreeInfo as $key => $row) {
-                $outTable .= '<tr class="typo3-adminPanel-itemRow ' . ($key % 2 == 0 ? 'line-even' : 'line-odd') . '">' . '<td><span style="width: ' . ($depth + 1 - $row[2]) * 18 . 'px; height: 1px; display: inline-block;"></span>' . $iconFactory->getIcon('apps-pagetree-page-default', Icon::SIZE_SMALL)->render() . htmlspecialchars($row[1]) . '</td><td>' . $beUser->extGetNumberOfCachedPages($row[0]) . '</td></tr>';
+                $outTable .= '<tr class="typo3-adminPanel-itemRow ' . ($key % 2 == 0 ? 'line-even' : 'line-odd') . '">' . '<td><span style="width: ' . ($depth + 1 - $row[2]) * 18 . 'px; height: 1px; display: inline-block;"></span>' . $this->iconFactory->getIcon('apps-pagetree-page-default', Icon::SIZE_SMALL)->render() . htmlspecialchars($row[1]) . '</td><td>' . $beUser->extGetNumberOfCachedPages($row[0]) . '</td></tr>';
             }
             $outTable = '<table class="typo3-adminPanel-table"><thead><tr><th colspan="2">' . $this->extGetLL('cache_cacheEntries') . '</th></tr></thead>' . $outTable . '</table>';
             $outTable .= '<span class="fa fa-bolt clear-cache-icon"><!-- --></span><input class="btn btn-default clear-cache" type="submit" name="TSFE_ADMIN_PANEL[action][clearCache]" value="' . $this->extGetLL('cache_doit') . '" />';
@@ -628,9 +632,6 @@ class AdminPanelView
      */
     public function ext_makeToolBar()
     {
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-
         $tsfe = $this->getTypoScriptFrontendController();
         //  If mod.web_list.newContentWiz.overrideWithExtension is set, use that extension's create new content wizard instead:
         $tsConfig = BackendUtility::getModTSconfig($tsfe->page['uid'], 'mod.web_list');
@@ -641,7 +642,7 @@ class AdminPanelView
         $id = $tsfe->id;
         $returnUrl = GeneralUtility::getIndpEnv('REQUEST_URI');
 
-        $icon = $iconFactory->getIcon('actions-document-history-open', Icon::SIZE_SMALL)->render();
+        $icon = $this->iconFactory->getIcon('actions-document-history-open', Icon::SIZE_SMALL)->render();
         $link = BackendUtility::getModuleUrl('record_history', array('element' => 'pages:' . $id, 'returnUrl' => $returnUrl));
         $toolBar = '<a class="t3-icon btn btn-default" href="' . htmlspecialchars($link) . '#latest" title="' . $this->extGetLL('edit_recordHistory') . '">' . $icon . '</a>';
         if ($perms & Permission::CONTENT_EDIT && $langAllowed) {
@@ -649,22 +650,22 @@ class AdminPanelView
             if ($tsfe->sys_language_uid) {
                 $params = '&sys_language_uid=' . $tsfe->sys_language_uid;
             }
-            $icon = $iconFactory->getIcon('actions-document-new', Icon::SIZE_SMALL)->render();
+            $icon = $this->iconFactory->getIcon('actions-document-new', Icon::SIZE_SMALL)->render();
             $link = $newContentWizScriptPath . 'id=' . $id . $params . '&returnUrl=' . rawurlencode($returnUrl);
             $toolBar .= '<a class="t3-icon btn btn-default" href="' . htmlspecialchars($link) . '" title="' . $this->extGetLL('edit_newContentElement') .  '"">' . $icon . '</a>';
         }
         if ($perms & Permission::PAGE_EDIT) {
-            $icon = $iconFactory->getIcon('actions-document-move', Icon::SIZE_SMALL)->render();
+            $icon = $this->iconFactory->getIcon('actions-document-move', Icon::SIZE_SMALL)->render();
             $link = BackendUtility::getModuleUrl('move_element', ['table' => 'pages', 'uid' => $id, 'returnUrl' => $returnUrl]);
             $toolBar .= '<a class="t3-icon btn btn-default" href="' . htmlspecialchars($link) . '" title="' . $this->extGetLL('edit_move_page') . '">' . $icon . '</a>';
         }
         if ($perms & Permission::PAGE_NEW) {
             $toolBar .= '<a class="t3-icon btn btn-default" href="' . htmlspecialchars(BackendUtility::getModuleUrl('db_new', ['id' => $id, 'pagesOnly' => 1, 'returnUrl' => $returnUrl])) . '" title="' . $this->extGetLL('edit_newPage') . '">'
-                . $iconFactory->getIcon('actions-page-new', Icon::SIZE_SMALL)->render()
+                . $this->iconFactory->getIcon('actions-page-new', Icon::SIZE_SMALL)->render()
                 . '</a>';
         }
         if ($perms & Permission::PAGE_EDIT) {
-            $icon = $iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render();
+            $icon = $this->iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render();
             $url = BackendUtility::getModuleUrl('record_edit', array(
                 'edit[pages][' . $id . ']' => 'edit',
                 'noView' => 1,
@@ -682,7 +683,7 @@ class AdminPanelView
                 $tsfe->sys_page->versionOL('pages_language_overlay', $row);
                 if (is_array($row)) {
                     $icon = '<span title="' . $this->extGetLL('edit_editPageOverlay', true) . '">'
-                        . $iconFactory->getIcon('mimetypes-x-content-page-language-overlay', Icon::SIZE_SMALL)->render() . '</span>';
+                        . $this->iconFactory->getIcon('mimetypes-x-content-page-language-overlay', Icon::SIZE_SMALL)->render() . '</span>';
                     $url = BackendUtility::getModuleUrl('record_edit', array(
                         'edit[pages_language_overlay][' . $row['uid'] . ']' => 'edit',
                         'noView' => 1,
@@ -697,7 +698,7 @@ class AdminPanelView
                 'id' => $id,
                 'returnUrl' => GeneralUtility::getIndpEnv('REQUEST_URI')
             );
-            $icon = '<span title="' . $this->extGetLL('edit_db_list', false) . '">' . $iconFactory->getIcon('actions-system-list-open', Icon::SIZE_SMALL)->render() . '</span>';
+            $icon = '<span title="' . $this->extGetLL('edit_db_list', false) . '">' . $this->iconFactory->getIcon('actions-system-list-open', Icon::SIZE_SMALL)->render() . '</span>';
             $toolBar .= '<a class="t3-icon btn btn-default" href="' . htmlspecialchars(BackendUtility::getModuleUrl('web_list', $urlParams)) . '">' . $icon . '</a>';
         }
 
index a122ca4..e7c05c5 100644 (file)
@@ -436,6 +436,19 @@ class ImportExport
      */
     protected $remainHeader = array();
 
+    /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
+     * The constructor
+     */
+    public function __construct()
+    {
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+    }
+
     /**************************
      * Initialize
      *************************/
@@ -3717,9 +3730,8 @@ class ImportExport
                     }
                 }
             }
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             $pInfo['preCode'] = $preCode . '<span title="' . htmlspecialchars($table . ':' . $uid) . '">'
-                . $iconFactory->getIconForRecord($table, (array)$this->dat['records'][($table . ':' . $uid)]['data'], Icon::SIZE_SMALL)->render()
+                . $this->iconFactory->getIconForRecord($table, (array)$this->dat['records'][($table . ':' . $uid)]['data'], Icon::SIZE_SMALL)->render()
                 . '</span>';
             $pInfo['title'] = htmlspecialchars($record['title']);
             // View page:
@@ -3744,13 +3756,11 @@ class ImportExport
         }
         // Soft ref
         if (!empty($record['softrefs'])) {
-            /** @var IconFactory $iconFactory */
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             $preCode_A = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;';
             $preCode_B = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
             foreach ($record['softrefs'] as $info) {
                 $pInfo = array();
-                $pInfo['preCode'] = $preCode_A . $iconFactory->getIcon('status-status-reference-soft', Icon::SIZE_SMALL)->render();
+                $pInfo['preCode'] = $preCode_A . $this->iconFactory->getIcon('status-status-reference-soft', Icon::SIZE_SMALL)->render();
                 $pInfo['title'] = '<em>' . $info['field'] . ', "' . $info['spKey'] . '" </em>: <span title="' . htmlspecialchars($info['matchString']) . '">' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($info['matchString'], 60)) . '</span>';
                 if ($info['subst']['type']) {
                     if (strlen($info['subst']['title'])) {
@@ -3798,9 +3808,6 @@ class ImportExport
      */
     public function addRelations($rels, &$lines, $preCode, $recurCheck = array(), $htmlColorClass = '')
     {
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-
         foreach ($rels as $dat) {
             $table = $dat['table'];
             $uid = $dat['id'];
@@ -3840,7 +3847,7 @@ class ImportExport
                 $staticFixed = true;
             }
 
-            $icon = '<span class="' . $iconClass . '" title="' . htmlspecialchars($pInfo['ref']) . '">' . $iconFactory->getIcon($iconName, Icon::SIZE_SMALL)->render() . '</span>';
+            $icon = '<span class="' . $iconClass . '" title="' . htmlspecialchars($pInfo['ref']) . '">' . $this->iconFactory->getIcon($iconName, Icon::SIZE_SMALL)->render() . '</span>';
 
             $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;' . $icon;
             $pInfo['class'] = $htmlColorClass ?: 'bgColor3';
@@ -3868,9 +3875,6 @@ class ImportExport
      */
     public function addFiles($rels, &$lines, $preCode, $htmlColorClass = '', $tokenID = '')
     {
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-
         foreach ($rels as $ID) {
             // Process file:
             $pInfo = array();
@@ -3883,7 +3887,7 @@ class ImportExport
                     return;
                 }
             }
-            $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;' . $iconFactory->getIcon('status-status-reference-hard', Icon::SIZE_SMALL)->render();
+            $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;' . $this->iconFactory->getIcon('status-status-reference-hard', Icon::SIZE_SMALL)->render();
             $pInfo['title'] = htmlspecialchars($fI['filename']);
             $pInfo['ref'] = 'FILE';
             $pInfo['size'] = $fI['filesize'];
@@ -3934,7 +3938,7 @@ class ImportExport
                     $this->error('MISSING RTE original FILE: ' . $ID, 1);
                 }
                 $pInfo['showDiffContent'] = PathUtility::stripPathSitePrefix($this->fileIDMap[$ID]);
-                $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $iconFactory->getIcon('status-status-reference-hard', Icon::SIZE_SMALL)->render();
+                $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $this->iconFactory->getIcon('status-status-reference-hard', Icon::SIZE_SMALL)->render();
                 $pInfo['title'] = htmlspecialchars($fI['filename']) . ' <em>(Original)</em>';
                 $pInfo['ref'] = 'FILE';
                 $pInfo['size'] = $fI['filesize'];
@@ -3955,7 +3959,7 @@ class ImportExport
                         $pInfo['updatePath'] = $fI['parentRelFileName'];
                     }
                     $pInfo['showDiffContent'] = PathUtility::stripPathSitePrefix($this->fileIDMap[$extID]);
-                    $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $iconFactory->getIcon('actions-insert-reference', Icon::SIZE_SMALL)->render();
+                    $pInfo['preCode'] = $preCode . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $this->iconFactory->getIcon('actions-insert-reference', Icon::SIZE_SMALL)->render();
                     $pInfo['title'] = htmlspecialchars($fI['filename']) . ' <em>(Resource)</em>';
                     $pInfo['ref'] = 'FILE';
                     $pInfo['size'] = $fI['filesize'];
index 21dd62f..1b46bd2 100644 (file)
@@ -327,7 +327,6 @@ class InfoPageTyposcriptConfigController extends \TYPO3\CMS\Backend\Module\Abstr
             return $lines;
         }
 
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         foreach ($pageArray as $identifier => $_) {
             if (!MathUtility::canBeInterpretedAsInteger($identifier)) {
                 continue;
@@ -339,7 +338,7 @@ class InfoPageTyposcriptConfigController extends \TYPO3\CMS\Backend\Module\Abstr
                                                <a href="'
                     . htmlspecialchars(GeneralUtility::linkThisScript(array('id' => $identifier)))
                     . '" title="' . htmlspecialchars('ID: ' . $identifier) . '">'
-                    . $iconFactory->getIconForRecord('pages', BackendUtility::getRecordWSOL('pages', $identifier), Icon::SIZE_SMALL)->render()
+                    . $this->iconFactory->getIconForRecord('pages', BackendUtility::getRecordWSOL('pages', $identifier), Icon::SIZE_SMALL)->render()
                     . GeneralUtility::fixed_lgd_cs($pageArray[$identifier], 30) . '</a></td>
                                        <td>' . ($pageArray[($identifier . '_')]['includeLines'] === 0 ? '' : $pageArray[($identifier . '_')]['includeLines']) . '</td>
                                        <td>' . ($pageArray[$identifier . '_']['writtenLines'] === 0 ? '' : $pageArray[$identifier . '_']['writtenLines']) . '</td>
@@ -347,7 +346,7 @@ class InfoPageTyposcriptConfigController extends \TYPO3\CMS\Backend\Module\Abstr
             } else {
                 $lines[] = '<tr>
                                        <td nowrap style="' . $cellStyle . '">'
-                    . $iconFactory->getIconForRecord('pages', BackendUtility::getRecordWSOL('pages', $identifier), Icon::SIZE_SMALL)->render()
+                    . $this->iconFactory->getIconForRecord('pages', BackendUtility::getRecordWSOL('pages', $identifier), Icon::SIZE_SMALL)->render()
                     . GeneralUtility::fixed_lgd_cs($pageArray[$identifier], 30) . '</td>
                                        <td></td>
                                        <td></td>
index 5371f3f..3932b5b 100644 (file)
@@ -128,6 +128,11 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu
     protected $templateService;
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Main method of modfuncreport
      *
      * @return string Module content
@@ -135,6 +140,7 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu
     public function main()
     {
         $this->getLanguageService()->includeLLFile('EXT:linkvalidator/Resources/Private/Language/Module/locallang.xlf');
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->searchLevel = GeneralUtility::_GP('search_levels');
         if (isset($this->pObj->id)) {
             $this->modTS = BackendUtility::getModTSconfig($this->pObj->id, 'mod.linkvalidator');
@@ -472,9 +478,6 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu
      */
     protected function renderTableRow($table, array $row, $brokenLinksItemTemplate)
     {
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-
         $markerArray = array();
         $fieldName = '';
         // Restore the linktype object
@@ -494,7 +497,7 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu
         ]);
         $actionLink = '<a href="' . htmlspecialchars($url);
         $actionLink .= '" title="' . $this->getLanguageService()->getLL('list.edit') . '">';
-        $actionLink .= $iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render();
+        $actionLink .= $this->iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL)->render();
         $actionLink .= '</a>';
         $elementHeadline = $row['headline'];
         if (empty($elementHeadline)) {
@@ -511,8 +514,7 @@ class LinkValidatorReport extends \TYPO3\CMS\Backend\Module\AbstractFunctionModu
         // Fallback, if there is no label
         $fieldName = !empty($fieldName) ? $fieldName : $row['field'];
         // column "Element"
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-        $element = '<span title="' . htmlspecialchars($table . ':' . $row['record_uid']) . '">' . $iconFactory->getIconForRecord($table, $row, Icon::SIZE_SMALL)->render() . '</span>';
+        $element = '<span title="' . htmlspecialchars($table . ':' . $row['record_uid']) . '">' . $this->iconFactory->getIconForRecord($table, $row, Icon::SIZE_SMALL)->render() . '</span>';
         $element .= $elementHeadline;
         $element .= ' ' . sprintf($this->getLanguageService()->getLL('list.field'), $fieldName);
         $markerArray['actionlink'] = $actionLink;
index f20edc8..b4f3a70 100644 (file)
@@ -55,11 +55,17 @@ class DatabaseIntegrityView extends BaseScriptClass
     protected $templatePath = 'EXT:lowlevel/Resources/Private/Templates/Backend/';
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
     {
         $this->getLanguageService()->includeLLFile('EXT:lowlevel/Resources/Private/Language/locallang.xlf');
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->view = GeneralUtility::makeInstance(StandaloneView::class);
         $this->view->getRequest()->setControllerExtensionName('lowlevel');
     }
@@ -353,8 +359,6 @@ class DatabaseIntegrityView extends BaseScriptClass
      */
     public function func_records()
     {
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-
         /** @var $admin DatabaseIntegrityCheck */
         $admin = GeneralUtility::makeInstance(DatabaseIntegrityCheck::class);
         $admin->genTree(0);
@@ -362,15 +366,15 @@ class DatabaseIntegrityView extends BaseScriptClass
         // Pages stat
         $pageStatistic = array(
             'total_pages' => array(
-                'icon' => $iconFactory->getIconForRecord('pages', array(), Icon::SIZE_SMALL)->render(),
+                'icon' => $this->iconFactory->getIconForRecord('pages', array(), Icon::SIZE_SMALL)->render(),
                 'count' => count($admin->page_idArray)
             ),
             'hidden_pages' => array(
-                'icon' => $iconFactory->getIconForRecord('pages', array('hidden' => 1), Icon::SIZE_SMALL)->render(),
+                'icon' => $this->iconFactory->getIconForRecord('pages', array('hidden' => 1), Icon::SIZE_SMALL)->render(),
                 'count' => $admin->recStats['hidden']
             ),
             'deleted_pages' => array(
-                'icon' => $iconFactory->getIconForRecord('pages', array('deleted' => 1), Icon::SIZE_SMALL)->render(),
+                'icon' => $this->iconFactory->getIconForRecord('pages', array('deleted' => 1), Icon::SIZE_SMALL)->render(),
                 'count' => count($admin->recStats['deleted']['pages'])
             )
         );
@@ -384,7 +388,7 @@ class DatabaseIntegrityView extends BaseScriptClass
             foreach ($doktype as $setup) {
                 if ($setup[1] != '--div--') {
                     $doktypes[] = array(
-                        'icon' => $iconFactory->getIconForRecord('pages', array('doktype' => $setup[1]), Icon::SIZE_SMALL)->render(),
+                        'icon' => $this->iconFactory->getIconForRecord('pages', array('doktype' => $setup[1]), Icon::SIZE_SMALL)->render(),
                         'title' => $lang->sL($setup[0]) . ' (' . $setup[1] . ')',
                         'count' => (int)$admin->recStats['doktype'][$setup[1]]
                     );
@@ -424,15 +428,14 @@ class DatabaseIntegrityView extends BaseScriptClass
                 if (is_array($admin->lRecords[$t])) {
                     foreach ($admin->lRecords[$t] as $data) {
                         if (!GeneralUtility::inList($admin->lostPagesList, $data['pid'])) {
-                            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-                            $lr .= '<div class="record"><a href="' . htmlspecialchars((BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=records&fixLostRecords_table=' . $t . '&fixLostRecords_uid=' . $data['uid'])) . '" title="' . $lang->getLL('fixLostRecord', true) . '">' . $iconFactory->getIcon('status-dialog-error', Icon::SIZE_SMALL)->render() . '</a>uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
+                            $lr .= '<div class="record"><a href="' . htmlspecialchars((BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=records&fixLostRecords_table=' . $t . '&fixLostRecords_uid=' . $data['uid'])) . '" title="' . $lang->getLL('fixLostRecord', true) . '">' . $this->iconFactory->getIcon('status-dialog-error', Icon::SIZE_SMALL)->render() . '</a>uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
                         } else {
                             $lr .= '<div class="record-noicon">uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
                         }
                     }
                 }
                 $tableStatistic[$t] = array(
-                    'icon' => $iconFactory->getIconForRecord($t, array(), Icon::SIZE_SMALL)->render(),
+                    'icon' => $this->iconFactory->getIconForRecord($t, array(), Icon::SIZE_SMALL)->render(),
                     'title' => $lang->sL($GLOBALS['TCA'][$t]['ctrl']['title']),
                     'count' => $theNumberOfRe,
                     'lostRecords' => $lr
index ef2d971..c5b50aa 100644 (file)
@@ -31,11 +31,17 @@ class ActionToolbarItem implements ToolbarItemInterface
     protected $actionEntries = array();
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Constructor
      */
     public function __construct()
     {
         $this->getLanguageService()->includeLLFile('EXT:sys_action/Resources/Private/Language/locallang.xlf');
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->initializeActionEntries();
     }
 
@@ -46,10 +52,8 @@ class ActionToolbarItem implements ToolbarItemInterface
      */
     public function getItem()
     {
-        /** @var IconFactory $iconFactory */
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $title = $this->getLanguageService()->getLL('action_toolbaritem', true);
-        return '<span title="' . $title . '">' . $iconFactory->getIcon('apps-toolbar-menu-actions', Icon::SIZE_SMALL)->render() . '</span>';
+        return '<span title="' . $title . '">' . $this->iconFactory->getIcon('apps-toolbar-menu-actions', Icon::SIZE_SMALL)->render() . '</span>';
     }
 
     /**
@@ -101,12 +105,11 @@ class ActionToolbarItem implements ToolbarItemInterface
         }
 
         if ($queryResource) {
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
             while ($actionRow = $databaseConnection->sql_fetch_assoc($queryResource)) {
                 $actions[] = array(
                     $actionRow['title'],
                     BackendUtility::getModuleUrl('user_task') . '&SET[mode]=tasks&SET[function]=sys_action.TYPO3\\CMS\\SysAction\\ActionTask&show=' . $actionRow['uid'],
-                    $iconFactory->getIconForRecord('sys_action', $actionRow, Icon::SIZE_SMALL)->render()
+                    $this->iconFactory->getIconForRecord('sys_action', $actionRow, Icon::SIZE_SMALL)->render()
                 );
             }
             $databaseConnection->sql_free_result($queryResource);
index db60a56..e1069af 100644 (file)
@@ -53,12 +53,18 @@ class TaskModuleController extends BaseScriptClass
     protected $moduleName = 'user_task';
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Initializes the Module
      */
     public function __construct()
     {
         $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
         $this->moduleTemplate->getPageRenderer()->addCssFile(ExtensionManagementUtility::extRelPath('taskcenter') . 'Resources/Public/Css/styles.css');
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->getLanguageService()->includeLLFile('EXT:taskcenter/Resources/Private/Language/locallang_task.xlf');
         $this->MCONF = array(
             'name' => $this->moduleName
@@ -122,6 +128,18 @@ class TaskModuleController extends BaseScriptClass
         $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
     }
 
+    /**
+     * Injects the request object for the current request or subrequest
+     * Simply calls main() and writes the content to the response
+     *
+     * @param ServerRequestInterface $request the current request
+     * @param ResponseInterface $response
+     * @return ResponseInterface the response with the content
+     */
+    public function mainAction(ServerRequestInterface $request, ResponseInterface $response)
+    {
+        $GLOBALS['SOBE'] = $this;
+        $this->main();
 
     /**
      * Injects the request object for the current request or subrequest
@@ -428,14 +446,13 @@ class TaskModuleController extends BaseScriptClass
             'open_new_window' => $this->openInNewWindow()
         );
         // Fullscreen Button
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $url = GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL');
         $onClick = 'devlogWin=window.open(' . GeneralUtility::quoteJSvalue($url) . ',\'taskcenter\',\'width=790,status=0,menubar=1,resizable=1,location=0,scrollbars=1,toolbar=0\');return false;';
         $fullscreenButton = $buttonBar->makeLinkButton()
             ->setTitle($this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.openInNewWindow', true))
             ->setOnClick($onClick)
             ->setHref('#')
-            ->setIcon($iconFactory->getIcon('actions-window-open', Icon::SIZE_SMALL))
+            ->setIcon($this->iconFactory->getIcon('actions-window-open', Icon::SIZE_SMALL))
             ;
         $buttonBar->addButton($fullscreenButton, ButtonBar::BUTTON_POSITION_RIGHT, 1);
 
@@ -510,11 +527,10 @@ class TaskModuleController extends BaseScriptClass
      */
     protected function openInNewWindow()
     {
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $url = GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL');
         $onClick = 'devlogWin=window.open(' . GeneralUtility::quoteJSvalue($url) . ',\'taskcenter\',\'width=790,status=0,menubar=1,resizable=1,location=0,scrollbars=1,toolbar=0\');return false;';
         $content = '<a href="#" onclick="' . htmlspecialchars($onClick) . '" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.openInNewWindow', true) . '">'
-            . $iconFactory->getIcon('actions-window-open', Icon::SIZE_SMALL)->render()
+            . $this->iconFactory->getIcon('actions-window-open', Icon::SIZE_SMALL)->render()
         . '</a>';
         return $content;
     }
index a14f205..bc6db69 100644 (file)
@@ -257,8 +257,7 @@ class TypoScriptTemplateInformationModuleFunctionController extends AbstractFunc
                     }
                 }
             }
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-            $content = '<a href="#" class="t3-js-clickmenutrigger" data-table="sys_template" data-uid="' . $tplRow['uid'] . '" data-listframe="1">' . $iconFactory->getIconForRecord('sys_template', $tplRow, Icon::SIZE_SMALL)->render() . '</a><strong>' . htmlspecialchars($tplRow['title']) . '</strong>' . (trim($tplRow['sitetitle']) ? htmlspecialchars(' (' . $tplRow['sitetitle'] . ')') : '');
+            $content = '<a href="#" class="t3-js-clickmenutrigger" data-table="sys_template" data-uid="' . $tplRow['uid'] . '" data-listframe="1">' . $this->iconFactory->getIconForRecord('sys_template', $tplRow, Icon::SIZE_SMALL)->render() . '</a><strong>' . htmlspecialchars($tplRow['title']) . '</strong>' . (trim($tplRow['sitetitle']) ? htmlspecialchars(' (' . $tplRow['sitetitle'] . ')') : '');
             $theOutput .= $this->pObj->doc->section($lang->getLL('templateInformation'), $content, 0, 1);
             if ($manyTemplatesMenu) {
                 $theOutput .= $this->pObj->doc->section('', $manyTemplatesMenu);
index 2870e4e..77a06c9 100644 (file)
@@ -47,12 +47,18 @@ class CreatePagesWizardModuleFunctionController extends \TYPO3\CMS\Backend\Modul
     protected $typeSelectHtml = '';
 
     /**
+     * @var IconFactory
+     */
+    protected $iconFactory;
+
+    /**
      * Main function creating the content for the module.
      *
      * @return string HTML content for the module, actually a "section" made through the parent object in $this->pObj
      */
     public function main()
     {
+        $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $this->getLanguageService()->includeLLFile('EXT:wizard_crpages/Resources/Private/Language/locallang.xlf');
         $theCode = '';
         $this->tsConfig = BackendUtility::getPagesTSconfig($this->pObj->id);
@@ -111,11 +117,10 @@ class CreatePagesWizardModuleFunctionController extends \TYPO3\CMS\Backend\Modul
                 // Display result:
                 $menuItems = $pageRepository->getMenu($this->pObj->id, '*', 'sorting', '', false);
                 $lines = array();
-                $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
                 foreach ($menuItems as $record) {
                     BackendUtility::workspaceOL('pages', $record);
                     if (is_array($record)) {
-                        $lines[] = '<span class="text-nowrap" title="' . BackendUtility::titleAttribForPages($record, '', false) . '">' . $iconFactory->getIconForRecord('pages', $record, Icon::SIZE_SMALL)->render() . htmlspecialchars(GeneralUtility::fixed_lgd_cs($record['title'], $this->getBackendUser()->uc['titleLen'])) . '</span>';
+                        $lines[] = '<span class="text-nowrap" title="' . BackendUtility::titleAttribForPages($record, '', false) . '">' . $this->iconFactory->getIconForRecord('pages', $record, Icon::SIZE_SMALL)->render() . htmlspecialchars(GeneralUtility::fixed_lgd_cs($record['title'], $this->getBackendUser()->uc['titleLen'])) . '</span>';
                     }
                 }
                 $theCode .= '<h4>' . $this->getLanguageService()->getLL('wiz_newPages_currentMenu') . '</h4>' . implode('<br />', $lines);
@@ -190,7 +195,6 @@ class CreatePagesWizardModuleFunctionController extends \TYPO3\CMS\Backend\Modul
             $index = '{0}';
             $label = '{1}';
         }
-        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $content = '' .
             '<div class="form-section" id="form-line-' . $index . '">' .
                 '<div class="row">' .
@@ -209,7 +213,7 @@ class CreatePagesWizardModuleFunctionController extends \TYPO3\CMS\Backend\Modul
                         '<div class="form-control-wrap">' .
                             '<div class="input-group">' .
                                 '<div id="page_new_icon_' . $index . '" class="input-group-addon input-group-icon">' .
-                                    $iconFactory->getIconForRecord('pages', array(), Icon::SIZE_SMALL)->render() .
+                                    $this->iconFactory->getIconForRecord('pages', array(), Icon::SIZE_SMALL)->render() .
                                 '</div>' .
                                 '<select class="form-control form-control-adapt t3js-wizardcrpages-select-doktype" name="data[pages][NEW' . $index . '][doktype]" data-target="#page_new_icon_' . $index . '">' .
                                     $this->typeSelectHtml .