[CLEANUP] ImportExportController code style 11/29411/4
authorMarkus Klein <klein.t3@mfc-linz.at>
Tue, 12 Nov 2013 00:26:56 +0000 (01:26 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sun, 13 Apr 2014 09:22:04 +0000 (11:22 +0200)
Introduce getters for global objects

Resolves: #57855
Releases: 6.2
Change-Id: I08d37c8934a4b89ef92d31d96073c293a89f04e1
Reviewed-on: https://review.typo3.org/29411
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Oliver Klee
Reviewed-by: Stefan Neufeind
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
typo3/sysext/impexp/Classes/Controller/ImportExportController.php

index 985eefb..6bfd9a3 100644 (file)
@@ -27,8 +27,13 @@ namespace TYPO3\CMS\Impexp\Controller;
  *  This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
 
+use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Database\DatabaseConnection;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Core\Utility\MathUtility;
+use TYPO3\CMS\Core\Utility\PathUtility;
+use TYPO3\CMS\Lang\LanguageService;
 
 /**
  * Main script class for the Import / Export facility
@@ -55,13 +60,42 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
        protected $import;
 
        /**
+        * @var \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility
+        */
+       protected $fileProcessor;
+
+       /**
+        * @var string
+        */
+       protected $vC = '';
+
+       /**
+        * @var LanguageService
+        */
+       protected $lang = NULL;
+
+       /**
+        * @var string
+        */
+       protected $treeHTML = '';
+
+       /**
+        * @return void
+        */
+       public function init() {
+               parent::init();
+               $this->vC = GeneralUtility::_GP('vC');
+               $this->lang = $this->getLanguageService();
+       }
+
+       /**
         * Main module function
         *
         * @return void
         * @todo Define visibility
         */
        public function main() {
-               $GLOBALS['LANG']->includeLLFile('EXT:impexp/app/locallang.xlf');
+               $this->lang->includeLLFile('EXT:impexp/app/locallang.xlf');
                // Start document template object:
                $this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
                $this->doc->backPath = $GLOBALS['BACK_PATH'];
@@ -71,8 +105,9 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                // Setting up the context sensitive menu:
                $this->doc->getContextMenuCode();
                $this->doc->postCode = $this->doc->wrapScriptTags('if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int)$this->id . ';');
-               $this->doc->form = '<form action="' . htmlspecialchars($GLOBALS['MCONF']['_']) . '" method="post" enctype="' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '"><input type="hidden" name="id" value="' . $this->id . '" />';
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('title'));
+               $this->doc->form = '<form action="' . htmlspecialchars($GLOBALS['MCONF']['_']) . '" method="post" enctype="'
+                       . $GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'] . '"><input type="hidden" name="id" value="' . $this->id . '" />';
+               $this->content .= $this->doc->header($this->lang->getLL('title'));
                $this->content .= $this->doc->spacer(5);
                // Input data grabbed:
                $inData = GeneralUtility::_GP('tx_impexp');
@@ -103,7 +138,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                $docHeaderButtons = $this->getButtons();
                $markers['CONTENT'] = $this->content;
                // Build the <body> for the module
-               $this->content = $this->doc->startPage($GLOBALS['LANG']->getLL('title'));
+               $this->content = $this->doc->startPage($this->lang->getLL('title'));
                $this->content .= $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
                $this->content .= $this->doc->endPage();
                $this->content = $this->doc->insertStylesAndJS($this->content);
@@ -129,16 +164,23 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        'view' => '',
                        'shortcut' => ''
                );
-               if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
+               if ($this->getBackendUser()->mayMakeShortcut()) {
                        $buttons['shortcut'] = $this->doc->makeShortcutIcon('tx_impexp', '', $this->MCONF['name']);
                }
                // Input data grabbed:
                $inData = GeneralUtility::_GP('tx_impexp');
                if ((string) $inData['action'] == 'import') {
-                       if ($this->id && is_array($this->pageinfo) || $GLOBALS['BE_USER']->user['admin'] && !$this->id) {
+                       if ($this->id && is_array($this->pageinfo) || $this->getBackendUser()->user['admin'] && !$this->id) {
                                if (is_array($this->pageinfo) && $this->pageinfo['uid']) {
                                        // View
-                                       $buttons['view'] = '<a href="#" onclick="' . htmlspecialchars(BackendUtility::viewOnClick($this->pageinfo['uid'], $this->doc->backPath, BackendUtility::BEgetRootLine($this->pageinfo['uid']))) . '" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.showPage', TRUE) . '">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-view') . '</a>';
+                                       $onClick = BackendUtility::viewOnClick(
+                                               $this->pageinfo['uid'],
+                                               $this->doc->backPath,
+                                               BackendUtility::BEgetRootLine($this->pageinfo['uid'])
+                                       );
+                                       $title = $this->lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.showPage', TRUE);
+                                       $buttons['view'] = '<a href="#" onclick="' . htmlspecialchars($onClick) . '" title="' . $title . '">'
+                                               . IconUtility::getSpriteIcon('actions-document-view') . '</a>';
                                }
                        }
                }
