[!!!][TASK] Remove deprecated output-related code from EXT:backend 11/52511/9
authorThomas Hohn <thomas@hohn.dk>
Thu, 20 Apr 2017 08:23:18 +0000 (10:23 +0200)
committerSusanne Moog <susanne.moog@typo3.org>
Thu, 20 Apr 2017 15:19:22 +0000 (17:19 +0200)
Removes and adapts some classes, methods and properties
which were marked as deprecated.

Resolves: #80705
Releases: master
Change-Id: I6f594956a4a9fcaf99345e8edc07bb31e76564ae
Reviewed-on: https://review.typo3.org/52511
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Henrik Elsner <helsner@dfau.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
16 files changed:
typo3/sysext/backend/Classes/Clipboard/Clipboard.php
typo3/sysext/backend/Classes/Controller/BackendController.php
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/Page/LocalizationController.php
typo3/sysext/backend/Classes/Controller/PageLayoutController.php
typo3/sysext/backend/Classes/Domain/Repository/Localization/LocalizationRepository.php
typo3/sysext/backend/Classes/Module/AbstractFunctionModule.php
typo3/sysext/backend/Classes/Module/BaseScriptClass.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/backend/Classes/Template/ModuleTemplate.php
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/backend/Resources/Public/JavaScript/Modal.js
typo3/sysext/backend/Resources/Public/JavaScript/Severity.js
typo3/sysext/backend/Resources/Public/JavaScript/Viewport.js
typo3/sysext/core/Documentation/Changelog/master/Breaking-80700-DeprecatedFunctionalityRemoved.rst

index c255067..a3f59fd 100644 (file)
@@ -674,27 +674,6 @@ class Clipboard
      * @param string $type Type-code
      * @param array $clElements Array of selected elements
      * @param string $columnLabel Name of the content column
-     * @return string JavaScript "confirm" message
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function confirmMsg($table, $rec, $type, $clElements, $columnLabel = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $message = $this->confirmMsgText($table, $rec, $type, $clElements, $columnLabel);
-        if (!empty($message)) {
-            $message = 'confirm(' . GeneralUtility::quoteJSvalue($message) . ');';
-        }
-        return $message;
-    }
-
-    /**
-     * Returns confirm JavaScript message
-     *
-     * @param string $table Table name
-     * @param mixed $rec For records its an array, for files its a string (path)
-     * @param string $type Type-code
-     * @param array $clElements Array of selected elements
-     * @param string $columnLabel Name of the content column
      * @return string the text for a confirm message
      */
     public function confirmMsgText($table, $rec, $type, $clElements, $columnLabel = '')
index 685d7c2..ca1164a 100644 (file)
@@ -173,45 +173,6 @@ class BackendController
 
         $this->initializeToolbarItems();
         $this->executeHook('constructPostProcess');
