[!!!][TASK] Remove deprecated code from DocumentTemplate
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / Template / DocumentTemplate.php
index 2bbc1a6..6489f25 100644 (file)
@@ -50,15 +50,6 @@ class DocumentTemplate
     public $form = '';
 
     /**
-     * Similar to $JScode (see below) but used as an associative array to prevent double inclusion of JS code.
-     * This is used to include certain external Javascript libraries before the inline JS code.
-     * <script>-Tags are not wrapped around automatically
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use pageRenderer directly
-     */
-    public $JScodeLibArray = array();
-
-    /**
      * Additional header code (eg. a JavaScript section) could be accommulated in this var. It will be directly outputted in the header.
      *
      * @var string
@@ -92,12 +83,6 @@ function jumpToUrl(URL) {
     public $postCode = '';
 
     /**
-     * Doc-type used in the header. Default is xhtml_trans. You can also set it to 'html_3', 'xhtml_strict' or 'xhtml_frames'.
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, as it is HTML5
-     */
-    public $docType = '';
-
-    /**
      * HTML template with markers for module
      *
      * @var string
@@ -134,13 +119,6 @@ function jumpToUrl(URL) {
 
     /**
      * Additional CSS styles which will be added to the <style> section in the header
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use the pageRenderer property for adding CSS styles
-     */
-    public $inDocStyles = '';
-
-    /**
-     * Additional CSS styles which will be added to the <style> section in the header
      * used as array with associative keys to prevent double inclusion of CSS code
      *
      * @var array
@@ -155,64 +133,6 @@ function jumpToUrl(URL) {
     public $form_largeComp = 1.33;
 
     /**
-     * If set, then a JavaScript section will be outputted in the bottom of page which will try and update the top.busy session expiry object.
-     *
-     * @var int
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $endJS = 1;
-
-    // TYPO3 Colorscheme.
-    // If you want to change this, please do so through a skin using the global var $GLOBALS['TBE_STYLES']
-
-    /**
-     * Light background color
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $bgColor = '#F7F3EF';
-
-    /**
-     * Steel-blue
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $bgColor2 = '#9BA1A8';
-
-    /**
-     * dok.color
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $bgColor3 = '#F6F2E6';
-
-    /**
-     * light tablerow background, brownish
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $bgColor4 = '#D9D5C9';
-
-    /**
-     * light tablerow background, greenish
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $bgColor5 = '#ABBBB4';
-
-    /**
-     * light tablerow background, yellowish, for section headers. Light.
-     *
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $bgColor6 = '#E7DBA8';
-
-    /**
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $hoverColor = '#254D7B';
-
-    /**
      * Filename of stylesheet (relative to PATH_typo3)
      *
      * @var string
@@ -234,22 +154,6 @@ function jumpToUrl(URL) {
     public $styleSheetFile_post = '';
 
     /**
-     * Background image of page (relative to PATH_typo3)
-     *
-     * @var string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use a stylesheet instead
-     */
-    public $backGroundImage = '';
-
-    /**
-     * Inline css styling set from TBE_STYLES array
-     *
-     * @var string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use inDocStylesArray['TBEstyle']
-     */
-    public $inDocStyles_TBEstyle = '';
-
-    /**
      * Whether to use the X-UA-Compatible meta tag
      *
      * @var bool
@@ -298,23 +202,6 @@ function jumpToUrl(URL) {
     protected $jsFilesNoConcatenation = array();
 
     /**
-     * Will output the parsetime of the scripts in milliseconds (for admin-users).
-     * Set this to FALSE when releasing TYPO3. Only for dev.
-     *
-     * @var bool
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public $parseTimeFlag = false;
-
-    /**
-     * internal character set, nowadays utf-8 for everything
-     *
-     * @var string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, as it is always utf-8
-     */
-    protected $charset = 'utf-8';
-
-    /**
      * Indicates if a <div>-output section is open
      *
      * @var int
@@ -475,20 +362,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Gets instance of PageRenderer configured with the current language, file references and debug settings
-     *
-     * @return PageRenderer
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8.
-     */
-    public function getPageRenderer()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->initPageRenderer();
-
-        return $this->pageRenderer;
-    }
-
-    /**
      * Sets inclusion of StateProvider
      *
      * @return void
@@ -504,26 +377,6 @@ function jumpToUrl(URL) {
      * Various centralized processing
      *
      *****************************************/