@@ -159,9 +201,9 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
        public function exportData($inData) {
                // BUILDING EXPORT DATA:
                // Processing of InData array values:
-               $inData['pagetree']['maxNumber'] = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($inData['pagetree']['maxNumber'], 1, 10000, 100);
-               $inData['listCfg']['maxNumber'] = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($inData['listCfg']['maxNumber'], 1, 10000, 100);
-               $inData['maxFileSize'] = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($inData['maxFileSize'], 1, 10000, 1000);
+               $inData['pagetree']['maxNumber'] = MathUtility::forceIntegerInRange($inData['pagetree']['maxNumber'], 1, 10000, 100);
+               $inData['listCfg']['maxNumber'] = MathUtility::forceIntegerInRange($inData['listCfg']['maxNumber'], 1, 10000, 100);
+               $inData['maxFileSize'] = MathUtility::forceIntegerInRange($inData['maxFileSize'], 1, 10000, 1000);
                $inData['filename'] = trim(preg_replace('/[^[:alnum:]._-]*/', '', preg_replace('/\\.(t3d|xml)$/', '', $inData['filename'])));
                if (strlen($inData['filename'])) {
                        $inData['filename'] .= $inData['filetype'] == 'xml' ? '.xml' : '.t3d';
@@ -175,7 +217,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                // Create export object and configure it:
                $this->export = GeneralUtility::makeInstance('TYPO3\\CMS\\Impexp\\ImportExport');
                $this->export->init(0, 'export');
-               $this->export->setCharset($GLOBALS['LANG']->charSet);
+               $this->export->setCharset($this->lang->charSet);
                $this->export->maxFileSize = $inData['maxFileSize'] * 1024;
                $this->export->excludeMap = (array) $inData['exclude'];
                $this->export->softrefCfg = (array) $inData['softrefCfg'];
@@ -192,7 +234,16 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                }
                $this->export->setHeaderBasics();
                // Meta data setting:
-               $this->export->setMetaData($inData['meta']['title'], $inData['meta']['description'], $inData['meta']['notes'], $GLOBALS['BE_USER']->user['username'], $GLOBALS['BE_USER']->user['realName'], $GLOBALS['BE_USER']->user['email']);
+
+               $beUser = $this->getBackendUser();
+               $this->export->setMetaData(
+                       $inData['meta']['title'],
+                       $inData['meta']['description'],
+                       $inData['meta']['notes'],
+                       $beUser->user['username'],
+                       $beUser->user['realName'],
+                       $beUser->user['email']
+               );
                if ($inData['meta']['thumbnail']) {
                        $tempDir = $this->userTempFolder();
                        if ($tempDir) {
@@ -212,19 +263,22 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                }
                // Configure which tables to export
                if (is_array($inData['list'])) {
+                       $db = $this->getDatabaseConnection();
                        foreach ($inData['list'] as $ref) {
                                $rParts = explode(':', $ref);
-                               if ($GLOBALS['BE_USER']->check('tables_select', $rParts[0])) {
-                                       $res = $this->exec_listQueryPid($rParts[0], $rParts[1], \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($inData['listCfg']['maxNumber'], 1));
-                                       while ($subTrow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
+                               if ($beUser->check('tables_select', $rParts[0])) {
+                                       $res = $this->exec_listQueryPid($rParts[0], $rParts[1], MathUtility::forceIntegerInRange($inData['listCfg']['maxNumber'], 1));
+                                       while ($subTrow = $db->sql_fetch_assoc($res)) {
                                                $this->export->export_addRecord($rParts[0], $subTrow);
                                        }
+                                       $db->sql_free_result($res);
                                }
                        }
                }
                // Pagetree
                if (isset($inData['pagetree']['id'])) {
                        // Based on click-expandable tree
+                       $idH = NULL;
                        if ($inData['pagetree']['levels'] == -1) {
                                $pagetree = GeneralUtility::makeInstance('TYPO3\\CMS\\Impexp\\LocalPageTree');
                                $tree = $pagetree->ext_tree($inData['pagetree']['id'], $this->filterPageIds($this->export->excludeMap));
@@ -236,7 +290,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                // Based on depth
                                // Drawing tree:
                                // If the ID is zero, export root
-                               if (!$inData['pagetree']['id'] && $GLOBALS['BE_USER']->isAdmin()) {
+                               if (!$inData['pagetree']['id'] && $beUser->isAdmin()) {
                                        $sPage = array(
                                                'uid' => 0,
                                                'title' => 'ROOT'
@@ -248,7 +302,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                        $pid = $inData['pagetree']['id'];
                                        $tree = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Tree\\View\\PageTreeView');
                                        $tree->init('AND ' . $this->perms_clause . $this->filterPageIds($this->export->excludeMap));
-                                       $HTML = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', $sPage);
+                                       $HTML = IconUtility::getSpriteIconForRecord('pages', $sPage);
                                        $tree->tree[] = array('row' => $sPage, 'HTML' => $HTML);
                                        $tree->buffer_idH = array();
                                        if ($inData['pagetree']['levels'] > 0) {
@@ -263,7 +317,8 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                        $this->treeHTML = $pagetree->printTree($tree->tree);
                                }
                        }
-                       // In any case we should have a multi-level array, $idH, with the page structure here (and the HTML-code loaded into memory for nice display...)
+                       // In any case we should have a multi-level array, $idH, with the page structure
+                       // here (and the HTML-code loaded into memory for nice display...)
                        if (is_array($idH)) {
                                // Sets the pagetree and gets a 1-dim array in return with the pages (in correct submission order BTW...)
                                $flatList = $this->export->setPageTree($idH);
@@ -295,12 +350,18 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                        break;
                                case 't3d':
                                        $this->export->dontCompress = 1;
+                                       // intentional fall-through
                                default:
                                        $out = $this->export->compileMemoryToFileContent();
                                        $fExt = ($this->export->doOutputCompress() ? '-z' : '') . '.t3d';
                        }
                        // Filename:
-                       $dlFile = $inData['filename'] ?: 'T3D_' . substr(preg_replace('/[^[:alnum:]_]/', '-', $inData['download_export_name']), 0, 20) . '_' . date('Y-m-d_H-i') . $fExt;
+                       $dlFile = $inData['filename'];
+                       if (!$dlFile) {
+                               $exportName = substr(preg_replace('/[^[:alnum:]_]/', '-', $inData['download_export_name']), 0, 20);
+                               $dlFile = 'T3D_' . $exportName . '_' . date('Y-m-d_H-i') . $fExt;
+                       }
+
                        // Export for download:
                        if ($inData['download_export']) {
                                $mimeType = 'application/octet-stream';
@@ -314,11 +375,21 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        if ($inData['save_export']) {
                                $savePath = $this->userSaveFolder();
                                $fullName = $savePath . $dlFile;
-                               if (GeneralUtility::isAllowedAbsPath($savePath) && @is_dir(dirname($fullName)) && GeneralUtility::isAllowedAbsPath($fullName)) {
+                               if (
+                                       GeneralUtility::isAllowedAbsPath($savePath)
+                                       && @is_dir(dirname($fullName))
+                                       && GeneralUtility::isAllowedAbsPath($fullName)
+                               ) {
                                        GeneralUtility::writeFile($fullName, $out);
-                                       $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('exportdata_savedFile'), sprintf($GLOBALS['LANG']->getLL('exportdata_savedInSBytes', TRUE), \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($savePath . $dlFile), GeneralUtility::formatSize(strlen($out))), 0, 1);
+                                       $filePath = sprintf(
+                                               $this->lang->getLL('exportdata_savedInSBytes', TRUE),
+                                               PathUtility::stripPathSitePrefix($savePath . $dlFile),
+                                               GeneralUtility::formatSize(strlen($out))
+                                       );
+                                       $this->content .= $this->doc->section($this->lang->getLL('exportdata_savedFile'), $filePath, 0, 1);
                                } else {
-                                       $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('exportdata_problemsSavingFile'), sprintf($GLOBALS['LANG']->getLL('exportdata_badPathS', TRUE), $fullName), 0, 1, 2);
+                                       $badPath = sprintf($this->lang->getLL('exportdata_badPathS', TRUE), $fullName);
+                                       $this->content .= $this->doc->section($this->lang->getLL('exportdata_problemsSavingFile'), $badPath, 0, 1, 2);
                                }
                        }
                }
@@ -329,7 +400,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                $row = array();
                $this->makeConfigurationForm($inData, $row);
                $menuItems[] = array(
-                       'label' => $GLOBALS['LANG']->getLL('tableselec_configuration'),
+                       'label' => $this->lang->getLL('tableselec_configuration'),
                        'content' => '
                                <table border="0" cellpadding="1" cellspacing="1">
                                        ' . implode('
@@ -341,7 +412,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                $row = array();
                $this->makeSaveForm($inData, $row);
                $menuItems[] = array(
-                       'label' => $GLOBALS['LANG']->getLL('exportdata_filePreset'),
+                       'label' => $this->lang->getLL('exportdata_filePreset'),
                        'content' => '
                                <table border="0" cellpadding="1" cellspacing="1">
                                        ' . implode('
@@ -353,7 +424,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                $row = array();
                $this->makeAdvancedOptionsForm($inData, $row);
                $menuItems[] = array(
-                       'label' => $GLOBALS['LANG']->getLL('exportdata_advancedOptions'),
+                       'label' => $this->lang->getLL('exportdata_advancedOptions'),
                        'content' => '
                                <table border="0" cellpadding="1" cellspacing="1">
                                        ' . implode('
@@ -366,7 +437,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                // Print errors that might be:
                $errors = $this->export->printErrorLog();
                $menuItems[] = array(
-                       'label' => $GLOBALS['LANG']->getLL('exportdata_messages'),
+                       'label' => $this->lang->getLL('exportdata_messages'),
                        'content' => $errors,
                        'stateIcon' => $errors ? 2 : 0
                );
@@ -375,7 +446,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                $content .= '<input type="hidden" name="tx_impexp[action]" value="export" />';
                $this->content .= $this->doc->section('', $content, 0, 1);
                // Output Overview:
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('execlistqu_structureToBeExported'), $overViewContent, 0, 1);
+               $this->content .= $this->doc->section($this->lang->getLL('execlistqu_structureToBeExported'), $overViewContent, 0, 1);
        }
 
        /**
@@ -388,15 +459,18 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @todo Define visibility
         */
        public function addRecordsForPid($k, $tables, $maxNumber) {
-               if (is_array($tables)) {
-                       foreach ($GLOBALS['TCA'] as $table => $value) {
-                               if ($table != 'pages' && (in_array($table, $tables) || in_array('_ALL', $tables))) {
-                                       if ($GLOBALS['BE_USER']->check('tables_select', $table) && !$GLOBALS['TCA'][$table]['ctrl']['is_static']) {
-                                               $res = $this->exec_listQueryPid($table, $k, \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($maxNumber, 1));
-                                               while ($subTrow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
-                                                       $this->export->export_addRecord($table, $subTrow);
-                                               }
+               if (!is_array($tables)) {
+                       return;
+               }
+               $db = $this->getDatabaseConnection();
+               foreach ($GLOBALS['TCA'] as $table => $value) {
+                       if ($table != 'pages' && (in_array($table, $tables) || in_array('_ALL', $tables))) {
+                               if ($this->getBackendUser()->check('tables_select', $table) && !$GLOBALS['TCA'][$table]['ctrl']['is_static']) {
+                                       $res = $this->exec_listQueryPid($table, $k, MathUtility::forceIntegerInRange($maxNumber, 1));
+                                       while ($subTrow = $db->sql_fetch_assoc($res)) {
+                                               $this->export->export_addRecord($table, $subTrow);
                                        }
+                                       $db->sql_free_result($res);
                                }
                        }
                }
@@ -408,22 +482,26 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @param string $table Table to select from
         * @param integer $pid Page ID to select from
         * @param integer $limit Max number of records to select
-        * @return pointer SQL resource pointer
+        * @return \mysqli_result|object Database resource
         * @todo Define visibility
         */
        public function exec_listQueryPid($table, $pid, $limit) {
-               $orderBy = $GLOBALS['TCA'][$table]['ctrl']['sortby'] ? 'ORDER BY ' . $GLOBALS['TCA'][$table]['ctrl']['sortby'] : $GLOBALS['TCA'][$table]['ctrl']['default_sortby'];
-               $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
+               $db = $this->getDatabaseConnection();
+               $orderBy = $GLOBALS['TCA'][$table]['ctrl']['sortby']
+                       ? 'ORDER BY ' . $GLOBALS['TCA'][$table]['ctrl']['sortby']
+                       : $GLOBALS['TCA'][$table]['ctrl']['default_sortby'];
+               $res = $db->exec_SELECTquery(
                        '*',
                        $table,
                        'pid=' . (int)$pid . BackendUtility::deleteClause($table) . BackendUtility::versioningPlaceholderClause($table),
                        '',
-                       $GLOBALS['TYPO3_DB']->stripOrderBy($orderBy),
+                       $db->stripOrderBy($orderBy),
                        $limit
                );
                // Warning about hitting limit:
-               if ($GLOBALS['TYPO3_DB']->sql_num_rows($res) == $limit) {
-                       $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('execlistqu_maxNumberLimit'), sprintf($GLOBALS['LANG']->getLL('makeconfig_anSqlQueryReturned', TRUE), $limit), 0, 1, 2);
+               if ($db->sql_num_rows($res) == $limit) {
+                       $limitWarning = sprintf($this->lang->getLL('makeconfig_anSqlQueryReturned', TRUE), $limit);
+                       $this->content .= $this->doc->section($this->lang->getLL('execlistqu_maxNumberLimit'), $limitWarning, 0, 1, 2);
                }
                return $res;
        }
@@ -432,51 +510,56 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * Create configuration form
         *
         * @param array $inData Form configurat data
-        * @param array  Table row accumulation variable. This is filled with table rows.
+        * @param array $row Table row accumulation variable. This is filled with table rows.
         * @return void Sets content in $this->content
         * @todo Define visibility
         */
        public function makeConfigurationForm($inData, &$row) {
-               global $LANG;
                $nameSuggestion = '';
                // Page tree export options:
                if (isset($inData['pagetree']['id'])) {
                        $nameSuggestion .= 'tree_PID' . $inData['pagetree']['id'] . '_L' . $inData['pagetree']['levels'];
                        $row[] = '
                                <tr class="tableheader bgColor5">
-                                       <td colspan="2">' . $LANG->getLL('makeconfig_exportPagetreeConfiguration', TRUE) . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeCfg', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td colspan="2">' . $this->lang->getLL('makeconfig_exportPagetreeConfiguration', TRUE)
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeCfg', $GLOBALS['BACK_PATH'], '') . '</td>
                                </tr>';
                        $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_pageId', TRUE) . '</strong></td>
-                                       <td>' . htmlspecialchars($inData['pagetree']['id']) . '<input type="hidden" value="' . htmlspecialchars($inData['pagetree']['id']) . '" name="tx_impexp[pagetree][id]" /></td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_pageId', TRUE) . '</strong></td>
+                                       <td>' . htmlspecialchars($inData['pagetree']['id']) . '<input type="hidden" value="'
+                                               . htmlspecialchars($inData['pagetree']['id']) . '" name="tx_impexp[pagetree][id]" /></td>
                                </tr>';
                        $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_tree', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeDisplay', $GLOBALS['BACK_PATH'], '') . '</td>
-                                       <td>' . ($this->treeHTML ? $this->treeHTML : $LANG->getLL('makeconfig_noTreeExportedOnly', TRUE)) . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_tree', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeDisplay', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td>' . ($this->treeHTML ?: $this->lang->getLL('makeconfig_noTreeExportedOnly', TRUE)) . '</td>
                                </tr>';
                        $opt = array(
-                               '-2' => $LANG->getLL('makeconfig_tablesOnThisPage'),
-                               '-1' => $LANG->getLL('makeconfig_expandedTree'),
-                               '0' => $LANG->getLL('makeconfig_onlyThisPage'),
-                               '1' => $LANG->getLL('makeconfig_1Level'),
-                               '2' => $LANG->getLL('makeconfig_2Levels'),
-                               '3' => $LANG->getLL('makeconfig_3Levels'),
-                               '4' => $LANG->getLL('makeconfig_4Levels'),
-                               '999' => $LANG->getLL('makeconfig_infinite')
+                               '-2' => $this->lang->getLL('makeconfig_tablesOnThisPage'),
+                               '-1' => $this->lang->getLL('makeconfig_expandedTree'),
+                               '0' => $this->lang->getLL('makeconfig_onlyThisPage'),
+                               '1' => $this->lang->getLL('makeconfig_1Level'),
+                               '2' => $this->lang->getLL('makeconfig_2Levels'),
+                               '3' => $this->lang->getLL('makeconfig_3Levels'),
+                               '4' => $this->lang->getLL('makeconfig_4Levels'),
+                               '999' => $this->lang->getLL('makeconfig_infinite')
                        );
                        $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_levels', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeMode', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_levels', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeMode', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $this->renderSelectBox('tx_impexp[pagetree][levels]', $inData['pagetree']['levels'], $opt) . '</td>
                                </tr>';
                        $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_includeTables', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeRecordLimit', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_includeTables', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'pageTreeRecordLimit', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $this->tableSelector('tx_impexp[pagetree][tables]', $inData['pagetree']['tables'], 'pages') . '<br/>
-                                               ' . $LANG->getLL('makeconfig_maxNumberOfRecords', TRUE) . '<br/>
-                                               <input type="text" name="tx_impexp[pagetree][maxNumber]" value="' . htmlspecialchars($inData['pagetree']['maxNumber']) . '"' . $this->doc->formWidth(10) . ' /><br/>
+                                               ' . $this->lang->getLL('makeconfig_maxNumberOfRecords', TRUE) . '<br/>
+                                               <input type="text" name="tx_impexp[pagetree][maxNumber]" value="'
+                                               . htmlspecialchars($inData['pagetree']['maxNumber']) . '"' . $this->doc->formWidth(10) . ' /><br/>
                                        </td>
                                </tr>';
                }
@@ -484,7 +567,8 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                if (is_array($inData['record'])) {
                        $row[] = '
                                <tr class="tableheader bgColor5">
-                                       <td colspan="2">' . $LANG->getLL('makeconfig_exportSingleRecord', TRUE) . BackendUtility::cshItem('xMOD_tx_impexp', 'singleRecord', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td colspan="2">' . $this->lang->getLL('makeconfig_exportSingleRecord', TRUE)
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'singleRecord', $GLOBALS['BACK_PATH'], '') . '</td>
                                </tr>';
                        foreach ($inData['record'] as $ref) {
                                $rParts = explode(':', $ref);
@@ -494,8 +578,9 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                $rec = BackendUtility::getRecordWSOL($tName, $rUid);
                                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_record', TRUE) . '</strong></td>
-                                       <td>' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord($tName, $rec) . BackendUtility::getRecordTitle($tName, $rec, TRUE) . '<input type="hidden" name="tx_impexp[record][]" value="' . htmlspecialchars(($tName . ':' . $rUid)) . '" /></td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_record', TRUE) . '</strong></td>
+                                       <td>' . IconUtility::getSpriteIconForRecord($tName, $rec) . BackendUtility::getRecordTitle($tName, $rec, TRUE)
+                                               . '<input type="hidden" name="tx_impexp[record][]" value="' . htmlspecialchars(($tName . ':' . $rUid)) . '" /></td>
                                </tr>';
                        }
                }
@@ -503,54 +588,63 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                if (is_array($inData['list'])) {
                        $row[] = '
                                <tr class="tableheader bgColor5">
-                                       <td colspan="2">' . $LANG->getLL('makeconfig_exportTablesFromPages', TRUE) . '</td>
+                                       <td colspan="2">' . $this->lang->getLL('makeconfig_exportTablesFromPages', TRUE) . '</td>
                                </tr>';
                        // Display information about pages from which the export takes place
                        $tblList = '';
                        foreach ($inData['list'] as $reference) {
                                $referenceParts = explode(':', $reference);
                                $tableName = $referenceParts[0];
-                               if ($GLOBALS['BE_USER']->check('tables_select', $tableName)) {
+                               if ($this->getBackendUser()->check('tables_select', $tableName)) {
                                        // If the page is actually the root, handle it differently
                                        // NOTE: we don't compare integers, because the number actually comes from the split string above
                                        if ($referenceParts[1] === '0') {
-                                               $iconAndTitle = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('apps-pagetree-root') . $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'];
+                                               $iconAndTitle = IconUtility::getSpriteIcon('apps-pagetree-root') . $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'];
                                        } else {
                                                $record = BackendUtility::getRecordWSOL('pages', $referenceParts[1]);
-                                               $iconAndTitle = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', $record) . BackendUtility::getRecordTitle('pages', $record, TRUE);
+                                               $iconAndTitle = IconUtility::getSpriteIconForRecord('pages', $record)
+                                                       . BackendUtility::getRecordTitle('pages', $record, TRUE);
                                        }
-                                       $tblList .= 'Table "' . $tableName . '" from ' . $iconAndTitle . '<input type="hidden" name="tx_impexp[list][]" value="' . htmlspecialchars($reference) . '" /><br/>';
+                                       $tblList .= 'Table "' . $tableName . '" from ' . $iconAndTitle
+                                               . '<input type="hidden" name="tx_impexp[list][]" value="' . htmlspecialchars($reference) . '" /><br/>';
                                }
                        }
                        $row[] = '
                        <tr class="bgColor4">
-                               <td><strong>' . $LANG->getLL('makeconfig_tablePids', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'tableList', $GLOBALS['BACK_PATH'], '') . '</td>
+                               <td><strong>' . $this->lang->getLL('makeconfig_tablePids', TRUE) . '</strong>'
+                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'tableList', $GLOBALS['BACK_PATH'], '') . '</td>
                                <td>' . $tblList . '</td>
                        </tr>';
                        $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_maxNumberOfRecords', TRUE) . BackendUtility::cshItem('xMOD_tx_impexp', 'tableListMaxNumber', $GLOBALS['BACK_PATH'], '') . '</strong></td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_maxNumberOfRecords', TRUE)
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'tableListMaxNumber', $GLOBALS['BACK_PATH'], '') . '</strong></td>
                                        <td>
-                                               <input type="text" name="tx_impexp[listCfg][maxNumber]" value="' . htmlspecialchars($inData['listCfg']['maxNumber']) . '"' . $this->doc->formWidth(10) . ' /><br/>
+                                               <input type="text" name="tx_impexp[listCfg][maxNumber]" value="'
+                                               . htmlspecialchars($inData['listCfg']['maxNumber']) . '"' . $this->doc->formWidth(10) . ' /><br/>
                                        </td>
                                </tr>';
                }
                $row[] = '
                        <tr class="tableheader bgColor5">
-                               <td colspan="2">' . $LANG->getLL('makeconfig_relationsAndExclusions', TRUE) . '</td>
+                               <td colspan="2">' . $this->lang->getLL('makeconfig_relationsAndExclusions', TRUE) . '</td>
                        </tr>';
                // Add relation selector:
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_includeRelationsToTables', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'inclRelations', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_includeRelationsToTables', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'inclRelations', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $this->tableSelector('tx_impexp[external_ref][tables]', $inData['external_ref']['tables']) . '</td>
                                </tr>';
                // Add static relation selector:
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_useStaticRelationsFor', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'staticRelations', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_useStaticRelationsFor', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'staticRelations', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $this->tableSelector('tx_impexp[external_static][tables]', $inData['external_static']['tables']) . '<br/>
-                                               <label for="checkShowStaticRelations">' . $LANG->getLL('makeconfig_showStaticRelations', TRUE) . '</label> <input type="checkbox" name="tx_impexp[showStaticRelations]" id="checkShowStaticRelations" value="1"' . ($inData['showStaticRelations'] ? ' checked="checked"' : '') . ' />
+                                               <label for="checkShowStaticRelations">' . $this->lang->getLL('makeconfig_showStaticRelations', TRUE)
+                                                       . '</label> <input type="checkbox" name="tx_impexp[showStaticRelations]" id="checkShowStaticRelations" value="1"'
+                                                       . ($inData['showStaticRelations'] ? ' checked="checked"' : '') . ' />
                                                </td>
                                </tr>';
                // Exclude:
@@ -560,11 +654,19 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                $excludeHiddenFields .= '<input type="hidden" name="tx_impexp[exclude][' . $key . ']" value="1" />';
                        }
                }
+               if (count($inData['exclude'])) {
+                       $excludedElements = '<em>' . implode(', ', array_keys($inData['exclude'])). '</em><hr/><label for="checkExclude">'
+                               . $this->lang->getLL('makeconfig_clearAllExclusions', TRUE)
+                               . '</label> <input type="checkbox" name="tx_impexp[exclude]" id="checkExclude" value="1" />';
+               } else {
+                       $excludedElements = $this->lang->getLL('makeconfig_noExcludedElementsYet', TRUE);
+               }
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeconfig_excludeElements', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'excludedElements', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeconfig_excludeElements', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'excludedElements', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $excludeHiddenFields . '
-                                       ' . (count($inData['exclude']) ? '<em>' . implode(', ', array_keys($inData['exclude'])) . '</em><hr/><label for="checkExclude">' . $LANG->getLL('makeconfig_clearAllExclusions', TRUE) . '</label> <input type="checkbox" name="tx_impexp[exclude]" id="checkExclude" value="1" />' : $LANG->getLL('makeconfig_noExcludedElementsYet', TRUE)) . '
+                                       ' . $excludedElements . '
                                        </td>
                                </tr>';
                // Add buttons:
@@ -572,7 +674,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                <tr class="bgColor4">
                                        <td>&nbsp;</td>
                                        <td>
-                                               <input type="submit" value="' . $LANG->getLL('makeadvanc_update', TRUE) . '" />
+                                               <input type="submit" value="' . $this->lang->getLL('makeadvanc_update', TRUE) . '" />
                                                <input type="hidden" name="tx_impexp[download_export_name]" value="' . substr($nameSuggestion, 0, 30) . '" />
                                        </td>
                                </tr>';
@@ -587,25 +689,28 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @todo Define visibility
         */
        public function makeAdvancedOptionsForm($inData, &$row) {
-               global $LANG;
                // Soft references
                $row[] = '
                        <tr class="tableheader bgColor5">
-                               <td colspan="2">' . $LANG->getLL('makeadvanc_softReferences', TRUE) . '</td>
+                               <td colspan="2">' . $this->lang->getLL('makeadvanc_softReferences', TRUE) . '</td>
                        </tr>';
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><label for="checkExcludeHTMLfileResources"><strong>' . $LANG->getLL('makeadvanc_excludeHtmlCssFile', TRUE) . '</strong></label>' . BackendUtility::cshItem('xMOD_tx_impexp', 'htmlCssResources', $GLOBALS['BACK_PATH'], '') . '</td>
-                                       <td><input type="checkbox" name="tx_impexp[excludeHTMLfileResources]" id="checkExcludeHTMLfileResources" value="1"' . ($inData['excludeHTMLfileResources'] ? ' checked="checked"' : '') . ' /></td>
+                                       <td><label for="checkExcludeHTMLfileResources"><strong>'
+                                               . $this->lang->getLL('makeadvanc_excludeHtmlCssFile', TRUE)     . '</strong></label>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'htmlCssResources', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><input type="checkbox" name="tx_impexp[excludeHTMLfileResources]" id="checkExcludeHTMLfileResources" value="1"'
+                                               . ($inData['excludeHTMLfileResources'] ? ' checked="checked"' : '') . ' /></td>
                                </tr>';
                // Extensions
                $row[] = '
                        <tr class="tableheader bgColor5">
-                               <td colspan="2">' . $LANG->getLL('makeadvanc_extensionDependencies', TRUE) . '</td>
+                               <td colspan="2">' . $this->lang->getLL('makeadvanc_extensionDependencies', TRUE) . '</td>
                        </tr>';
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makeadvanc_selectExtensionsThatThe', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'extensionDependencies', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makeadvanc_selectExtensionsThatThe', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'extensionDependencies', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $this->extensionSelector('tx_impexp[extension_dep]', $inData['extension_dep']) . '</td>
                                </tr>';
                // Add buttons:
@@ -613,8 +718,8 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                <tr class="bgColor4">
                                        <td>&nbsp;</td>
                                        <td>
-                                               <input type="submit" value="' . $LANG->getLL('makesavefo_update', TRUE) . '" />
-                                               <input type="hidden" name="tx_impexp[download_export_name]" value="' . substr($nameSuggestion, 0, 30) . '" />
+                                               <input type="submit" value="' . $this->lang->getLL('makesavefo_update', TRUE) . '" />
+                                               <input type="hidden" name="tx_impexp[download_export_name]" value="" />
                                        </td>
                                </tr>';
        }
@@ -628,41 +733,47 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @todo Define visibility
         */
        public function makeSaveForm($inData, &$row) {
-               global $LANG;
                // Presets:
                $row[] = '
                        <tr class="tableheader bgColor5">
-                               <td colspan="2">' . $LANG->getLL('makesavefo_presets', TRUE) . '</td>
+                               <td colspan="2">' . $this->lang->getLL('makesavefo_presets', TRUE) . '</td>
                        </tr>';
                $opt = array('');
-               $presets = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tx_impexp_presets', '(public>0 OR user_uid=' . (int)$GLOBALS['BE_USER']->user['uid'] . ')' . ($inData['pagetree']['id'] ? ' AND (item_uid=' . (int)$inData['pagetree']['id'] . ' OR item_uid=0)' : ''));
+               $where = '(public>0 OR user_uid=' . (int)$this->getBackendUser()->user['uid'] . ')'
+                       . ($inData['pagetree']['id'] ? ' AND (item_uid=' . (int)$inData['pagetree']['id'] . ' OR item_uid=0)' : '');
+               $presets = $this->getDatabaseConnection()->exec_SELECTgetRows('*', 'tx_impexp_presets', $where);
                if (is_array($presets)) {
                        foreach ($presets as $presetCfg) {
-                               $opt[$presetCfg['uid']] = $presetCfg['title'] . ' [' . $presetCfg['uid'] . ']' . ($presetCfg['public'] ? ' [Public]' : '') . ($presetCfg['user_uid'] === $GLOBALS['BE_USER']->user['uid'] ? ' [Own]' : '');
+                               $opt[$presetCfg['uid']] = $presetCfg['title'] . ' [' . $presetCfg['uid'] . ']'
+                                       . ($presetCfg['public'] ? ' [Public]' : '')
+                                       . ($presetCfg['user_uid'] === $this->getBackendUser()->user['uid'] ? ' [Own]' : '');
                        }
                }
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makesavefo_presets', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'presets', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makesavefo_presets', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'presets', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>
-                                               ' . $LANG->getLL('makesavefo_selectPreset', TRUE) . '<br/>
+                                               ' . $this->lang->getLL('makesavefo_selectPreset', TRUE) . '<br/>
                                                ' . $this->renderSelectBox('preset[select]', '', $opt) . '
                                                <br/>
-                                               <input type="submit" value="' . $LANG->getLL('makesavefo_load', TRUE) . '" name="preset[load]" />
-                                               <input type="submit" value="' . $LANG->getLL('makesavefo_save', TRUE) . '" name="preset[save]" onclick="return confirm(\'' . $LANG->getLL('makesavefo_areYouSure', TRUE) . '\');" />
-                                               <input type="submit" value="' . $LANG->getLL('makesavefo_delete', TRUE) . '" name="preset[delete]" onclick="return confirm(\'' . $LANG->getLL('makesavefo_areYouSure', TRUE) . '\');" />
-                                               <input type="submit" value="' . $LANG->getLL('makesavefo_merge', TRUE) . '" name="preset[merge]" onclick="return confirm(\'' . $LANG->getLL('makesavefo_areYouSure', TRUE) . '\');" />
+                                               <input type="submit" value="' . $this->lang->getLL('makesavefo_load', TRUE) . '" name="preset[load]" />
+                                               <input type="submit" value="' . $this->lang->getLL('makesavefo_save', TRUE) . '" name="preset[save]" onclick="return confirm(\'' . $this->lang->getLL('makesavefo_areYouSure', TRUE) . '\');" />
+                                               <input type="submit" value="' . $this->lang->getLL('makesavefo_delete', TRUE) . '" name="preset[delete]" onclick="return confirm(\'' . $this->lang->getLL('makesavefo_areYouSure', TRUE) . '\');" />
+                                               <input type="submit" value="' . $this->lang->getLL('makesavefo_merge', TRUE) . '" name="preset[merge]" onclick="return confirm(\'' . $this->lang->getLL('makesavefo_areYouSure', TRUE) . '\');" />
                                                <br/>
-                                               ' . $LANG->getLL('makesavefo_titleOfNewPreset', TRUE) . '
-                                               <input type="text" name="tx_impexp[preset][title]" value="' . htmlspecialchars($inData['preset']['title']) . '"' . $this->doc->formWidth(30) . ' /><br/>
-                                               <label for="checkPresetPublic">' . $LANG->getLL('makesavefo_public', TRUE) . '</label>
-                                               <input type="checkbox" name="tx_impexp[preset][public]" id="checkPresetPublic" value="1"' . ($inData['preset']['public'] ? ' checked="checked"' : '') . ' /><br/>
+                                               ' . $this->lang->getLL('makesavefo_titleOfNewPreset', TRUE) . '
+                                               <input type="text" name="tx_impexp[preset][title]" value="'
+                                                       . htmlspecialchars($inData['preset']['title']) . '"' . $this->doc->formWidth(30) . ' /><br/>
+                                               <label for="checkPresetPublic">' . $this->lang->getLL('makesavefo_public', TRUE) . '</label>
+                                               <input type="checkbox" name="tx_impexp[preset][public]" id="checkPresetPublic" value="1"'
+                                                       . ($inData['preset']['public'] ? ' checked="checked"' : '') . ' /><br/>
                                        </td>
                                </tr>';
                // Output options:
                $row[] = '
                        <tr class="tableheader bgColor5">
-                               <td colspan="2">' . $LANG->getLL('makesavefo_outputOptions', TRUE) . '</td>
+                               <td colspan="2">' . $this->lang->getLL('makesavefo_outputOptions', TRUE) . '</td>
                        </tr>';
                // Meta data:
                $tempDir = $this->userTempFolder();
@@ -674,19 +785,25 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                }
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makesavefo_metaData', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'metadata', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makesavefo_metaData', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'metadata', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>
-                                                       ' . $LANG->getLL('makesavefo_title', TRUE) . ' <br/>
-                                                       <input type="text" name="tx_impexp[meta][title]" value="' . htmlspecialchars($inData['meta']['title']) . '"' . $this->doc->formWidth(30) . ' /><br/>
-                                                       ' . $LANG->getLL('makesavefo_description', TRUE) . ' <br/>
-                                                       <input type="text" name="tx_impexp[meta][description]" value="' . htmlspecialchars($inData['meta']['description']) . '"' . $this->doc->formWidth(30) . ' /><br/>
-                                                       ' . $LANG->getLL('makesavefo_notes', TRUE) . ' <br/>
-                                                       <textarea name="tx_impexp[meta][notes]"' . $this->doc->formWidth(30, 1) . '>' . GeneralUtility::formatForTextarea($inData['meta']['notes']) . '</textarea><br/>
+                                                       ' . $this->lang->getLL('makesavefo_title', TRUE) . ' <br/>
+                                                       <input type="text" name="tx_impexp[meta][title]" value="'
+                                                               . htmlspecialchars($inData['meta']['title']) . '"' . $this->doc->formWidth(30) . ' /><br/>
+                                                       ' . $this->lang->getLL('makesavefo_description', TRUE) . ' <br/>
+                                                       <input type="text" name="tx_impexp[meta][description]" value="'
+                                                               . htmlspecialchars($inData['meta']['description']) . '"' . $this->doc->formWidth(30) . ' /><br/>
+                                                       ' . $this->lang->getLL('makesavefo_notes', TRUE) . ' <br/>
+                                                       <textarea name="tx_impexp[meta][notes]"' . $this->doc->formWidth(30, 1) . '>'
+                                                               . GeneralUtility::formatForTextarea($inData['meta']['notes']) . '</textarea><br/>
                                                        ' . (is_array($thumbnails) ? '
-                                                       ' . $LANG->getLL('makesavefo_thumbnail', TRUE) . '<br/>
+                                                       ' . $this->lang->getLL('makesavefo_thumbnail', TRUE) . '<br/>
                                                        ' . $this->renderSelectBox('tx_impexp[meta][thumbnail]', $inData['meta']['thumbnail'], $thumbnails) . '<br/>
-                                                       ' . ($inData['meta']['thumbnail'] ? '<img src="' . $this->doc->backPath . '../' . \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($tempDir) . $thumbnails[$inData['meta']['thumbnail']] . '" vspace="5" style="border: solid black 1px;" alt="" /><br/>' : '') . '
-                                                       ' . $LANG->getLL('makesavefo_uploadThumbnail', TRUE) . '<br/>
+                                                       ' . ($inData['meta']['thumbnail'] ? '<img src="' . $this->doc->backPath . '../'
+                                                               . PathUtility::stripPathSitePrefix($tempDir) . $thumbnails[$inData['meta']['thumbnail']]
+                                                               . '" vspace="5" style="border: solid black 1px;" alt="" /><br/>' : '') . '
+                                                       ' . $this->lang->getLL('makesavefo_uploadThumbnail', TRUE) . '<br/>
                                                        <input type="file" name="upload_1" ' . $this->doc->formWidth(30) . ' size="30" /><br/>
                                                                <input type="hidden" name="file[upload][1][target]" value="' . htmlspecialchars($tempDir) . '" />
                                                                <input type="hidden" name="file[upload][1][data]" value="1" /><br />
@@ -697,25 +814,36 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                $savePath = $this->userSaveFolder();
                $opt = array();
                if ($this->export->compress) {
-                       $opt['t3d_compressed'] = $LANG->getLL('makesavefo_t3dFileCompressed');
+                       $opt['t3d_compressed'] = $this->lang->getLL('makesavefo_t3dFileCompressed');
+               }
+               $opt['t3d'] = $this->lang->getLL('makesavefo_t3dFile');
+               $opt['xml'] = $this->lang->getLL('makesavefo_xml');
+               $fileName = '';
+               if ($savePath) {
+                       $fileName = sprintf($this->lang->getLL('makesavefo_filenameSavedInS', TRUE), PathUtility::stripPathSitePrefix($savePath))
+                               . '<br/>
+                                               <input type="text" name="tx_impexp[filename]" value="'
+                               . htmlspecialchars($inData['filename']) . '"' . $this->doc->formWidth(30) . ' /><br/>';
                }
-               $opt['t3d'] = $LANG->getLL('makesavefo_t3dFile');
-               $opt['xml'] = $LANG->getLL('makesavefo_xml');
                $row[] = '
                                <tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('makesavefo_fileFormat', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'fileFormat', $GLOBALS['BACK_PATH'], '') . '</td>
+                                       <td><strong>' . $this->lang->getLL('makesavefo_fileFormat', TRUE) . '</strong>'
+                                               . BackendUtility::cshItem('xMOD_tx_impexp', 'fileFormat', $GLOBALS['BACK_PATH'], '') . '</td>
                                        <td>' . $this->renderSelectBox('tx_impexp[filetype]', $inData['filetype'], $opt) . '<br/>
-                                               ' . $LANG->getLL('makesavefo_maxSizeOfFiles', TRUE) . '<br/>
-                                               <input type="text" name="tx_impexp[maxFileSize]" value="' . htmlspecialchars($inData['maxFileSize']) . '"' . $this->doc->formWidth(10) . ' /><br/>
-                                               ' . ($savePath ? sprintf($LANG->getLL('makesavefo_filenameSavedInS', TRUE), \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($savePath)) . '<br/>
-                                               <input type="text" name="tx_impexp[filename]" value="' . htmlspecialchars($inData['filename']) . '"' . $this->doc->formWidth(30) . ' /><br/>' : '') . '
+                                               ' . $this->lang->getLL('makesavefo_maxSizeOfFiles', TRUE) . '<br/>
+                                               <input type="text" name="tx_impexp[maxFileSize]" value="'
+                                                       . htmlspecialchars($inData['maxFileSize']) . '"' . $this->doc->formWidth(10) . ' /><br/>
+                                               ' . $fileName . '
                                        </td>
                                </tr>';
                // Add buttons:
                $row[] = '
                                <tr class="bgColor4">
                                        <td>&nbsp;</td>
-                                       <td><input type="submit" value="' . $LANG->getLL('makesavefo_update', TRUE) . '" /> - <input type="submit" value="' . $LANG->getLL('makesavefo_downloadExport', TRUE) . '" name="tx_impexp[download_export]" />' . ($savePath ? ' - <input type="submit" value="' . $LANG->getLL('importdata_saveToFilename', TRUE) . '" name="tx_impexp[save_export]" />' : '') . '</td>
+                                       <td><input type="submit" value="' . $this->lang->getLL('makesavefo_update', TRUE)
+                                               . '" /> - <input type="submit" value="' . $this->lang->getLL('makesavefo_downloadExport', TRUE)
+                                               . '" name="tx_impexp[download_export]" />' . ($savePath ? ' - <input type="submit" value="'
+                                               . $this->lang->getLL('importdata_saveToFilename', TRUE) . '" name="tx_impexp[save_export]" />' : '') . '</td>
                                </tr>';
        }
 
@@ -731,10 +859,10 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @todo Define visibility
         */
        public function importData($inData) {
-               global $LANG;
                $access = is_array($this->pageinfo) ? 1 : 0;
-               if ($this->id && $access || $GLOBALS['BE_USER']->user['admin'] && !$this->id) {
-                       if ($GLOBALS['BE_USER']->user['admin'] && !$this->id) {
+               $beUser = $this->getBackendUser();
+               if ($this->id && $access || $beUser->user['admin'] && !$this->id) {
+                       if ($beUser->user['admin'] && !$this->id) {
                                $this->pageinfo = array('title' => '[root-level]', 'uid' => 0, 'pid' => 0);
                        }
                        if ($inData['new_import']) {
@@ -773,61 +901,92 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        $row = array();
                        $opt = array('');
                        foreach ($filesInDir as $file) {
-                               $opt[$file] = \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($file);
+                               $opt[$file] = PathUtility::stripPathSitePrefix($file);
                        }
                        $row[] = '<tr class="bgColor5">
-                                       <td colspan="2"><strong>' . $LANG->getLL('importdata_selectFileToImport', TRUE) . '</strong></td>
+                                       <td colspan="2"><strong>' . $this->lang->getLL('importdata_selectFileToImport', TRUE) . '</strong></td>
                                </tr>';
+                       $noCompressorAvailable = !$import->compress
+                               ? '<br /><span class="typo3-red">' . $this->lang->getLL('importdata_noteNoDecompressorAvailable', TRUE) . '</span>'
+                               : '';
                        $row[] = '<tr class="bgColor4">
-                               <td><strong>' . $LANG->getLL('importdata_file', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'importFile', $GLOBALS['BACK_PATH'], '') . '</td>
-                               <td>' . $this->renderSelectBox('tx_impexp[file]', $inData['file'], $opt) . '<br />' . sprintf($LANG->getLL('importdata_fromPathS', TRUE), $path) . (!$import->compress ? '<br /><span class="typo3-red">' . $LANG->getLL('importdata_noteNoDecompressorAvailable', TRUE) . '</span>' : '') . '</td>
+                               <td><strong>' . $this->lang->getLL('importdata_file', TRUE) . '</strong>'
+                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'importFile', $GLOBALS['BACK_PATH'], '') . '</td>
+                               <td>' . $this->renderSelectBox('tx_impexp[file]', $inData['file'], $opt) . '<br />'
+                                       . sprintf($this->lang->getLL('importdata_fromPathS', TRUE), $path) .
+                               $noCompressorAvailable . '</td>
                                </tr>';
                        $row[] = '<tr class="bgColor5">
-                                       <td colspan="2"><strong>' . $LANG->getLL('importdata_importOptions', TRUE) . '</strong></td>
+                                       <td colspan="2"><strong>' . $this->lang->getLL('importdata_importOptions', TRUE) . '</strong></td>
                                </tr>';
                        $row[] = '<tr class="bgColor4">
-                               <td><strong>' . $LANG->getLL('importdata_update', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'update', $GLOBALS['BACK_PATH'], '') . '</td>
+                               <td><strong>' . $this->lang->getLL('importdata_update', TRUE) . '</strong>'
+                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'update', $GLOBALS['BACK_PATH'], '') . '</td>
                                <td>
-                                       <input type="checkbox" name="tx_impexp[do_update]" id="checkDo_update" value="1"' . ($inData['do_update'] ? ' checked="checked"' : '') . ' />
-                                       <label for="checkDo_update">' . $LANG->getLL('importdata_updateRecords', TRUE) . '</label><br/>
-                               <em>(' . $LANG->getLL('importdata_thisOptionRequiresThat', TRUE) . ')</em>' . ($inData['do_update'] ? ' <hr/>
-                                       <input type="checkbox" name="tx_impexp[global_ignore_pid]" id="checkGlobal_ignore_pid" value="1"' . ($inData['global_ignore_pid'] ? ' checked="checked"' : '') . ' />
-                                       <label for="checkGlobal_ignore_pid">' . $LANG->getLL('importdata_ignorePidDifferencesGlobally', TRUE) . '</label><br/>
-                                       <em>(' . $LANG->getLL('importdata_ifYouSetThis', TRUE) . ')</em>
+                                       <input type="checkbox" name="tx_impexp[do_update]" id="checkDo_update" value="1"'
+                                               . ($inData['do_update'] ? ' checked="checked"' : '') . ' />
+                                       <label for="checkDo_update">' . $this->lang->getLL('importdata_updateRecords', TRUE) . '</label><br/>
+                               <em>(' . $this->lang->getLL('importdata_thisOptionRequiresThat', TRUE) . ')</em>' . ($inData['do_update'] ? '   <hr/>
+                                       <input type="checkbox" name="tx_impexp[global_ignore_pid]" id="checkGlobal_ignore_pid" value="1"'
+                                               . ($inData['global_ignore_pid'] ? ' checked="checked"' : '') . ' />
+                                       <label for="checkGlobal_ignore_pid">' . $this->lang->getLL('importdata_ignorePidDifferencesGlobally', TRUE) . '</label><br/>
+                                       <em>(' . $this->lang->getLL('importdata_ifYouSetThis', TRUE) . ')</em>
                                        ' : '') . '</td>
                                </tr>';
+                       $allowPhpScripts = $beUser->isAdmin()
+                               ? '
+                                       <input type="checkbox" name="tx_impexp[allowPHPScripts]" id="checkAllowPHPScripts" value="1"'
+                                               . ($inData['allowPHPScripts'] ? ' checked="checked"' : '') . ' />
+                                       <label for="checkAllowPHPScripts">' . $this->lang->getLL('importdata_allowToWriteBanned', TRUE) . '</label><br/>'
+                               : '';
+                       $doUpdate = !$inData['do_update'] && $beUser->isAdmin()
+                               ? '
+                                       <br/>
+                                       <input type="checkbox" name="tx_impexp[force_all_UIDS]" id="checkForce_all_UIDS" value="1"'
+                                               . ($inData['force_all_UIDS'] ? ' checked="checked"' : '') . ' />
+                                       <label for="checkForce_all_UIDS"><span class="typo3-red">'
+                                               . $this->lang->getLL('importdata_force_all_UIDS', TRUE) . '</span></label><br/>
+                                       <em>(' . $this->lang->getLL('importdata_force_all_UIDS_descr', TRUE) . ')</em>'
+                               : '';
                        $row[] = '<tr class="bgColor4">
-                               <td><strong>' . $LANG->getLL('importdata_options', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'options', $GLOBALS['BACK_PATH'], '') . '</td>
+                               <td><strong>' . $this->lang->getLL('importdata_options', TRUE) . '</strong>'
+                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'options', $GLOBALS['BACK_PATH'], '') . '</td>
                                <td>
-                                       <input type="checkbox" name="tx_impexp[notShowDiff]" id="checkNotShowDiff" value="1"' . ($inData['notShowDiff'] ? ' checked="checked"' : '') . ' />
-                                       <label for="checkNotShowDiff">' . $LANG->getLL('importdata_doNotShowDifferences', TRUE) . '</label><br/>
-                                       <em>(' . $LANG->getLL('importdata_greenValuesAreFrom', TRUE) . ')</em>
+                                       <input type="checkbox" name="tx_impexp[notShowDiff]" id="checkNotShowDiff" value="1"'
+                                               . ($inData['notShowDiff'] ? ' checked="checked"' : '') . ' />
+                                       <label for="checkNotShowDiff">' . $this->lang->getLL('importdata_doNotShowDifferences', TRUE) . '</label><br/>
+                                       <em>(' . $this->lang->getLL('importdata_greenValuesAreFrom', TRUE) . ')</em>
                                        <br/><br/>
 
-                                       ' . ($GLOBALS['BE_USER']->isAdmin() ? '
-                                       <input type="checkbox" name="tx_impexp[allowPHPScripts]" id="checkAllowPHPScripts" value="1"' . ($inData['allowPHPScripts'] ? ' checked="checked"' : '') . ' />
-                                       <label for="checkAllowPHPScripts">' . $LANG->getLL('importdata_allowToWriteBanned', TRUE) . '</label><br/>' : '') . (!$inData['do_update'] && $GLOBALS['BE_USER']->isAdmin() ? '
-                                       <br/>
-                                       <input type="checkbox" name="tx_impexp[force_all_UIDS]" id="checkForce_all_UIDS" value="1"' . ($inData['force_all_UIDS'] ? ' checked="checked"' : '') . ' />
-                                       <label for="checkForce_all_UIDS"><span class="typo3-red">' . $LANG->getLL('importdata_force_all_UIDS', TRUE) . '</span></label><br/>
-                                       <em>(' . $LANG->getLL('importdata_force_all_UIDS_descr', TRUE) . ')</em>' : '') . '
+                                       ' . $allowPhpScripts . $doUpdate . '
                                </td>
                                </tr>';
+                       $newImport = !$inData['import_file']
+                               ? '<input type="submit" value="' . $this->lang->getLL('importdata_preview', TRUE) . '" />' . ($inData['file']
+                                       ? ' - <input type="submit" value="' . ($inData['do_update']
+                                               ? $this->lang->getLL('importdata_update_299e', TRUE)
+                                               : $this->lang->getLL('importdata_import', TRUE)) . '" name="tx_impexp[import_file]" onclick="return confirm(\''
+                                                       . $this->lang->getLL('importdata_areYouSure', TRUE) . '\');" />'
+                                       : '')
+                               : '<input type="submit" name="tx_impexp[new_import]" value="' . $this->lang->getLL('importdata_newImport', TRUE) . '" />';
                        $row[] = '<tr class="bgColor4">
-                               <td><strong>' . $LANG->getLL('importdata_action', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'action', $GLOBALS['BACK_PATH'], '') . '</td>
-                               <td>' . (!$inData['import_file'] ? '<input type="submit" value="' . $LANG->getLL('importdata_preview', TRUE) . '" />' . ($inData['file'] ? ' - <input type="submit" value="' . ($inData['do_update'] ? $LANG->getLL('importdata_update_299e', TRUE) : $LANG->getLL('importdata_import', TRUE)) . '" name="tx_impexp[import_file]" onclick="return confirm(\'' . $LANG->getLL('importdata_areYouSure', TRUE) . '\');" />' : '') : '<input type="submit" name="tx_impexp[new_import]" value="' . $LANG->getLL('importdata_newImport', TRUE) . '" />') . '
+                               <td><strong>' . $this->lang->getLL('importdata_action', TRUE) . '</strong>'
+                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'action', $GLOBALS['BACK_PATH'], '') . '</td>
+                               <td>' . $newImport . '
                                        <input type="hidden" name="tx_impexp[action]" value="import" /></td>
                                </tr>';
                        $row[] = '<tr class="bgColor4">
-                               <td><strong>' . $LANG->getLL('importdata_enableLogging', TRUE) . '</strong>' . BackendUtility::cshItem('xMOD_tx_impexp', 'enableLogging', $GLOBALS['BACK_PATH'], '') . '</td>
+                               <td><strong>' . $this->lang->getLL('importdata_enableLogging', TRUE) . '</strong>'
+                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'enableLogging', $GLOBALS['BACK_PATH'], '') . '</td>
                                <td>
-                                       <input type="checkbox" name="tx_impexp[enableLogging]" id="checkEnableLogging" value="1"' . ($inData['enableLogging'] ? ' checked="checked"' : '') . ' />
-                                       <label for="checkEnableLogging">' . $LANG->getLL('importdata_writeIndividualDbActions', TRUE) . '</label><br/>
-                                       <em>(' . $LANG->getLL('importdata_thisIsDisabledBy', TRUE) . ')</em>
+                                       <input type="checkbox" name="tx_impexp[enableLogging]" id="checkEnableLogging" value="1"'
+                                               . ($inData['enableLogging'] ? ' checked="checked"' : '') . ' />
+                                       <label for="checkEnableLogging">' . $this->lang->getLL('importdata_writeIndividualDbActions', TRUE) . '</label><br/>
+                                       <em>(' . $this->lang->getLL('importdata_thisIsDisabledBy', TRUE) . ')</em>
                                </td>
                                </tr>';
                        $menuItems[] = array(
-                               'label' => $LANG->getLL('importdata_import', TRUE),
+                               'label' => $this->lang->getLL('importdata_import', TRUE),
                                'content' => '
                                        <table border="0" cellpadding="1" cellspacing="1">
                                                ' . implode('
@@ -840,28 +999,33 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        if ($tempFolder) {
                                $row = array();
                                $row[] = '<tr class="bgColor5">
-                                               <td colspan="2"><strong>' . $LANG->getLL('importdata_uploadFileFromLocal', TRUE) . '</strong></td>
+                                               <td colspan="2"><strong>' . $this->lang->getLL('importdata_uploadFileFromLocal', TRUE) . '</strong></td>
                                        </tr>';
                                $row[] = '<tr class="bgColor4">
-                                               <td>' . $LANG->getLL('importdata_browse', TRUE) . BackendUtility::cshItem('xMOD_tx_impexp', 'upload', $GLOBALS['BACK_PATH'], '') . '</td>
+                                               <td>' . $this->lang->getLL('importdata_browse', TRUE)
+                                                       . BackendUtility::cshItem('xMOD_tx_impexp', 'upload', $GLOBALS['BACK_PATH'], '') . '</td>
                                                <td>
 
                                                                <input type="file" name="upload_1"' . $this->doc->formWidth(35) . ' size="40" />
                                                                <input type="hidden" name="file[upload][1][target]" value="' . htmlspecialchars($tempFolder) . '" />
                                                                <input type="hidden" name="file[upload][1][data]" value="1" /><br />
 
-                                                               <input type="submit" name="_upload" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:file_upload.php.submit', TRUE) . '" />
-                                                               <input type="checkbox" name="overwriteExistingFiles" id="checkOverwriteExistingFiles" value="1" checked="checked" /> <label for="checkOverwriteExistingFiles">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_misc.xlf:overwriteExistingFiles', TRUE) . '</label>
+                                                               <input type="submit" name="_upload" value="' . $this->lang->sL('LLL:EXT:lang/locallang_core.xlf:file_upload.php.submit', TRUE) . '" />
+                                                               <input type="checkbox" name="overwriteExistingFiles" id="checkOverwriteExistingFiles" value="1" checked="checked" /> <label for="checkOverwriteExistingFiles">'
+                                                                       . $this->lang->sL('LLL:EXT:lang/locallang_misc.xlf:overwriteExistingFiles', TRUE) . '</label>
                                                </td>
                                        </tr>';
                                if (GeneralUtility::_POST('_upload')) {
+                                       $noFileUploaded = $this->fileProcessor->internalUploadMap[1]
+                                               ? $this->lang->getLL('importdata_success', TRUE) . ' ' . PathUtility::stripPathSitePrefix($this->fileProcessor->internalUploadMap[1])
+                                               : '<span class="typo3-red">' . $this->lang->getLL('importdata_failureNoFileUploaded', TRUE) . '</span>';
                                        $row[] = '<tr class="bgColor4">
-                                                       <td>' . $LANG->getLL('importdata_uploadStatus', TRUE) . '</td>
-                                                       <td>' . ($this->fileProcessor->internalUploadMap[1] ? $LANG->getLL('importdata_success', TRUE) . ' ' . \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($this->fileProcessor->internalUploadMap[1]) : '<span class="typo3-red">' . $LANG->getLL('importdata_failureNoFileUploaded', TRUE) . '</span>') . '</td>
+                                                       <td>' . $this->lang->getLL('importdata_uploadStatus', TRUE) . '</td>
+                                                       <td>' . $noFileUploaded . '</td>
                                                </tr>';
                                }
                                $menuItems[] = array(
-                                       'label' => $LANG->getLL('importdata_upload'),
+                                       'label' => $this->lang->getLL('importdata_upload'),
                                        'content' => '
                                                <table border="0" cellpadding="1" cellspacing="1">
                                                        ' . implode('
@@ -873,7 +1037,6 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        // Perform import or preview depending:
                        $overviewContent = '';
                        $extensionInstallationMessage = '';
-                       $emURL = '';
                        $inFile = GeneralUtility::getFileAbsFileName($inData['file']);
                        if ($inFile && @is_file($inFile)) {
                                $trow = array();
@@ -888,7 +1051,8 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                                }
                                        }
                                        if (count($extKeysToInstall)) {
-                                               $extensionInstallationMessage = 'Before you can install this T3D file you need to install the extensions "' . implode('", "', $extKeysToInstall) . '".';
+                                               $extensionInstallationMessage = 'Before you can install this T3D file you need to install the extensions "'
+                                                       . implode('", "', $extKeysToInstall) . '".';
                                        }
                                        if ($inData['import_file']) {
                                                if (!count($extKeysToInstall)) {
@@ -901,28 +1065,30 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                }
                                // Meta data output:
                                $trow[] = '<tr class="bgColor5">
-                                               <td colspan="2"><strong>' . $LANG->getLL('importdata_metaData', TRUE) . '</strong></td>
+                                               <td colspan="2"><strong>' . $this->lang->getLL('importdata_metaData', TRUE) . '</strong></td>
                                        </tr>';
                                $opt = array('');
                                foreach ($filesInDir as $file) {
-                                       $opt[$file] = \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($file);
+                                       $opt[$file] = PathUtility::stripPathSitePrefix($file);
                                }
                                $trow[] = '<tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('importdata_title', TRUE) . '</strong></td>
+                                       <td><strong>' . $this->lang->getLL('importdata_title', TRUE) . '</strong></td>
                                        <td width="95%">' . nl2br(htmlspecialchars($import->dat['header']['meta']['title'])) . '</td>
                                        </tr>';
                                $trow[] = '<tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('importdata_description', TRUE) . '</strong></td>
+                                       <td><strong>' . $this->lang->getLL('importdata_description', TRUE) . '</strong></td>
                                        <td width="95%">' . nl2br(htmlspecialchars($import->dat['header']['meta']['description'])) . '</td>
                                        </tr>';
                                $trow[] = '<tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('importdata_notes', TRUE) . '</strong></td>
+                                       <td><strong>' . $this->lang->getLL('importdata_notes', TRUE) . '</strong></td>
                                        <td width="95%">' . nl2br(htmlspecialchars($import->dat['header']['meta']['notes'])) . '</td>
                                        </tr>';
                                $trow[] = '<tr class="bgColor4">
-                                       <td><strong>' . $LANG->getLL('importdata_packager', TRUE) . '</strong></td>
-                                       <td width="95%">' . nl2br(htmlspecialchars(($import->dat['header']['meta']['packager_name'] . ' (' . $import->dat['header']['meta']['packager_username'] . ')'))) . '<br/>
-                                               ' . $LANG->getLL('importdata_email', TRUE) . ' ' . $import->dat['header']['meta']['packager_email'] . '</td>
+                                       <td><strong>' . $this->lang->getLL('importdata_packager', TRUE) . '</strong></td>
+                                       <td width="95%">' . nl2br(htmlspecialchars(($import->dat['header']['meta']['packager_name']
+                                               . ' (' . $import->dat['header']['meta']['packager_username'] . ')'))) . '<br/>
+                                               ' . $this->lang->getLL('importdata_email', TRUE) . ' '
+                                               . $import->dat['header']['meta']['packager_email'] . '</td>
                                        </tr>';
                                // Thumbnail icon:
                                if (is_array($import->dat['header']['thumbnail'])) {
@@ -934,9 +1100,11 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                                // Check that the image really is an image and not a malicious PHP script...
                                                if (getimagesize($fileName)) {
                                                        // Create icon tag:
-                                                       $iconTag = '<img src="' . $this->doc->backPath . '../' . \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($fileName) . '" ' . $import->dat['header']['thumbnail']['imgInfo'][3] . ' vspace="5" style="border: solid black 1px;" alt="" />';
+                                                       $iconTag = '<img src="' . $this->doc->backPath . '../' . PathUtility::stripPathSitePrefix($fileName)
+                                                               . '" ' . $import->dat['header']['thumbnail']['imgInfo'][3]
+                                                               . ' vspace="5" style="border: solid black 1px;" alt="" />';
                                                        $trow[] = '<tr class="bgColor4">
-                                                               <td><strong>' . $LANG->getLL('importdata_icon', TRUE) . '</strong></td>
+                                                               <td><strong>' . $this->lang->getLL('importdata_icon', TRUE) . '</strong></td>
                                                                <td>' . $iconTag . '</td>
                                                                </tr>';
                                                } else {
@@ -945,7 +1113,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                                        }
                                }
                                $menuItems[] = array(
-                                       'label' => $LANG->getLL('importdata_metaData_1387'),
+                                       'label' => $this->lang->getLL('importdata_metaData_1387'),
                                        'content' => '
                                                <table border="0" cellpadding="1" cellspacing="1">
                                                        ' . implode('
@@ -957,19 +1125,22 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        // Print errors that might be:
                        $errors = $import->printErrorLog();
                        $menuItems[] = array(
-                               'label' => $LANG->getLL('importdata_messages'),
+                               'label' => $this->lang->getLL('importdata_messages'),
                                'content' => $errors,
                                'stateIcon' => $errors ? 2 : 0
                        );
                        // Output tabs:
                        $content = $this->doc->getDynTabMenu($menuItems, 'tx_impexp_import', -1);
                        if ($extensionInstallationMessage) {
-                               $content = '<div style="border: 1px black solid; margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;">' . $this->doc->icons(1) . htmlspecialchars($extensionInstallationMessage) . '</div>' . $content;
+                               $content = '<div style="border: 1px black solid; margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;">'
+                                       . $this->doc->icons(1) . htmlspecialchars($extensionInstallationMessage) . '</div>' . $content;
                        }
                        $this->content .= $this->doc->section('', $content, 0, 1);
                        // Print overview:
                        if ($overviewContent) {
-                               $this->content .= $this->doc->section($inData['import_file'] ? $LANG->getLL('importdata_structureHasBeenImported', TRUE) : $LANG->getLL('filterpage_structureToBeImported', TRUE), $overviewContent, 0, 1);
+                               $this->content .= $this->doc->section($inData['import_file']
+                                       ? $this->lang->getLL('importdata_structureHasBeenImported', TRUE)
+                                       : $this->lang->getLL('filterpage_structureToBeImported', TRUE), $overviewContent, 0, 1);
                        }
                }
        }
@@ -988,19 +1159,21 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
        public function processPresets(&$inData) {
                $presetData = GeneralUtility::_GP('preset');
                $err = FALSE;
+               $msg = '';
                // Save preset
+               $beUser = $this->getBackendUser();
                if (isset($presetData['save'])) {
                        $preset = $this->getPreset($presetData['select']);
                        // Update existing
                        if (is_array($preset)) {
-                               if ($GLOBALS['BE_USER']->isAdmin() || $preset['user_uid'] === $GLOBALS['BE_USER']->user['uid']) {
+                               if ($beUser->isAdmin() || $preset['user_uid'] === $beUser->user['uid']) {
                                        $fields_values = array(
                                                'public' => $inData['preset']['public'],
                                                'title' => $inData['preset']['title'],
                                                'item_uid' => $inData['pagetree']['id'],
                                                'preset_data' => serialize($inData)
                                        );
-                                       $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tx_impexp_presets', 'uid=' . (int)$preset['uid'], $fields_values);
+                                       $this->getDatabaseConnection()->exec_UPDATEquery('tx_impexp_presets', 'uid=' . (int)$preset['uid'], $fields_values);
                                        $msg = 'Preset #' . $preset['uid'] . ' saved!';
                                } else {
                                        $msg = 'ERROR: The preset was not saved because you were not the owner of it!';
@@ -1009,13 +1182,13 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        } else {
                                // Insert new:
                                $fields_values = array(
-                                       'user_uid' => $GLOBALS['BE_USER']->user['uid'],
+                                       'user_uid' => $beUser->user['uid'],
                                        'public' => $inData['preset']['public'],
                                        'title' => $inData['preset']['title'],
                                        'item_uid' => $inData['pagetree']['id'],
                                        'preset_data' => serialize($inData)
                                );
-                               $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_impexp_presets', $fields_values);
+                               $this->getDatabaseConnection()->exec_INSERTquery('tx_impexp_presets', $fields_values);
                                $msg = 'New preset "' . htmlspecialchars($inData['preset']['title']) . '" is created';
                        }
                }
@@ -1024,8 +1197,8 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        $preset = $this->getPreset($presetData['select']);
                        if (is_array($preset)) {
                                // Update existing
-                               if ($GLOBALS['BE_USER']->isAdmin() || $preset['user_uid'] === $GLOBALS['BE_USER']->user['uid']) {
-                                       $GLOBALS['TYPO3_DB']->exec_DELETEquery('tx_impexp_presets', 'uid=' . (int)$preset['uid']);
+                               if ($beUser->isAdmin() || $preset['user_uid'] === $beUser->user['uid']) {
+                                       $this->getDatabaseConnection()->exec_DELETEquery('tx_impexp_presets', 'uid=' . (int)$preset['uid']);
                                        $msg = 'Preset #' . $preset['uid'] . ' deleted!';
                                } else {
                                        $msg = 'ERROR: You were not the owner of the preset so you could not delete it.';
@@ -1066,7 +1239,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        }
                }
                // Show message:
-               if (strlen($msg)) {
+               if ($msg !== '') {
                        $this->content .= $this->doc->section('Presets', $msg, 0, 1, $err ? 3 : 1);
                }
        }
@@ -1079,8 +1252,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @todo Define visibility
         */
        public function getPreset($uid) {
-               $preset = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow('*', 'tx_impexp_presets', 'uid=' . (int)$uid);
-               return $preset;
+               return $this->getDatabaseConnection()->exec_SELECTgetSingleRow('*', 'tx_impexp_presets', 'uid=' . (int)$uid);
        }
 
        /****************************
@@ -1095,7 +1267,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         */
        public function userTempFolder() {
                /** @var $folder \TYPO3\CMS\Core\Resource\Folder */
-               $folder = $GLOBALS['BE_USER']->getDefaultUploadFolder();
+               $folder = $this->getBackendUser()->getDefaultUploadFolder();
                if ($folder !== FALSE) {
                        return PATH_site . $folder->getPublicUrl();
                }
@@ -1110,7 +1282,7 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         */
        public function userSaveFolder() {
                /** @var $folder \TYPO3\CMS\Core\Resource\Folder */
-               $folder = $GLOBALS['BE_USER']->getDefaultUploadFolder();
+               $folder = $this->getBackendUser()->getDefaultUploadFolder();
                if ($folder !== FALSE) {
                        return PATH_site . $folder->getPublicUrl();
                }
@@ -1134,7 +1306,11 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                // Checking referer / executing:
                $refInfo = parse_url(GeneralUtility::getIndpEnv('HTTP_REFERER'));
                $httpHost = GeneralUtility::getIndpEnv('TYPO3_HOST_ONLY');
-               if ($httpHost != $refInfo['host'] && $this->vC != $GLOBALS['BE_USER']->veriCode() && !$GLOBALS['$TYPO3_CONF_VARS']['SYS']['doNotCheckReferer']) {
+               if (
+                       $httpHost != $refInfo['host']
+                       && !$GLOBALS['$TYPO3_CONF_VARS']['SYS']['doNotCheckReferer']
+                       && $this->vC != $this->getBackendUser()->veriCode()
+               ) {
                        $this->fileProcessor->writeLog(0, 2, 1, 'Referer host "%s" and server host "%s" did not match!', array($refInfo['host'], $httpHost));
                } else {
                        $this->fileProcessor->start($file);
@@ -1162,7 +1338,8 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        $opt[] = '<option value="' . htmlspecialchars($k) . '"' . $sel . '>' . htmlspecialchars($v) . '</option>';
                }
                if (!$isSelFlag && (string)$value !== '') {
-                       $opt[] = '<option value="' . htmlspecialchars($value) . '" selected="selected">' . htmlspecialchars(('[\'' . $value . '\']')) . '</option>';
+                       $opt[] = '<option value="' . htmlspecialchars($value) . '" selected="selected">'
+                               . htmlspecialchars(('[\'' . $value . '\']')) . '</option>';
                }
                return '<select name="' . $prefix . '">' . implode('', $opt) . '</select>';
        }
@@ -1179,23 +1356,25 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
        public function tableSelector($prefix, $value, $excludeList = '') {
                $optValues = array();
                if (!GeneralUtility::inList($excludeList, '_ALL')) {
-                       $optValues['_ALL'] = '[' . $GLOBALS['LANG']->getLL('ALL_tables') . ']';
+                       $optValues['_ALL'] = '[' . $this->lang->getLL('ALL_tables') . ']';
                }
                foreach ($GLOBALS['TCA'] as $table => $_) {
-                       if ($GLOBALS['BE_USER']->check('tables_select', $table) && !GeneralUtility::inList($excludeList, $table)) {
+                       if ($this->getBackendUser()->check('tables_select', $table) && !GeneralUtility::inList($excludeList, $table)) {
                                $optValues[$table] = $table;
                        }
                }
                // make box:
                $opt = array();
                $opt[] = '<option value=""></option>';
+               $sel = '';
                foreach ($optValues as $k => $v) {
                        if (is_array($value)) {
                                $sel = in_array($k, $value) ? ' selected="selected"' : '';
                        }
                        $opt[] = '<option value="' . htmlspecialchars($k) . '"' . $sel . '>' . htmlspecialchars($v) . '</option>';
                }
-               return '<select name="' . $prefix . '[]" multiple="multiple" size="' . \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange(count($opt), 5, 10) . '">' . implode('', $opt) . '</select>';
+               return '<select name="' . $prefix . '[]" multiple="multiple" size="'
+                       . MathUtility::forceIntegerInRange(count($opt), 5, 10) . '">' . implode('', $opt) . '</select>';
        }
 
        /**
@@ -1217,13 +1396,16 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                        if (is_array($value)) {
                                $sel = in_array($extensionKey, $value) ? ' selected="selected"' : '';
                        }
-                       $opt[] = '<option value="' . htmlspecialchars($extensionKey) . '"' . $sel . '>' . htmlspecialchars($extensionKey) . '</option>';
+                       $opt[] = '<option value="' . htmlspecialchars($extensionKey) . '"' . $sel . '>'
+                               . htmlspecialchars($extensionKey) . '</option>';
                }
-               return '<select name="' . $prefix . '[]" multiple="multiple" size="' . \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange(count($opt), 5, 10) . '">' . implode('', $opt) . '</select>';
+               return '<select name="' . $prefix . '[]" multiple="multiple" size="'
+                       . MathUtility::forceIntegerInRange(count($opt), 5, 10) . '">' . implode('', $opt) . '</select>';
        }
 
        /**
-        * Filter page IDs by traversing exclude array, finding all excluded pages (if any) and making an AND NOT IN statement for the select clause.
+        * Filter page IDs by traversing exclude array, finding all
+        * excluded pages (if any) and making an AND NOT IN statement for the select clause.
         *
         * @param array $exclude Exclude array from import/export object.
         * @return string AND where clause part to filter out page uids.
@@ -1244,6 +1426,27 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
                if (count($pageIds)) {
                        return ' AND uid NOT IN (' . implode(',', $pageIds) . ')';
                }
+               return '';
        }
 
+       /**
+        * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication
+        */
+       protected function getBackendUser() {
+               return $GLOBALS['BE_USER'];
+       }
+
+       /**
+        * @return DatabaseConnection
+        */
+       protected function getDatabaseConnection() {
+               return $GLOBALS['TYPO3_DB'];
+       }
+
+       /**
+        * @return LanguageService
+        */
+       protected function getLanguageService() {
+               return $GLOBALS['LANG'];
+       }
 }