-        $this->includeLegacyBackendItems();
-    }
-
-    /**
-     * Add hooks from the additional backend items to load certain things for the main backend.
-     * This was previously called from the global scope from backend.php.
-     *
-     * Please note that this method will be removed in TYPO3 v9. it does not throw a deprecation warning as it is protected and still called on every main backend request.
-     */
-    protected function includeLegacyBackendItems()
-    {
-        $TYPO3backend = $this;
-        // Include extensions which may add css, javascript or toolbar items
-        if (is_array($GLOBALS['TYPO3_CONF_VARS']['typo3/backend.php']['additionalBackendItems'])) {
-            GeneralUtility::deprecationLog('The hook $TYPO3_CONF_VARS["typo3/backend.php"]["additionalBackendItems"] is deprecated in TYPO3 v8, and will be removed in TYPO3 v9. Use the "constructPostProcess" hook within BackendController instead.');
-            foreach ($GLOBALS['TYPO3_CONF_VARS']['typo3/backend.php']['additionalBackendItems'] as $additionalBackendItem) {
-                include_once $additionalBackendItem;
-            }
-        }
-
-        // Process ExtJS module js and css
-        if (is_array($GLOBALS['TBE_MODULES']['_configuration'])) {
-            foreach ($GLOBALS['TBE_MODULES']['_configuration'] as $moduleName => $moduleConfig) {
-                if (is_array($moduleConfig['cssFiles'])) {
-                    foreach ($moduleConfig['cssFiles'] as $cssFileName => $cssFile) {
-                        $cssFile = GeneralUtility::getFileAbsFileName($cssFile);
-                        $cssFile = PathUtility::getAbsoluteWebPath($cssFile);
-                        $TYPO3backend->addCssFile($cssFileName, $cssFile);
-                    }
-                }
-                if (is_array($moduleConfig['jsFiles'])) {
-                    foreach ($moduleConfig['jsFiles'] as $jsFile) {
-                        $jsFile = GeneralUtility::getFileAbsFileName($jsFile);
-                        $jsFile = PathUtility::getAbsoluteWebPath($jsFile);
-                        $TYPO3backend->addJavascriptFile($jsFile);
-                    }
-                }
-            }
-        }
     }
 
     /**
@@ -825,42 +786,6 @@ class BackendController
     }
 
     /**
-     * Adds a javascript snippet to the backend
-     *
-     * @param string $javascript Javascript snippet
-     * @throws \InvalidArgumentException
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9. Use the "constructPostProcess" hook within BackendController instead.
-     */
-    public function addJavascript($javascript)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        // @todo do we need more checks?
-        if (!is_string($javascript)) {
-            throw new \InvalidArgumentException('parameter $javascript must be of type string', 1195129553);
-        }
-        $this->js .= $javascript;
-    }
-
-    /**
-     * Adds a javscript file to the backend after it has been checked that it exists
-     *
-     * @param string $javascriptFile Javascript file reference
-     * @return bool TRUE if the javascript file was successfully added, FALSE otherwise
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9. Use the "constructPostProcess" hook within BackendController instead.
-     */
-    public function addJavascriptFile($javascriptFile)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $jsFileAdded = false;
-        // @todo add more checks if necessary
-        if (file_exists(GeneralUtility::resolveBackPath(PATH_typo3 . $javascriptFile))) {
-            $this->jsFiles[] = $javascriptFile;
-            $jsFileAdded = true;
-        }
-        return $jsFileAdded;
-    }
-
-    /**
      * Adds a css snippet to the backend
      *
      * @param string $css Css snippet
@@ -875,25 +800,6 @@ class BackendController
     }
 
     /**
-     * Adds a css file to the backend after it has been checked that it exists
-     *
-     * @param string $cssFileName The css file's name with out the .css ending
-     * @param string $cssFile Css file reference
-     * @return bool TRUE if the css file was added, FALSE otherwise
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9, use the according PageRenderer methods directly
-     */
-    public function addCssFile($cssFileName, $cssFile)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $cssFileAdded = false;
-        if (empty($this->cssFiles[$cssFileName])) {
-            $this->cssFiles[$cssFileName] = $cssFile;
-            $cssFileAdded = true;
-        }
-        return $cssFileAdded;
-    }
-
-    /**
      * Executes defined hooks functions for the given identifier.
      *
      * These hook identifiers are valid:
index 61fa9d8..c36812a 100644 (file)
@@ -208,12 +208,6 @@ class EditDocumentController extends AbstractModule
     public $returnEditConf;
 
     /**
-     * @var string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public $localizationMode;
-
-    /**
      * Workspace used for the editing action.
      *
      * @var NULL|int
index 4270aab..9ecee42 100644 (file)
@@ -152,35 +152,6 @@ class LocalizationController
      * @param ServerRequestInterface $request
      * @param ResponseInterface $response
      * @return ResponseInterface
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getRecordUidsToCopy(ServerRequestInterface $request, ResponseInterface $response)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $params = $request->getQueryParams();
-        if (!isset($params['pageId'], $params['colPos'], $params['languageId'])) {
-            $response = $response->withStatus(500);
-            return $response;
-        }
-
-        $pageId = (int)$params['pageId'];
-        $colPos = (int)$params['colPos'];
-        $languageId = (int)$params['languageId'];
-
-        $result = $this->localizationRepository->getRecordsToCopyDatabaseResult($pageId, $colPos, $languageId, 'uid');
-        $uids = [];
-        while ($row = $result->fetch()) {
-            $uids[] = (int)$row['uid'];
-        }
-
-        $response->getBody()->write(json_encode($uids));
-        return $response;
-    }
-
-    /**
-     * @param ServerRequestInterface $request
-     * @param ResponseInterface $response
-     * @return ResponseInterface
      */
     public function localizeRecords(ServerRequestInterface $request, ResponseInterface $response)
     {
index 4d03ce9..cf9e395 100644 (file)
@@ -109,24 +109,6 @@ class PageLayoutController
     public $popView;
 
     /**
-     * QuickEdit: Variable, that tells quick edit what to show/edit etc.
-     * Format is [tablename]:[uid] with some exceptional values for both parameters (with special meanings).
-     *
-     * @var string
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public $edit_record;
-
-    /**
-     * QuickEdit: If set, this variable tells quick edit that the last edited record had
-     * this value as UID and we should look up the new, real uid value in sys_log.
-     *
-     * @var string
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public $new_unique_uid;
-
-    /**
      * Page select perms clause
      *
      * @var string
@@ -212,14 +194,6 @@ class PageLayoutController
     public $MOD_SETTINGS = [];
 
     /**
-     * Array of tables to be listed by the Web > Page module in addition to the default tables
-     *
-     * @var array
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public $externalTables = [];
-
-    /**
      * Module output accumulation
      *
      * @var string
@@ -294,13 +268,10 @@ class PageLayoutController
         $this->imagemode = GeneralUtility::_GP('imagemode');
         $this->clear_cache = GeneralUtility::_GP('clear_cache');
         $this->popView = GeneralUtility::_GP('popView');
-        $this->edit_record = GeneralUtility::_GP('edit_record');
-        $this->new_unique_uid = GeneralUtility::_GP('new_unique_uid');
         $this->search_field = GeneralUtility::_GP('search_field');
         $this->search_levels = GeneralUtility::_GP('search_levels');
         $this->showLimit = GeneralUtility::_GP('showLimit');
         $this->returnUrl = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('returnUrl'));
-        $this->externalTables = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables'];
         $sessionData['search_field'] = $this->search_field;
         // Store session data
         $this->getBackendUser()->setAndSaveSessionData(RecordList::class, $sessionData);
@@ -334,31 +305,7 @@ class PageLayoutController
         // initialize page/be_user TSconfig settings
         $this->modSharedTSconfig = BackendUtility::getModTSconfig($this->id, 'mod.SHARED');
         $this->modTSconfig = BackendUtility::getModTSconfig($this->id, 'mod.' . $this->moduleName);
-        // example settings:
-        //  $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']['tx_myext'] =
-        //      array ('default' => array(
-        //              'MENU' => 'LLL:EXT:tx_myext/locallang_db.xlf:menuDefault',
-        //              'fList' =>  'title,description,image',
-        //              'icon' => TRUE));
-        if (is_array($this->externalTables)) {
-            if (!empty($this->externalTables)) {
-                GeneralUtility::deprecationLog('The rendering of records in the page module by using '
-                    . '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'cms\'][\'db_layout\'][\'addTables\']'
-                    . ' has been deprecated since TYPO3 CMS 8 and will be removed in TYPO3 CMS 9.'
-                );
-            }
-            foreach ($this->externalTables as $table => $tableSettings) {
-                // delete the default settings from above
-                if (is_array($this->MOD_MENU[$table])) {
-                    unset($this->MOD_MENU[$table]);
-                }
-                if (is_array($tableSettings) && count($tableSettings) > 1) {
-                    foreach ($tableSettings as $key => $settings) {
-                        $this->MOD_MENU[$table][$key] = $lang->sL($settings['MENU']);
-                    }
-                }
-            }
-        }
+
         // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language on the page. Add these to language selector.
         $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_language');
         $queryBuilder->getRestrictions()->removeAll();
@@ -464,16 +411,6 @@ class PageLayoutController
         if (!$count) {
             unset($actions['2']);
         }
-        // @internal: This is an internal hook for compatibility7 only, this hook will be removed without further notice
-        $initActionHook = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['initActionHook'];
-        if (is_array($initActionHook)) {
-            foreach ($initActionHook as $hook) {
-                $params = [
-                    'actions' => &$actions
-                ];
-                GeneralUtility::callUserFunction($hook, $params, $this);
-            }
-        }
         // page/be_user TSconfig blinding of menu-items
         $actions = BackendUtility::unsetMenuItems($this->modTSconfig['properties'], $actions, 'menu.function');
 
@@ -875,7 +812,6 @@ class PageLayoutController
         if (!$dbList->nextThree) {
             $dbList->nextThree = 1;
         }
-        $dbList->externalTables = $this->externalTables;
         // Create menu for selecting a table to jump to (this is, if more than just pages/tt_content elements are found on the page!)
         // also fills $dbList->activeTables
         $dbList->getTableMenu($this->id);
@@ -1000,17 +936,6 @@ class PageLayoutController
         return $this->moduleTemplate;
     }
 
-    /**
-     * Print accumulated content of module
-     *
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function printContent()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        echo $this->moduleTemplate->renderContent();
-    }
-
     /***************************
      *
      * Sub-content functions, rendering specific parts of the module content.
index 27f9e3b..05dd5d7 100644 (file)
@@ -14,11 +14,9 @@ namespace TYPO3\CMS\Backend\Domain\Repository\Localization;
  * The TYPO3 project - inspiring people to share!
  */
 
-use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Database\Connection;
 use TYPO3\CMS\Core\Database\ConnectionPool;
 use TYPO3\CMS\Core\Database\Query\QueryBuilder;
-use TYPO3\CMS\Core\Database\Query\QueryHelper;
 use TYPO3\CMS\Core\Database\Query\Restriction\BackendWorkspaceRestriction;
 use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -166,43 +164,6 @@ class LocalizationRepository
     }
 
     /**
-     * Builds an additional where clause to exclude deleted records and setting the versioning placeholders
-     *
-     * @return string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getExcludeQueryPart()
-    {
-        GeneralUtility::logDeprecatedFunction();
-
-        return BackendUtility::deleteClause('tt_content') . BackendUtility::versioningPlaceholderClause('tt_content');
-    }
-
-    /**
-     * Builds an additional where clause to exclude hidden languages and limit a backend user to its allowed languages,
-     * if the user is not an admin.
-     *
-     * @return string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getAllowedLanguagesForBackendUser()
-    {
-        GeneralUtility::logDeprecatedFunction();
-
-        $backendUser = $this->getBackendUser();
-        $additionalWhere = '';
-        if (!$backendUser->isAdmin()) {
-            $additionalWhere .= ' AND sys_language.hidden=0';
-
-            if (!empty($backendUser->user['allowed_languages'])) {
-                $additionalWhere .= ' AND sys_language.uid IN(' . implode(',', GeneralUtility::intExplode(',', $backendUser->user['allowed_languages'])) . ')';
-            }
-        }
-
-        return $additionalWhere;
-    }
-
-    /**
      * Builds additional query constraints to exclude hidden languages and
      * limit a backend user to its allowed languages (unless the user is an admin)
      *
@@ -308,140 +269,6 @@ class LocalizationRepository
     }
 
     /**
-     * Fetches the localization for a given record.
-     *
-     * @FIXME: This method is a clone of BackendUtility::getRecordLocalization, using origUid instead of transOrigPointerField
-     *
-     * @param string $table Table name present in $GLOBALS['TCA']
-     * @param int $uid The uid of the record
-     * @param int $language The uid of the language record in sys_language
-     * @param string $andWhereClause Optional additional WHERE clause (default: '')
-     * @return mixed Multidimensional array with selected records; if none exist, FALSE is returned
-     *
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getRecordLocalization($table, $uid, $language, $andWhereClause = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $recordLocalization = false;
-
-        // Pages still stores translations in the pages_language_overlay table, all other tables store in themself
-        if ($table === 'pages') {
-            $table = 'pages_language_overlay';
-        }
-
-        if (BackendUtility::isTableLocalizable($table)) {
-            $tcaCtrl = $GLOBALS['TCA'][$table]['ctrl'];
-
-            if (isset($tcaCtrl['origUid'])) {
-                $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
-                    ->getQueryBuilderForTable($table);
-                $queryBuilder->getRestrictions()
-                    ->removeAll()
-                    ->add(GeneralUtility::makeInstance(DeletedRestriction::class))
-                    ->add(GeneralUtility::makeInstance(BackendWorkspaceRestriction::class));
-
-                $queryBuilder->select('*')
-                    ->from($table)
-                    ->where(
-                        $queryBuilder->expr()->eq(
-                            $tcaCtrl['origUid'],
-                            $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)
-                        ),
-                        $queryBuilder->expr()->eq(
-                            $tcaCtrl['languageField'],
-                            $queryBuilder->createNamedParameter((int)$language, \PDO::PARAM_INT)
-                        )
-                    )
-                    ->setMaxResults(1);
-
-                if ($andWhereClause) {
-                    $queryBuilder->andWhere(QueryHelper::stripLogicalOperatorPrefix($andWhereClause));
-                }
-
-                $recordLocalization = $queryBuilder->execute()->fetchAll();
-            }
-        }
-        return $recordLocalization;
-    }
-
-    /**
-     * Returning uid of previous localized record, if any, for tables with a "sortby" column
-     * Used when new localized records are created so that localized records are sorted in the same order as the default language records
-     *
-     * @FIXME: This method is a clone of DataHandler::getPreviousLocalizedRecordUid which is protected there and uses
-     * BackendUtility::getRecordLocalization which we also needed to clone in this class. Also, this method takes two
-     * language arguments.
-     *
-     * @param string $table Table name
-     * @param int $uid Uid of default language record
-     * @param int $pid Pid of default language record
-     * @param int $sourceLanguage Language of origin
-     * @param int $destinationLanguage Language of localization
-     * @return int uid of record after which the localized record should be inserted
-     *
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getPreviousLocalizedRecordUid($table, $uid, $pid, $sourceLanguage, $destinationLanguage)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $previousLocalizedRecordUid = $uid;
-        if ($GLOBALS['TCA'][$table] && $GLOBALS['TCA'][$table]['ctrl']['sortby']) {
-            $sortRow = $GLOBALS['TCA'][$table]['ctrl']['sortby'];
-            $select = [$sortRow, 'pid', 'uid'];
-            // For content elements, we also need the colPos
-            if ($table === 'tt_content') {
-                $select[] = 'colPos';
-            }
-            // Get the sort value of the default language record
-            $row = BackendUtility::getRecord($table, $uid, implode(',', $select));
-            if (is_array($row)) {
-                $queryBuilder = $this->getQueryBuilderWithWorkspaceRestriction('tt_content');
-
-                $queryBuilder->select(...$select)
-                    ->from($table)
-                    ->where(
-                        $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($pid, \PDO::PARAM_INT)),
-                        $queryBuilder->expr()->eq(
-                            'sys_language_uid',
-                            $queryBuilder->createNamedParameter($sourceLanguage, \PDO::PARAM_INT)
-                        ),
-                        $queryBuilder->expr()->lt(
-                            $sortRow,
-                            $queryBuilder->createNamedParameter($row[$sortRow], \PDO::PARAM_INT)
-                        )
-                    );
-
-                // Respect the colPos for content elements
-                if ($table === 'tt_content') {
-                    $queryBuilder->andWhere(
-                        $queryBuilder->expr()->eq(
-                            'colPos',
-                            $queryBuilder->createNamedParameter($row['colPos'], \PDO::PARAM_INT)
-                        )
-                    );
-                }
-
-                $previousRow = $queryBuilder->orderBy($sortRow, 'DESC')->execute()->fetch();
-
-                // If there is an element, find its localized record in specified localization language
-                if ($previousRow !== false) {
-                    $previousLocalizedRecord = $this->getRecordLocalization(
-                        $table,
-                        $previousRow['uid'],
-                        $destinationLanguage
-                    );
-                    if (is_array($previousLocalizedRecord[0])) {
-                        $previousLocalizedRecordUid = $previousLocalizedRecord[0]['uid'];
-                    }
-                }
-            }
-        }
-
-        return $previousLocalizedRecordUid;
-    }
-
-    /**
      * Returns the current BE user.
      *
      * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication
index e9e3d86..995734a 100644 (file)
@@ -17,9 +17,7 @@ namespace TYPO3\CMS\Backend\Module;
 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;
 
@@ -122,15 +120,6 @@ abstract class AbstractFunctionModule
     public $extObj = null;
 
     /**
-     * Set to the directory name of this class file.
-     *
-     * @see init()
-     * @var string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public $thisPath = '';
-
-    /**
      * Can be hardcoded to the name of a locallang.xlf file (from the same directory as the class file) to use/load
      * and is included / added to $GLOBALS['LOCAL_LANG']
      *
@@ -173,12 +162,6 @@ abstract class AbstractFunctionModule
     public function init(&$pObj, $conf)
     {
         $this->pObj = $pObj;
-        // Path of this script:
-        $reflector = new \ReflectionObject($this);
-        $this->thisPath = dirname($reflector->getFileName());
-        if (!@is_dir($this->thisPath)) {
-            throw new \RuntimeException('TYPO3 Fatal Error: Could not find path for class ' . get_class($this), 1381164687);
-        }
         // Local lang:
         if (!empty($this->localLangFile)) {
             $this->getLanguageService()->includeLLFile($this->localLangFile);
@@ -203,29 +186,6 @@ abstract class AbstractFunctionModule
     }
 
     /**
-     * Including any locallang file configured and merging its content over
-     * the current global LOCAL_LANG array (which is EXPECTED to exist!!!)
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function incLocalLang()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (
-            $this->localLangFile
-            && (
-                @is_file(($this->thisPath . '/' . $this->localLangFile))
-                || @is_file(($this->thisPath . '/' . substr($this->localLangFile, 0, -4) . '.xml'))
-            )
-        ) {
-            $LOCAL_LANG = $this->getLanguageService()->includeLLFile($this->thisPath . '/' . $this->localLangFile, false);
-            if (is_array($LOCAL_LANG)) {
-                $GLOBALS['LOCAL_LANG'] = (array)$GLOBALS['LOCAL_LANG'];
-                ArrayUtility::mergeRecursiveWithOverrule($GLOBALS['LOCAL_LANG'], $LOCAL_LANG);
-            }
-        }
-    }
-
-    /**
      * Same as \TYPO3\CMS\Backend\Module\BaseScriptClass::checkExtObj()
      *
      * @see \TYPO3\CMS\Backend\Module\BaseScriptClass::checkExtObj()
@@ -286,26 +246,6 @@ abstract class AbstractFunctionModule
     }
 
     /**
-     * @return string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    protected function getBackPath()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return '';
-    }
-
-    /**
-     * @return DatabaseConnection
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9, use the Doctrine DBAL layer via the ConnectionPool class
-     */
-    protected function getDatabaseConnection()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return $GLOBALS['TYPO3_DB'];
-    }
-
-    /**
      * @return PageRenderer
      */
     protected function getPageRenderer()