-    /**
-     * Makes click menu link (context sensitive menu)
-     * Returns $str (possibly an <|img> tag/icon) wrapped in a link which will activate the context sensitive menu for the record ($table/$uid) or file ($table = file)
-     * The link will load the top frame with the parameter "&item" which is the table,uid and listFr arguments imploded by "|": rawurlencode($table.'|'.$uid.'|'.$listFr)
-     *
-     * @param string $str String to be wrapped in link, typ. image tag.
-     * @param string $table Table name/File path. If the icon is for a database record, enter the tablename from $GLOBALS['TCA']. If a file then enter the absolute filepath
-     * @param int $uid If icon is for database record this is the UID for the record from $table
-     * @param bool $listFr Tells the top frame script that the link is coming from a "list" frame which means a frame from within the backend content frame.
-     * @param string $addParams Additional GET parameters for the link to the ClickMenu AJAX request
-     * @param string $enDisItems Enable / Disable click menu items. Example: "+new,view" will display ONLY these two items (and any spacers in between), "new,view" will display all BUT these two items.
-     * @param bool $returnTagParameters If set, will return only the onclick JavaScript, not the whole link.
-     * @return string The link-wrapped input string.
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use BackendUtility::wrapClickMenuOnIcon() instead
-     */
-    public function wrapClickMenuOnIcon($content, $table, $uid = 0, $listFr = true, $addParams = '', $enDisItems = '', $returnTagParameters = false)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return BackendUtility::wrapClickMenuOnIcon($content, $table, $uid, $listFr, $addParams, $enDisItems, $returnTagParameters);
-    }
 
     /**
      * Makes link to page $id in frontend (view page)
@@ -532,10 +385,9 @@ function jumpToUrl(URL) {
      * 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
-     * @param string $_ @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
      * @return string HTML string with linked icon(s)
      */
