[TASK] Cleanup CSH calls
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / Controller / FileSystemNavigationFrameController.php
index a8484f8..6c0c9dd 100644 (file)
@@ -1,31 +1,18 @@
 <?php
 namespace TYPO3\CMS\Backend\Controller;
 
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 1999-2013 Kasper Skårhøj (kasperYYYY@typo3.com)
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
+/**
+ * This file is part of the TYPO3 CMS project.
  *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
 
 use TYPO3\CMS\Backend\Utility\IconUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -40,13 +27,12 @@ class FileSystemNavigationFrameController {
        // Internal, dynamic:
        // Content accumulates in this variable.
        /**
-        * @todo Define visibility
+        * @var string
         */
        public $content;
 
        /**
         * @var \TYPO3\CMS\Filelist\FileListFolderTree $foldertree the folder tree object
-        * @todo Define visibility
         */
        public $foldertree;
 
@@ -54,43 +40,72 @@ class FileSystemNavigationFrameController {
         * document template object
         *
         * @var \TYPO3\CMS\Backend\Template\DocumentTemplate
-        * @todo Define visibility
         */
        public $doc;
 
        /**
-        * @todo Define visibility
+        * @var string
         */
        public $backPath;
 
        // Internal, static: GPvar:
        /**
-        * @todo Define visibility
+        * @var string
         */
        public $currentSubScript;
 
        /**
-        * @todo Define visibility
+        * @var bool
         */
        public $cMR;
 
        /**
+        * @var array
+        */
+       protected $scopeData;
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               $GLOBALS['SOBE'] = $this;
+               $GLOBALS['BACK_PATH'] = '';
+               $this->init();
+       }
+
+       /**
         * Initialiation of the script class
         *
-        * @return      void
-        * @todo Define visibility
+        * @return void
         */
-       public function init() {
+       protected function init() {
                // Setting backPath
                $this->backPath = $GLOBALS['BACK_PATH'];
                // Setting GPvars:
                $this->currentSubScript = GeneralUtility::_GP('currentSubScript');
                $this->cMR = GeneralUtility::_GP('cMR');
+
+               $scopeData = (string)GeneralUtility::_GP('scopeData');
+               $scopeHash = (string)GeneralUtility::_GP('scopeHash');
+
+               if (!empty($scopeData) && GeneralUtility::hmac($scopeData) === $scopeHash) {
+                       $this->scopeData = unserialize($scopeData);
+               }
+
                // Create folder tree object:
-               /** @var $foldertree \TYPO3\CMS\Filelist\FileListFolderTree */
-               $this->foldertree = GeneralUtility::makeInstance('TYPO3\\CMS\\Filelist\\FileListFolderTree');
+               if (!empty($this->scopeData)) {
+                       $this->foldertree = GeneralUtility::makeInstance($this->scopeData['class']);
+                       $this->foldertree->thisScript = $this->scopeData['script'];
+                       $this->foldertree->ext_noTempRecyclerDirs = $this->scopeData['ext_noTempRecyclerDirs'];
+                       $GLOBALS['SOBE']->browser = new \stdClass();
+                       $GLOBALS['SOBE']->browser->mode = $this->scopeData['browser']['mode'];
+                       $GLOBALS['SOBE']->browser->act = $this->scopeData['browser']['act'];
+               } else {
+                       $this->foldertree = GeneralUtility::makeInstance(\TYPO3\CMS\Filelist\FileListFolderTree::class);
+                       $this->foldertree->thisScript = 'alt_file_navframe.php';
+               }
+
                $this->foldertree->ext_IconMode = $GLOBALS['BE_USER']->getTSConfigVal('options.folderTree.disableIconLinkToContextmenu');
-               $this->foldertree->thisScript = 'alt_file_navframe.php';
        }
 
        /**
@@ -103,7 +118,7 @@ class FileSystemNavigationFrameController {
                // Setting highlight mode:
                $this->doHighlight = !$GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.disableTitleHighlight');
                // Create template object:
-               $this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
+               $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
                $this->doc->backPath = $GLOBALS['BACK_PATH'];
                $this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/alt_file_navframe.html');
                $this->doc->showFlashMessages = FALSE;
@@ -128,7 +143,7 @@ class FileSystemNavigationFrameController {
                        top.TYPO3.Backend.ContentContainer.setUrl(theUrl);
 
                        ' . ($this->doHighlight ? 'Tree.highlightActiveItem("file", highlightID + "_" + bank);' : '') . '
-                       ' . (!$GLOBALS['CLIENT']['FORMSTYLE'] ? '' : 'if (linkObj) linkObj.blur(); ') . '
+                       if (linkObj) { linkObj.blur(); }
                        return false;
                }
                ' . ($this->cMR ? ' jumpTo(top.fsMod.recentIds[\'file\'],\'\');' : ''));
@@ -138,7 +153,6 @@ class FileSystemNavigationFrameController {
         * Main function, rendering the folder tree
         *
         * @return void
-        * @todo Define visibility
         */
        public function main() {
                // Produce browse-tree:
@@ -169,7 +183,6 @@ class FileSystemNavigationFrameController {
         * Outputting the accumulated content to screen
         *
         * @return void
-        * @todo Define visibility
         */
        public function printContent() {
                echo $this->content;
@@ -188,7 +201,7 @@ class FileSystemNavigationFrameController {
                // Refresh
                $buttons['refresh'] = '<a href="' . htmlspecialchars(GeneralUtility::getIndpEnv('REQUEST_URI')) . '">' . IconUtility::getSpriteIcon('actions-system-refresh') . '</a>';
                // CSH
-               $buttons['csh'] = str_replace('typo3-csh-inline', 'typo3-csh-inline show-right', \TYPO3\CMS\Backend\Utility\BackendUtility::cshItem('xMOD_csh_corebe', 'filetree', $GLOBALS['BACK_PATH']));
+               $buttons['csh'] = str_replace('typo3-csh-inline', 'typo3-csh-inline show-right', \TYPO3\CMS\Backend\Utility\BackendUtility::cshItem('xMOD_csh_corebe', 'filetree'));
                return $buttons;
        }
 
@@ -216,5 +229,3 @@ class FileSystemNavigationFrameController {
        }
 
 }
-
-?>
\ No newline at end of file