index cde5bfa..10694e2 100644 (file)
@@ -16,7 +16,6 @@ namespace TYPO3\CMS\Backend\Module;
 
 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\Messaging\FlashMessageService;
 use TYPO3\CMS\Core\Page\PageRenderer;
@@ -374,16 +373,6 @@ class BaseScriptClass
     }
 
     /**
-     * @return DatabaseConnection
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9, use the Doctrine DBAL layer via the ConnectionPool class
-     */
-    protected function getDatabaseConnection()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return $GLOBALS['TYPO3_DB'];
-    }
-
-    /**
      * @return PageRenderer
      */
     protected function getPageRenderer()
index 4711847..35250fb 100644 (file)
@@ -119,21 +119,14 @@ function jumpToUrl(URL) {
     public $inDocStylesArray = [];
 
     /**
-     * Compensation for large documents (used in \TYPO3\CMS\Backend\Form\FormEngine)
-     *
-     * @var float
-     */
-    public $form_largeComp = 1.33;
-
-    /**
-     * Filename of stylesheet (relative to PATH_typo3)
+     * Filename of stylesheet
      *
      * @var string
      */
     public $styleSheetFile = '';
 
     /**
-     * Filename of stylesheet #2 - linked to right after the $this->styleSheetFile script (relative to PATH_typo3)
+     * Filename of stylesheet #2 - linked to right after the $this->styleSheetFile script
      *
      * @var string
      */
@@ -244,11 +237,6 @@ function jumpToUrl(URL) {
      */
     protected $templateService;
 
-    const STATUS_ICON_ERROR = 3;
-    const STATUS_ICON_WARNING = 2;
-    const STATUS_ICON_NOTIFICATION = 1;
-    const STATUS_ICON_OK = -1;
-
     /**
      * Constructor
      */
@@ -334,93 +322,6 @@ function jumpToUrl(URL) {
      *****************************************/
 
     /**
-     * Makes link to page $id in frontend (view page)
-     * Returns an icon which links to the frontend index.php document for viewing the page with id $id
-     * $id must be a page-uid
-     * If the BE_USER has access to Web>List then a link to that module is shown as well (with return-url)
-     *
-     * @param int $id The page id
-     * @return string HTML string with linked icon(s)
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function viewPageIcon($id)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        // If access to Web>List for user, then link to that module.
-        $str = '<a href="' . htmlspecialchars(BackendUtility::getModuleUrl('web_list', [
-            'id' => $id,
-            'returnUrl' > GeneralUtility::getIndpEnv('REQUEST_URI')
-        ])) . '" title="' . htmlspecialchars($GLOBALS['LANG']->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.showList')) . '">' . $this->iconFactory->getIcon('actions-system-list-open', Icon::SIZE_SMALL)->render() . '</a>';
-
-        // Make link to view page
-        $str .= '<a href="#" onclick="' . htmlspecialchars(BackendUtility::viewOnClick($id, '', BackendUtility::BEgetRootLine($id))) . '" title="' . htmlspecialchars($GLOBALS['LANG']->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.showPage')) . '">' . $this->iconFactory->getIcon('actions-document-view', Icon::SIZE_SMALL)->render() . '</a>';
-        return $str;
-    }
-
-    /**
-     * Makes the header (icon+title) for a page (or other record). Used in most modules under Web>*
-     * $table and $row must be a tablename/record from that table
-     * $path will be shown as alt-text for the icon.
-     * The title will be truncated to 45 chars.
-     *
-     * @param string $table Table name
-     * @param array $row Record row
-     * @param string $path Alt text
-     * @param bool $noViewPageIcon Set $noViewPageIcon TRUE if you don't want a magnifier-icon for viewing the page in the frontend
-     * @param array $tWrap is an array with indexes 0 and 1 each representing HTML-tags (start/end) which will wrap the title
-     * @param bool $enableClickMenu If TRUE, render click menu code around icon image
-     * @return string HTML content
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getHeader($table, $row, $path, $noViewPageIcon = false, $tWrap = ['', ''], $enableClickMenu = true)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $viewPage = '';
-        if (is_array($row) && $row['uid']) {
-            $iconImgTag = '<span title="' . htmlspecialchars($path) . '">' . $this->iconFactory->getIconForRecord($table, $row, Icon::SIZE_SMALL)->render() . '</span>';
-            $title = strip_tags(BackendUtility::getRecordTitle($table, $row));
-            $viewPage = $noViewPageIcon ? '' : $this->viewPageIcon($row['uid']);
-        } else {
-            $iconImgTag = '<span title="' . htmlspecialchars($path) . '">' . $this->iconFactory->getIcon('apps-pagetree-page-domain', Icon::SIZE_SMALL)->render() . '</span>';
-            $title = $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'];
-        }
-
-        if ($enableClickMenu) {
-            $iconImgTag = BackendUtility::wrapClickMenuOnIcon($iconImgTag, $table, $row['uid']);
-        }
-
-        return '<span class="typo3-moduleHeader">' . $iconImgTag . $viewPage . $tWrap[0] . htmlspecialchars(GeneralUtility::fixed_lgd_cs($title, 45)) . $tWrap[1] . '</span>';
-    }
-
-    /**
-     * Like ->getHeader() but for files and folders
-     * Returns the icon with the path of the file/folder set in the alt/title attribute. Shows the name after the icon.
-     *
-     * @param \TYPO3\CMS\Core\Resource\ResourceInterface $resource
-     * @param array $tWrap is an array with indexes 0 and 1 each representing HTML-tags (start/end) which will wrap the title
-     * @param bool $enableClickMenu If TRUE, render click menu code around icon image
-     * @return string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getResourceHeader(\TYPO3\CMS\Core\Resource\ResourceInterface $resource, $tWrap = ['', ''], $enableClickMenu = true)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        try {
-            $path = $resource->getStorage()->getName() . $resource->getParentFolder()->getIdentifier();
-            $iconImgTag = '<span title="' . htmlspecialchars($path) . '">' . $this->iconFactory->getIconForResource($resource, Icon::SIZE_SMALL)->render() . '</span>';
-        } catch (\TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException $e) {
-            $iconImgTag = '';
-        }
-
-        if ($enableClickMenu && ($resource instanceof \TYPO3\CMS\Core\Resource\File)) {
-            $metaData = $resource->_getMetaData();
-            $iconImgTag = BackendUtility::wrapClickMenuOnIcon($iconImgTag, 'sys_file_metadata', $metaData['uid']);
-        }
-
-        return '<span class="typo3-moduleHeader">' . $iconImgTag . $tWrap[0] . htmlspecialchars(GeneralUtility::fixed_lgd_cs($resource->getName(), 45)) . $tWrap[1] . '</span>';
-    }
-
-    /**
      * Returns a linked shortcut-icon which will call the shortcut frame and set a shortcut there back to the calling page/module
      *
      * @param string $gvList Is the list of GET variables to store (if any)
@@ -673,152 +574,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Returns the header-bar in the top of most backend modules
-     * Closes section if open.
-     *
-     * @param string $text The text string for the header
-     * @return string HTML content
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 9
-     */
-    public function header($text)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $str = '
-
-       <!-- MAIN Header in page top -->
-       <h1 class="t3js-title-inlineedit">' . htmlspecialchars($text) . '</h1>
-';
-        return $this->sectionEnd() . $str;
-    }
-
-    /**
-     * Begins an output section and sets header and content
-     *
-     * @param string $label The header
-     * @param string $text The HTML-content
-     * @param bool $nostrtoupper       A flag that will prevent the header from being converted to uppercase
-     * @param bool $sH Defines the type of header (if set, "<h3>" rather than the default "h4")
-     * @param int $type The number of an icon to show with the header (see the icon-function). -1,1,2,3
-     * @param bool $allowHTMLinHeader If set, HTML tags are allowed in $label (otherwise this value is by default htmlspecialchars()'ed)
-     * @return string HTML content
-     * @see icons(), sectionHeader()
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function section($label, $text, $nostrtoupper = false, $sH = false, $type = 0, $allowHTMLinHeader = false)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $str = '';
-        // Setting header
-        if ($label) {
-            if (!$allowHTMLinHeader) {
-                $label = htmlspecialchars($label);
-            }
-            $str .= $this->sectionHeader($this->icons($type) . $label, $sH, $nostrtoupper ? '' : ' class="uppercase"');
-        }
-        // Setting content
-        $str .= '
-
-       <!-- Section content -->
-' . $text;
-        return $this->sectionBegin() . $str;
-    }
-
-    /**
-     * Inserts a divider image
-     * Ends a section (if open) before inserting the image
-     *
-     * @param int $dist The margin-top/-bottom of the <hr> ruler.
-     * @return string HTML content
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function divider($dist)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $dist = (int)$dist;
-        $str = '
-
-       <!-- DIVIDER -->
-       <hr style="margin-top: ' . $dist . 'px; margin-bottom: ' . $dist . 'px;" />
-';
-        return $this->sectionEnd() . $str;
-    }
-
-    /**
-     * Make a section header.
-     * Begins a section if not already open.
-     *
-     * @param string $label The label between the <h3> or <h4> tags. (Allows HTML)
-     * @param bool $sH If set, <h3> is used, otherwise <h4>
-     * @param string $addAttrib Additional attributes to h-tag, eg. ' class=""'
-     * @return string HTML content
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function sectionHeader($label, $sH = false, $addAttrib = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $tag = $sH ? 'h2' : 'h3';
-        if ($addAttrib && $addAttrib[0] !== ' ') {
-            $addAttrib = ' ' . $addAttrib;
-        }
-        $str = '
-
-       <!-- Section header -->
-       <' . $tag . $addAttrib . '>' . $label . '</' . $tag . '>
-';
-        return $this->sectionBegin() . $str;
-    }
-
-    /**
-     * Begins an output section.
-     * Returns the <div>-begin tag AND sets the ->sectionFlag TRUE (if the ->sectionFlag is not already set!)
-     * You can call this function even if a section is already begun since the function will only return something if the sectionFlag is not already set!
-     *
-     * @return string HTML content
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function sectionBegin()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (!$this->sectionFlag) {
-            $this->sectionFlag = 1;
-            $str = '
-
-       <!-- ***********************
-             Begin output section.
-            *********************** -->
-       <div>
-';
-            return $str;
-        } else {
-            return '';
-        }
-    }
-
-    /**
-     * Ends and output section
-     * Returns the </div>-end tag AND clears the ->sectionFlag (but does so only IF the sectionFlag is set - that is a section is 'open')
-     * See sectionBegin() also.
-     *
-     * @return string HTML content
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function sectionEnd()
-    {
-        if ($this->sectionFlag) {
-            GeneralUtility::logDeprecatedFunction();
-            $this->sectionFlag = 0;
-            return '
-       </div>
-       <!-- *********************
-             End output section.
-            ********************* -->
-';
-        } else {
-            return '';
-        }
-    }
-
-    /**
      * Creates the bodyTag.
      * You can add to the bodyTag by $this->bodyTagAdditions
      *
@@ -969,255 +724,6 @@ function jumpToUrl(URL) {
      * Tables, buttons, formatting dimmed/red strings
      *
      ******************************************/
-    /**
-     * Returns an image-tag with an 18x16 icon of the following types:
-     *
-     * $type:
-     * -1:     OK icon (Check-mark)
-     * 1:      Notice (Speach-bubble)
-     * 2:      Warning (Yellow triangle)
-     * 3:      Fatal error (Red stop sign)
-     *
-     * @param int $type See description
-     * @param string $styleAttribValue Value for style attribute
-     * @return string HTML image tag (if applicable)
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function icons($type, $styleAttribValue = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        switch ($type) {
-            case self::STATUS_ICON_ERROR:
-                $icon = 'status-dialog-error';
-                break;
-            case self::STATUS_ICON_WARNING:
-                $icon = 'status-dialog-warning';
-                break;
-            case self::STATUS_ICON_NOTIFICATION:
-                $icon = 'status-dialog-notification';
-                break;
-            case self::STATUS_ICON_OK:
-                $icon = 'status-dialog-ok';
-                break;
-            default:
-                // Do nothing
-        }
-        if ($icon) {
-            return $this->iconFactory->getIcon($icon, Icon::SIZE_SMALL)->render();
-        }
-    }
-
-    /**
-     * Returns an <input> button with the $onClick action and $label
-     *
-     * @param string $onClick The value of the onclick attribute of the input tag (submit type)
-     * @param string $label The label for the button (which will be htmlspecialchar'ed)
-     * @return string A <input> tag of the type "submit
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function t3Button($onClick, $label)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $button = '<input class="btn btn-default" type="submit" onclick="' . htmlspecialchars($onClick) . '; return false;" value="' . htmlspecialchars($label) . '" />';
-        return $button;
-    }
-
-    /**
-     * Returns string wrapped in CDATA "tags" for XML / XHTML (wrap content of <script> and <style> sections in those!)
-     *
-     * @param string $string Input string
-     * @return string Output string
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function wrapInCData($string)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $string = '/*<![CDATA[*/' . $string . '/*]]>*/';
-        return $string;
-    }
-
-    /**
-     * Wraps the input string in script tags.
-     * Automatic re-identing of the JS code is done by using the first line as ident reference.
-     * This is nice for identing JS code with PHP code on the same level.
-     *
-     * @param string $string Input string
-     * @param bool $linebreak Wrap script element in linebreaks? Default is TRUE.
-     * @return string Output string
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9, use GeneralUtility::wrapJS()
-     */
-    public function wrapScriptTags($string, $linebreak = true)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (trim($string)) {
-            // <script wrapped in nl?
-            $cr = $linebreak ? LF : '';
-            // Remove nl from the beginning
-            $string = ltrim($string, LF);
-            // Re-ident to one tab using the first line as reference
-            if ($string[0] === TAB) {
-                $string = TAB . ltrim($string, TAB);
-            }
-            $string = $cr . '<script type="text/javascript">
-/*<![CDATA[*/
-' . $string . '
-/*]]>*/
-</script>' . $cr;
-        }
-        return trim($string);
-    }
-
-    /**
-     * Returns a one-row/two-celled table with $content and $menu side by side.
-     * The table is a 100% width table and each cell is aligned left / right
-     *
-     * @param string $content Content cell content (left)
-     * @param string $menu Menu cell content (right)
-     * @return string HTML output
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function funcMenu($content, $menu)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return '
-                       <table border="0" cellpadding="0" cellspacing="0" width="100%" id="typo3-funcmenu">
-                               <tr>
-                                       <td valign="top" nowrap="nowrap">' . $content . '</td>
-                                       <td valign="top" align="right" nowrap="nowrap">' . $menu . '</td>
-                               </tr>
-                       </table>';
-    }
-
-    /**
-     * Includes a javascript library that exists in the core /typo3/ directory
-     *
-     * @param string $lib: Library name. Call it with the full path like "sysext/core/Resources/Public/JavaScript/QueryGenerator.js" to load it
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function loadJavascriptLib($lib)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->pageRenderer->addJsFile($lib);
-    }
-
-    /**
-     * Includes the necessary Javascript function for the clickmenu (context sensitive menus) in the document
-     *
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getContextMenuCode()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->pageRenderer->loadJquery();
-        $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ContextMenu');
-    }
-
-    /**
-     * Includes the necessary javascript file for use on pages which have the
-     * drag and drop functionality (legacy folder tree)
-     *
-     * @param string $table indicator of which table the drag and drop function should work on (pages or folders)
-     * @param string $additionalJavaScriptCode adds more code to the additional javascript code
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function getDragDropCode($table, $additionalJavaScriptCode = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/LegacyTree', 'function() {
-                       DragDrop.table = "' . $table . '";
-                       ' . $additionalJavaScriptCode . '
-               }');
-    }
-
-    /**
-     * Creates a tab menu from an array definition
-     *
-     * Returns a tab menu for a module
-     * Requires the JS function jumpToUrl() to be available
-     *
-     * @param mixed $mainParams is the "&id=" parameter value to be sent to the module, but it can be also a parameter array which will be passed instead of the &id=...
-     * @param string $elementName it the form elements name, probably something like "SET[...]
-     * @param string $currentValue is the value to be selected currently.
-     * @param array $menuItems is an array with the menu items for the selector box
-     * @param string $script is the script to send the &id to, if empty it's automatically found
-     * @param string $addparams is additional parameters to pass to the script.
-     * @return string HTML code for tab menu
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function getTabMenu($mainParams, $elementName, $currentValue, $menuItems, $script = '', $addparams = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $content = '';
-        if (is_array($menuItems)) {
-            if (!is_array($mainParams)) {
-                $mainParams = ['id' => $mainParams];
-            }
-            $mainParams = GeneralUtility::implodeArrayForUrl('', $mainParams);
-            if (!$script) {
-                $script = basename(PATH_thisScript);
-            }
-            $menuDef = [];
-            foreach ($menuItems as $value => $label) {
-                $menuDef[$value]['isActive'] = (string)$currentValue === (string)$value;
-                $menuDef[$value]['label'] = htmlspecialchars($label, ENT_COMPAT, 'UTF-8', false);
-                $menuDef[$value]['url'] = $script . '?' . $mainParams . $addparams . '&' . $elementName . '=' . $value;
-            }
-            $content = $this->getTabMenuRaw($menuDef);
-        }
-        return $content;
-    }
-
-    /**
-     * Creates the HTML content for the tab menu
-     *
-     * @param array $menuItems Menu items for tabs
-     * @return string Table HTML
-     * @access private
-     */
-    public function getTabMenuRaw($menuItems)
-    {
-        if (!is_array($menuItems)) {
-            return '';
-        }
-
-        $options = '';
-        foreach ($menuItems as $id => $def) {
-            $class = $def['isActive'] ? 'active' : '';
-            $label = $def['label'];
-            $url = htmlspecialchars($def['url']);
-            $params = $def['addParams'];
-
-            $options .= '<li class="' . $class . '">' .
-                '<a href="' . $url . '" ' . $params . '>' . $label . '</a>' .
-                '</li>';
-        }
-
-        return '<ul class="nav nav-tabs" role="tablist">' .
-                $options .
-            '</ul>';
-    }
-
-    /**
-     * Creates the version selector for the page id inputted.
-     * Requires the core version management extension, "version" to be loaded.
-     *
-     * @param int $id Page id to create selector for.
-     * @param bool $noAction If set, there will be no button for swapping page.
-     * @return string
-     * @deprecated since TYPO3 CMS 8, will be removed in TYPO3 CMS 9.
-     */
-    public function getVersionSelector($id, $noAction = false)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if (
-                ExtensionManagementUtility::isLoaded('version') &&
-                ExtensionManagementUtility::isLoaded('compatibility7') &&
-                !ExtensionManagementUtility::isLoaded('workspaces')
-        ) {
-            $versionGuiObj = GeneralUtility::makeInstance(\TYPO3\CMS\Compatibility7\View\VersionView::class);
-            return $versionGuiObj->getVersionSelector($id, $noAction);
-        }
-    }
 
     /**
      * Function to load a HTML template file with markers.
index 66b8ac0..358c56b 100644 (file)
@@ -558,34 +558,6 @@ class ModuleTemplate
     }
 
     /**
-     * Creates the version selector for the page id inputted.
-     * Requires the core version management extension, "version" to be loaded.
-     *
-     * @param int $id Page id to create selector for.
-     * @param bool $noAction If set, there will be no button for swapping page.
-     *
-     * @return string
-     * @internal
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function getVersionSelector($id, $noAction = false)
-    {
-        if (ExtensionManagementUtility::isLoaded('version')
-            && ExtensionManagementUtility::isLoaded('compatibility7')
-            && !ExtensionManagementUtility::isLoaded('workspaces')
-        ) {
-            /**
-             * For Code Completion
-             *
-             * @var $versionGuiObj \TYPO3\CMS\Compatibility7\View\VersionView
-             */
-            $versionGuiObj = GeneralUtility::makeInstance(\TYPO3\CMS\Compatibility7\View\VersionView::class);
-            return $versionGuiObj->getVersionSelector($id, $noAction);
-        }
-        return '';
-    }
-
-    /**
      * Returns the BE USER Object
      *
      * @return BackendUserAuthentication
index 392f4d1..f609471 100644 (file)
@@ -3003,7 +3003,6 @@ class BackendUtility
      *
      * @return string HTML javascript code
      * @see BackendUtility::setUpdateSignal()
-     * @see \TYPO3\CMS\Backend\Template\DocumentTemplate::sectionEnd
      */
     public static function getUpdateSignalCode()
     {
index 77bafe2..c23f40e 100644 (file)
@@ -1294,62 +1294,6 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
     }
 
     /**
-     * Adds pages-rows to an array, selecting recursively in the page tree.
-     *
-     * @param array $theRows Array which will accumulate page rows
-     * @param int $pid Pid to select from
-     * @param string $qWhere Query-where clause
-     * @param string $treeIcons Prefixed icon code.
-     * @param int $depth Depth (decreasing)
-     * @return array $theRows, but with added rows.
-     * @deprecated since TYPO3 v8, will be removed in TYPO3 v9
-     */
-    public function pages_getTree($theRows, $pid, $qWhere, $treeIcons, $depth)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $depth--;
-        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages');
-        $queryBuilder->getRestrictions()
-            ->removeAll();
-        $queryBuilder
-            ->select('*')
-            ->from('pages')
-            ->where($queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($pid, \PDO::PARAM_INT)));
-
-        if (!empty($GLOBALS['TCA']['pages']['ctrl']['sortby'])) {
-            $queryBuilder->orderBy($GLOBALS['TCA']['pages']['ctrl']['sortby']);
-        }
-
-        if (!empty($qWhere)) {
-            $queryBuilder->andWhere(QueryHelper::stripLogicalOperatorPrefix($qWhere));
-        }
-
-        if ($depth >= 0) {
-            $result = $queryBuilder->execute();
-            $rc = $result->rowCount();
-            $c = 0;
-            while ($row = $result->fetch()) {
-                BackendUtility::workspaceOL('pages', $row);
-                if (is_array($row)) {
-                    $c++;
-                    $row['treeIcons'] = $treeIcons . '<span class="treeline-icon treeline-icon-join' . ($rc === $c ? 'bottom' : '') . '"></span>';
-                    $theRows[] = $row;
-                    // Get the branch
-                    $spaceOutIcons = '<span class="treeline-icon treeline-icon-' . ($rc === $c ? 'clear' : 'line') . '"></span>';
-                    $theRows = $this->pages_getTree($theRows, $row['uid'], $qWhere, $treeIcons . $spaceOutIcons,
-                        $row['php_tree_stop'] ? 0 : $depth);
-                }
-            }
-        } else {
-            $count = (int)$queryBuilder->count('uid')->execute()->fetchColumn(0);
-            if ($count) {
-                $this->plusPages[$pid] = $count;
-            }
-        }
-        return $theRows;
-    }
-
-    /**
      * Adds a list item for the pages-rendering
      *
      * @param array $row Record array
@@ -2207,18 +2151,15 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
     /**
      * Traverse the result pointer given, adding each record to array and setting some internal values at the same time.
      *
-     * @param Statement|\mysqli_result $result DBAL Statement or MySQLi result object
+     * @param Statement $result DBAL Statement
      * @param string $table Table name defaulting to tt_content
      * @return array The selected rows returned in this array.
      */