-    public function viewPageIcon($id, $_ = '')
+    public function viewPageIcon($id)
     {
         // If access to Web>List for user, then link to that module.
         $str = BackendUtility::getListViewLink(array(
@@ -548,22 +400,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Returns a URL with a command to TYPO3 Core Engine (tce_db.php)
-     * See description of the API elsewhere.
-     *
-     * @param string $params is a set of GET params to send to tce_db.php. Example: "&cmd[tt_content][123][move]=456" or "&data[tt_content][123][hidden]=1&data[tt_content][123][title]=Hello%20World
-     * @param string|int $redirectUrl Redirect URL, default is to use GeneralUtility::getIndpEnv('REQUEST_URI'), -1 means to generate an URL for JavaScript using T3_THIS_LOCATION
-     * @return string URL to BackendUtility::getModuleUrl('tce_db') + parameters
-     * @see \TYPO3\CMS\Backend\Utility\BackendUtility::editOnClick()
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use BackendUtility::getLinkToDataHandlerAction() instead
-     */
-    public function issueCommand($params, $redirectUrl = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return BackendUtility::getLinkToDataHandlerAction($params, $redirectUrl);
-    }
-
-    /**
      * 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.
@@ -726,46 +562,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Returns a formatted string of $tstamp
-     * Uses $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'] and $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'] to format date and time
-     *
-     * @param int $tstamp UNIX timestamp, seconds since 1970
-     * @param int $type How much data to show: $type = 1: hhmm, $type = 10:    ddmmmyy
-     * @return string Formatted timestamp
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use the corresponding methods in BackendUtility
-     */
-    public function formatTime($tstamp, $type)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $dateStr = '';
-        switch ($type) {
-            case 1:
-                $dateStr = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'], $tstamp);
-                break;
-            case 10:
-                $dateStr = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'], $tstamp);
-                break;
-        }
-        return $dateStr;
-    }
-
-    /**
-     * Returns script parsetime IF ->parseTimeFlag is set and user is "admin"
-     * Automatically outputted in page end
-     *
-     * @return string HTML formated with <p>-tags
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public function parseTime()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if ($this->parseTimeFlag && $GLOBALS['BE_USER']->isAdmin()) {
-            return '<p>(ParseTime: ' . (GeneralUtility::milliseconds() - $GLOBALS['PARSETIME_START']) . ' ms</p>
-                                       <p>REQUEST_URI-length: ' . strlen(GeneralUtility::getIndpEnv('REQUEST_URI')) . ')</p>';
-        }
-    }
-
-    /**
      * Defines whether to use the X-UA-Compatible meta tag.
      *
      * @param bool $useCompatibilityTag Whether to use the tag
@@ -993,25 +789,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Returns a blank <div>-section with a height
-     *
-     * @param int $dist Padding-top for the div-section (should be margin-top but konqueror (3.1) doesn't like it :-(
-     * @return string HTML content
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public function spacer($dist)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        if ($dist > 0) {
-            return '
-
-       <!-- Spacer element -->
-       <div style="padding-top: ' . (int)$dist . 'px;"></div>
-';
-        }
-    }
-
-    /**
      * Make a section header.
      * Begins a section if not already open.
      *
@@ -1081,19 +858,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * If a form-tag is defined in ->form then and end-tag for that <form> element is outputted
-     * Further a JavaScript section is outputted which will update the top.busy session-expiry object (unless $this->endJS is set to FALSE)
-     *
-     * @return string HTML content (<script> tag section)
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, nothing there to output anymore
-     */
-    public function endPageJS()
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return '';
-    }
-
-    /**
      * Creates the bodyTag.
      * You can add to the bodyTag by $this->bodyTagAdditions
      *
@@ -1304,32 +1068,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Dimmed-fontwrap. Returns the string wrapped in a <span>-tag defining the color to be gray/dimmed
-     *
-     * @param string $string Input string
-     * @return string Output string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use proper HTML directly
-     */
-    public function dfw($string)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return '<span class="text-muted">' . $string . '</span>';
-    }
-
-    /**
-     * red-fontwrap. Returns the string wrapped in a <span>-tag defining the color to be red
-     *
-     * @param string $string Input string
-     * @return string Output string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use proper HTML directly
-     */
-    public function rfw($string)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return '<span class="text-danger">' . $string . '</span>';
-    }
-
-    /**
      * Returns string wrapped in CDATA "tags" for XML / XHTML (wrap content of <script> and <style> sections in those!)
      *
      * @param string $string Input string
@@ -1383,86 +1121,6 @@ function jumpToUrl(URL) {
     public $table_TABLE = '<table border="0" cellspacing="0" cellpadding="0" class="typo3-dblist" id="typo3-tmpltable">';
 
     /**
-     * Returns a table based on the input $data
-     *
-     * @param array $data Multidim array with first levels = rows, second levels = cells
-     * @param array $layout If set, then this provides an alternative layout array instead of $this->tableLayout
-     * @return string The HTML table.
-     * @internal
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public function table($data, $layout = null)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $result = '';
-        if (is_array($data)) {
-            $tableLayout = is_array($layout) ? $layout : $this->tableLayout;
-            $rowCount = 0;
-            foreach ($data as $tableRow) {
-                if ($rowCount % 2) {
-                    $layout = is_array($tableLayout['defRowOdd']) ? $tableLayout['defRowOdd'] : $tableLayout['defRow'];
-                } else {
-                    $layout = is_array($tableLayout['defRowEven']) ? $tableLayout['defRowEven'] : $tableLayout['defRow'];
-                }
-                $rowLayout = is_array($tableLayout[$rowCount]) ? $tableLayout[$rowCount] : $layout;
-                $rowResult = '';
-                if (is_array($tableRow)) {
-                    $cellCount = 0;
-                    foreach ($tableRow as $tableCell) {
-                        $cellWrap = is_array($layout[$cellCount]) ? $layout[$cellCount] : $layout['defCol'];
-                        $cellWrap = is_array($rowLayout['defCol']) ? $rowLayout['defCol'] : $cellWrap;
-                        $cellWrap = is_array($rowLayout[$cellCount]) ? $rowLayout[$cellCount] : $cellWrap;
-                        $rowResult .= $cellWrap[0] . $tableCell . $cellWrap[1];
-                        $cellCount++;
-                    }
-                }
-                $rowWrap = is_array($layout['tr']) ? $layout['tr'] : array($this->table_TR, '</tr>');
-                $rowWrap = is_array($rowLayout['tr']) ? $rowLayout['tr'] : $rowWrap;
-                $result .= $rowWrap[0] . $rowResult . $rowWrap[1];
-                $rowCount++;
-            }
-            $tableWrap = is_array($tableLayout['table']) ? $tableLayout['table'] : array($this->table_TABLE, '</table>');
-            $result = $tableWrap[0] . $result . $tableWrap[1];
-        }
-        return $result;
-    }
-
-    /**
-     * Constructs a table with content from the $arr1, $arr2 and $arr3.
-     *
-     * @param array $arr1 Menu elements on first level
-     * @param array $arr2 Secondary items
-     * @param array $arr3 Third-level items
-     * @return string HTML content, <table>...</table>
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public function menuTable($arr1, $arr2 = array(), $arr3 = array())
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $rows = max(array(count($arr1), count($arr2), count($arr3)));
-        $menu = '
-               <table border="0" cellpadding="0" cellspacing="0" id="typo3-tablemenu">';
-        for ($a = 0; $a < $rows; $a++) {
-            $menu .= '<tr>';
-            $cls = array();
-            $valign = 'middle';
-            $cls[] = '<td valign="' . $valign . '">' . $arr1[$a][0] . '</td><td>' . $arr1[$a][1] . '</td>';
-            if (!empty($arr2)) {
-                $cls[] = '<td valign="' . $valign . '">' . $arr2[$a][0] . '</td><td>' . $arr2[$a][1] . '</td>';
-                if (!empty($arr3)) {
-                    $cls[] = '<td valign="' . $valign . '">' . $arr3[$a][0] . '</td><td>' . $arr3[$a][1] . '</td>';
-                }
-            }
-            $menu .= implode($cls, '<td>&nbsp;&nbsp;</td>');
-            $menu .= '</tr>';
-        }
-        $menu .= '
-               </table>
-               ';
-        return $menu;
-    }
-
-    /**
      * 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
      *
@@ -1587,71 +1245,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Creates a DYNAMIC tab-menu where the tabs or collapseable are rendered with bootstrap markup
-     *
-     * @param array $menuItems Numeric array where each entry is an array in itself with associative keys: "label" contains the label for the TAB, "content" contains the HTML content that goes into the div-layer of the tabs content. "description" contains description text to be shown in the layer. "linkTitle" is short text for the title attribute of the tab-menu link (mouse-over text of tab). "stateIcon" indicates a standard status icon (see ->icon(), values: -1, 1, 2, 3). "icon" is an image tag placed before the text.
-     * @param string $identString Identification string. This should be unique for every instance of a dynamic menu!
-     * @param int $defaultTabIndex Default tab to open (for toggle <=0). Value corresponds to integer-array index + 1 (index zero is "1", index "1" is 2 etc.). A value of zero (or something non-existing) will result in no default tab open.
-     * @param bool $collapseable If set, the tabs are rendered as headers instead over each sheet. Effectively this means there is no tab menu, but rather a foldout/foldin menu.
-     * @param bool $wrapContent If set, the content is wrapped in div structure which provides a padding and border style. Set this FALSE to get unstyled content pane with fullsize content area.
-     * @param bool $storeLastActiveTab If set, the last open tab is stored in local storage and will be re-open again. If you don't need this feature, e.g. for wizards like import/export you can disable this behaviour.
-     * @return string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. Use getDynamicTabMenu() from ModuleTemplate instead.
-     */
-    public function getDynamicTabMenu(array $menuItems, $identString, $defaultTabIndex = 1, $collapseable = false, $wrapContent = true, $storeLastActiveTab = true)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Tabs');
-        $templatePathAndFileName = 'EXT:backend/Resources/Private/Templates/DocumentTemplate/' . ($collapseable ? 'Collapse.html' : 'Tabs.html');
-        $view = GeneralUtility::makeInstance(StandaloneView::class);
-        $view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName($templatePathAndFileName));
-        $view->assignMultiple(array(
-            'id' => 'DTM-' . GeneralUtility::shortMD5($identString),
-            'items' => $menuItems,
-            'defaultTabIndex' => $defaultTabIndex,
-            'wrapContent' => $wrapContent,
-            'storeLastActiveTab' => $storeLastActiveTab,
-            'BACK_PATH' => $GLOBALS['BACK_PATH']
-        ));
-        return $view->render();
-    }
-
-    /**
-     * Creates a DYNAMIC tab-menu where the tabs are switched between with DHTML.
-     * Should work in MSIE, Mozilla, Opera and Konqueror. On Konqueror I did find a serious problem: <textarea> fields loose their content when you switch tabs!
-     *
-     * @param array $menuItems Numeric array where each entry is an array in itself with associative keys: "label" contains the label for the TAB, "content" contains the HTML content that goes into the div-layer of the tabs content. "description" contains description text to be shown in the layer. "linkTitle" is short text for the title attribute of the tab-menu link (mouse-over text of tab). "stateIcon" indicates a standard status icon (see ->icon(), values: -1, 1, 2, 3). "icon" is an image tag placed before the text.
-     * @param string $identString Identification string. This should be unique for every instance of a dynamic menu!
-     * @param int $toggle If "1", then enabling one tab does not hide the others - they simply toggles each sheet on/off. This makes most sense together with the $foldout option. If "-1" then it acts normally where only one tab can be active at a time BUT you can click a tab and it will close so you have no active tabs.
-     * @param bool $foldout If set, the tabs are rendered as headers instead over each sheet. Effectively this means there is no tab menu, but rather a foldout/foldin menu. Make sure to set $toggle as well for this option.
-     * @param bool $noWrap Deprecated - delivered by CSS
-     * @param bool $fullWidth If set, the tabs will span the full width of their position
-     * @param int $defaultTabIndex Default tab to open (for toggle <=0). Value corresponds to integer-array index + 1 (index zero is "1", index "1" is 2 etc.). A value of zero (or something non-existing) will result in no default tab open.
-     * @param int $tabBehaviour If set to '1' empty tabs will be remove, If set to '2' empty tabs will be disabled. setting this option to '2' is deprecated since TYPO3 CMS 7, and will be removed iwth CMS 8
-     * @return string JavaScript section for the HTML header.
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public function getDynTabMenu($menuItems, $identString, $toggle = 0, $foldout = false, $noWrap = true, $fullWidth = false, $defaultTabIndex = 1, $tabBehaviour = 1)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        return $this->getDynamicTabMenu($menuItems, $identString, $defaultTabIndex, $foldout, $noWrap);
-    }
-
-    /**
-     * Creates the id for dynTabMenus.
-     *
-     * @param string $identString Identification string. This should be unique for every instance of a dynamic menu!
-     * @return string The id with a short MD5 of $identString and prefixed "DTM-", like "DTM-2e8791854a
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-     */
-    public function getDynTabMenuId($identString)
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $id = 'DTM-' . GeneralUtility::shortMD5($identString);
-        return $id;
-    }
-
-    /**
      * Creates the version selector for the page id inputted.
      * Requires the core version management extension, "version" to be loaded.
      *
@@ -1922,71 +1515,6 @@ function jumpToUrl(URL) {
     }
 
     /**
-     * Makes a collapseable section. See reports module for an example
-     *
-     * @param string $title
-     * @param string $html
-     * @param string $id
-     * @param string $saveStatePointer
-     * @return string
-     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8. Use HTML bootstrap classes, localStorage etc.
-     */
-    public function collapseableSection($title, $html, $id, $saveStatePointer = '')
-    {
-        GeneralUtility::logDeprecatedFunction();
-        $hasSave = (bool)$saveStatePointer;
-        $collapsedStyle = ($collapsedClass = '');
-        if ($hasSave) {
-            /** @var $userSettingsController \TYPO3\CMS\Backend\Controller\UserSettingsController */
-            $userSettingsController = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Controller\UserSettingsController::class);
-            $value = $userSettingsController->process('get', $saveStatePointer . '.' . $id);
-            if ($value) {
-                $collapsedStyle = ' style="display: none"';
-                $collapsedClass = ' collapsed';
-            } else {
-                $collapsedStyle = '';
-                $collapsedClass = ' expanded';
-            }
-        }
-        $this->pageRenderer->loadExtJS();
-        $this->pageRenderer->addExtOnReadyCode('
-                       Ext.select("h2.section-header").each(function(element){
-                               element.on("click", function(event, tag) {
-                                       var state = 0,
-                                               el = Ext.fly(tag),
-                                               div = el.next("div"),
-                                               saveKey = el.getAttribute("rel");
-                                       if (el.hasClass("collapsed")) {
-                                               el.removeClass("collapsed").addClass("expanded");
-                                               div.slideIn("t", {
-                                                       easing: "easeIn",
-                                                       duration: .5
-                                               });
-                                       } else {
-                                               el.removeClass("expanded").addClass("collapsed");
-                                               div.slideOut("t", {
-                                                       easing: "easeOut",
-                                                       duration: .5,
-                                                       remove: false,
-                                                       useDisplay: true
-                                               });
-                                               state = 1;
-                                       }
-                                       if (saveKey) {
-                                               try {
-                                                       top.TYPO3.Storage.Persistent.set(saveKey + "." + tag.id, state);
-                                               } catch(e) {}
-                                       }
-                               });
-                       });
-               ');
-        return '
-                 <h2 id="' . $id . '" class="section-header' . $collapsedClass . '" rel="' . $saveStatePointer . '"> ' . $title . '</h2>
-                 <div' . $collapsedStyle . '>' . $html . '</div>
-               ';
-    }
-
-    /**
     * Retrieves configured favicon for backend (with fallback)
     *
     * @return string