-    public function getResult($result, string $table = 'tt_content'): array
+    public function getResult(Statement $result, string $table = 'tt_content'): array
     {
-        if ($result instanceof \mysqli_result) {
-            GeneralUtility::deprecationLog('Using \TYPO3\CMS\Backend\View\PageLayoutView::getResult with a mysqli_result object is deprecated since TYPO3 CMS 8 and will be removed in TYPO3 CMS 9');
-        }
         $output = [];
         // Traverse the result:
-        while ($row = ($result instanceof Statement ? $result->fetch() : $result->fetch_assoc())) {
+        while ($row = $result->fetch()) {
             BackendUtility::workspaceOL($table, $row, -99, true);
             if ($row) {
                 // Add the row to the array:
index 66172cf..f383dca 100644 (file)
@@ -113,21 +113,6 @@ define(['jquery',
        };
 
        /**
-        * Get the correct css class for given severity
-        *
-        * @param {int} severity use constants from Severity.*
-        * @returns {String}
-        * @private
-        * @deprecated
-        */
-       Modal.getSeverityClass = function(severity) {
-               if (console) {
-                       console.warn('Modal.getSeverityClass() is deprecated and will be removed with TYPO3 v9, please use Severity.getCssClass()');
-               }
-               return Severity.getCssClass(severity);
-       };
-
-       /**
         * Shows a confirmation dialog
         * Events:
         * - button.clicked
@@ -415,15 +400,6 @@ define(['jquery',
        };
 
        /**
-        * Center the modal windows
-        */
-       Modal.center = function() {
-               if (console) {
-                       console.warn('Modal.center() is deprecated and will be removed with TYPO3 v9, please remove the call. Modals are now automatically centered.');
-               }
-       };
-
-       /**
         * Initialize markup with data attributes
         *
         * @param {object} theDocument
index 1df1ffa..61a8220 100644 (file)
@@ -48,8 +48,6 @@ define(function () {
         */
        var Severity = {
                notice: -2,
-               // @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 9, use info instead of information
-               information: -1,
                info: -1,
                ok: 0,
                warning: 1,
index 9b0d447..57c03a6 100644 (file)
@@ -122,9 +122,6 @@ define(
                         * Contentcontainer
                         */
                        ContentContainer: {
-                               // @deprecated since TYPO3 v8, will be removed in v9.
-                               // Use top.TYPO3.Backend.ContentContainer.get() instead of top.TYPO3.Backend.ContentContainer.iframe
-                               'iframe': $('.t3js-scaffold-content-module-iframe')[0].contentWindow,
                                get: function() {
                                        return $('.t3js-scaffold-content-module-iframe')[0].contentWindow;
                                },
index 7f9e5f5..a703ba4 100644 (file)
@@ -29,12 +29,52 @@ The following PHP classes that have been previously deprecated for v8 have been
 The following PHP interfaces have been dropped:
 * TYPO3\CMS\Backend\Form\DatabaseFileIconsHookInterface
 
+The following PHP interface signatures have been changed:
+* TYPO3\CMS\Extbase\Persistence\Generic\QueryInterface->like() - Third argument dropped
+
 The following PHP class methods that have been previously deprecated for v8 have been removed:
+* TYPO3\CMS\Backend\Clipboard\Clipboard->confirmMsg()
+* TYPO3\CMS\Backend\Controller\BackendController->addCssFile()
+* TYPO3\CMS\Backend\Controller\BackendController->addJavascript()
+* TYPO3\CMS\Backend\Controller\BackendController->addJavascriptFile()
+* TYPO3\CMS\Backend\Controller\BackendController->includeLegacyBackendItems()
+* TYPO3\CMS\Backend\Controller\Page\LocalizationController->getRecordUidsToCopy()
+* TYPO3\CMS\Backend\Controller\Page\PageLayoutController->printContent()
+* TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository->getAllowedLanguagesForBackendUser()
+* TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository->getExcludeQueryPart()
+* TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository->getPreviousLocalizedRecordUid()
+* TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository->getRecordLocalization()
+* TYPO3\CMS\Backend\Module\AbstractFunctionModule->getBackPath()
+* TYPO3\CMS\Backend\Module\AbstractFunctionModule->getDatabaseConnection()
+* TYPO3\CMS\Backend\Module\AbstractFunctionModule->incLocalLang()
+* TYPO3\CMS\Backend\Module\BaseScriptClass->getDatabaseConnection()
 * TYPO3\CMS\Backend\Form\AbstractFormElement->isWizardsDisabled()
 * TYPO3\CMS\Backend\Form\AbstractFormElement->renderWizards()
 * TYPO3\CMS\Backend\Form\AbstractNode->getValidationDataAsDataAttribute()
 * TYPO3\CMS\Backend\Form\FormResultCompiler->JStop()
 * TYPO3\CMS\Backend\Routing\UriBuilder->buildUriFromAjaxId()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->divider()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->funcMenu()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getContextMenuCode()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getDragDropCode()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getHeader()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getResourceHeader()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getTabMenu()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getTabMenuRaw()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->header()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->icons()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->loadJavascriptLib()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->section()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->sectionBegin()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->sectionEnd()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->sectionHeader()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->t3Button()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->getVersionSelector()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->viewPageIcon()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->wrapInCData()
+* TYPO3\CMS\Backend\Template\DocumentTemplate->wrapScriptTags()
+* TYPO3\CMS\Backend\Template\ModuleTemplate->getVersionSelector()
+* TYPO3\CMS\Backend\View\PageLayoutView->pages_getTree()
 * TYPO3\CMS\Backend\Utility\BackendUtility::getAjaxUrl()
 * TYPO3\CMS\Backend\Utility\BackendUtility::getFlexFormDS()
 * TYPO3\CMS\Backend\Utility\BackendUtility::getListViewLink()
@@ -178,7 +218,13 @@ The following methods changed signature according to previous deprecations in v8
 * TYPO3\CMS\Lang\LanguageService->getsL() - Second argument dropped
 
 The following public class properties have been dropped:
+* TYPO3\CMS\Backend\Controller\EditDocumentController->localizationMode
+* TYPO3\CMS\Backend\Controller\Page\PageLayoutController->edit_record
+* TYPO3\CMS\Backend\Controller\Page\PageLayoutController->new_unique_uid
+* TYPO3\CMS\Backend\Controller\Page\PageLayoutController->externalTables
+* TYPO3\CMS\Backend\Module\AbstractFunctionModule->thisPath
 * TYPO3\CMS\Backend\Template\DocumentTemplate->extJScode
+* TYPO3\CMS\Backend\Template\DocumentTemplate->form_largeComp
 * TYPO3\CMS\Core\Charset\CharsetConverter->charSetArray
 * TYPO3\CMS\Core\Charset\CharsetConverter->fourByteSets
 * TYPO3\CMS\Core\DataHandling\DataHandler->checkWorkspaceCache
@@ -201,8 +247,11 @@ The following class properties have changed visibility:
 * TYPO3\CMS\Core\DataHandling\DataHandler->cachedTSconfig changed from public to protected
 * TYPO3\CMS\Core\DataHandling\DataHandler->pageCache changed from public to protected
 
-The following Interface signatures have been changed:
-* TYPO3\CMS\Extbase\Persistence\Generic\QueryInterface->like() - Third argument dropped
+The following public class constants have been dropped:
+* TYPO3\CMS\Backend\Template\DocumentTemplate::STATUS_ICON_ERROR
+* TYPO3\CMS\Backend\Template\DocumentTemplate::STATUS_ICON_WARNING
+* TYPO3\CMS\Backend\Template\DocumentTemplate::STATUS_ICON_NOTIFICATION
+* TYPO3\CMS\Backend\Template\DocumentTemplate::STATUS_ICON_OK
 
 The following configuration options are not evaluated anymore:
 * $TYPO3_CONF_VARS[SC_OPTIONS][GLOBAL][cliKeys]
@@ -248,6 +297,11 @@ The following PageTsConfig properties have been removed:
 The following array constructs have been removed:
 * extJSCODE in FormEngine render result
 
+The following JavaScript methods and options have been removed:
+* backend/Resources/Public/JavaScript/jsfunc.inline.js escapeSelectorObjectId
+* TYPO3/CMS/Backend/Modal.getSeverityClass()
+* TYPO3/CMS/Backend/Severity.information
+
 
 Impact
 ======