[TASK] Render lowlevel output with fluid 06/35806/6
authorGeorg Ringer <georg.ringer@gmail.com>
Mon, 5 Jan 2015 21:48:22 +0000 (22:48 +0100)
committerWouter Wolters <typo3@wouterwolters.nl>
Tue, 6 Jan 2015 22:39:56 +0000 (23:39 +0100)
Use fluid to render the lowlevel functions.

Resolves: #64137
Releases: master
Change-Id: Ib5046d3af7b514520cc3031735006b14bb5e631c
Reviewed-on: http://review.typo3.org/35806
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
typo3/sysext/lowlevel/Classes/View/ConfigurationView.php
typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php
typo3/sysext/lowlevel/Resources/Private/Language/locallang.xlf
typo3/sysext/lowlevel/Resources/Private/Templates/Backend/CustomSearch.html [new file with mode: 0644]
typo3/sysext/lowlevel/Resources/Private/Templates/Backend/IntegrityOverview.html [new file with mode: 0644]
typo3/sysext/lowlevel/Resources/Private/Templates/Backend/RecordStatistics.html [new file with mode: 0644]
typo3/sysext/lowlevel/Resources/Private/Templates/Backend/ReferenceIndex.html [new file with mode: 0644]
typo3/sysext/lowlevel/Resources/Private/Templates/Backend/Relations.html [new file with mode: 0644]
typo3/sysext/lowlevel/Resources/Public/Styles/styles.css
typo3/sysext/lowlevel/dbint/locallang.xlf

index 3c7873a..b486937 100644 (file)
@@ -14,57 +14,35 @@ namespace TYPO3\CMS\Lowlevel\View;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Backend\Module\BaseScriptClass;
+use TYPO3\CMS\Backend\Template\DocumentTemplate;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Messaging\FlashMessage;
+use TYPO3\CMS\Core\Messaging\FlashMessageQueue;
+use TYPO3\CMS\Core\Messaging\FlashMessageService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
+use TYPO3\CMS\Fluid\View\StandaloneView;
+use TYPO3\CMS\Lowlevel\Utility\ArrayBrowser;
 
 /**
  * Script class for the Config module
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-class ConfigurationView {
+class ConfigurationView extends BaseScriptClass {
 
        /**
-        * @var \TYPO3\CMS\Fluid\View\StandaloneView
+        * @var StandaloneView
         */
        protected $view;
 
        /**
-        * @var \TYPO3\CMS\Core\Messaging\FlashMessageQueue
+        * @var FlashMessageQueue
         */
        protected $flashMessageQueue;
 
        /**
-        * @var array
-        * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-        */
-       public $MCONF = array();
-
-       /**
-        * @var array
-        */
-       public $MOD_MENU = array();
-
-       /**
-        * @var array
-        */
-       public $MOD_SETTINGS = array();
-
-       /**
-        * Document template object
-        *
-        * @var \TYPO3\CMS\Backend\Template\DocumentTemplate
-        */
-       public $doc;
-
-       /**
-        * @var string
-        */
-       public $content;
-
-       /**
         * The name of the module
         *
         * @var string
@@ -75,7 +53,7 @@ class ConfigurationView {
         * Constructor
         */
        public function __construct() {
-               $this->view = GeneralUtility::makeInstance(\TYPO3\CMS\Fluid\View\StandaloneView::class);
+               $this->view = GeneralUtility::makeInstance(StandaloneView::class);
                $this->view->getRequest()->setControllerExtensionName('lowlevel');
        }
 
@@ -86,7 +64,7 @@ class ConfigurationView {
         */
        public function init() {
                $this->menuConfig();
-               $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
+               $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
                $this->doc->backPath = $GLOBALS['BACK_PATH'];
                $this->doc->setModuleTemplate('EXT:lowlevel/Resources/Private/Templates/config.html');
                $this->doc->form = '<form action="" method="post">';
@@ -129,8 +107,8 @@ class ConfigurationView {
         * @return void
         */
        public function main() {
-               /** @var \TYPO3\CMS\Lowlevel\Utility\ArrayBrowser $arrayBrowser */
-               $arrayBrowser = GeneralUtility::makeInstance(\TYPO3\CMS\Lowlevel\Utility\ArrayBrowser::class);
+               /** @var ArrayBrowser $arrayBrowser */
+               $arrayBrowser = GeneralUtility::makeInstance(ArrayBrowser::class);
                $label = $this->MOD_MENU['function'][$this->MOD_SETTINGS['function']];
                $search_field = GeneralUtility::_GP('search_field');
 
@@ -203,7 +181,7 @@ class ConfigurationView {
                        $update = 1;
                }
                if ($update) {
-                       $GLOBALS['BE_USER']->pushModuleData($this->moduleName, $this->MOD_SETTINGS);
+                       $this->getBackendUser()->pushModuleData($this->moduleName, $this->MOD_SETTINGS);
                }
                $arrayBrowser->depthKeys = $this->MOD_SETTINGS['node_' . $this->MOD_SETTINGS['function']];
                $arrayBrowser->regexMode = $this->MOD_SETTINGS['regexsearch'];
@@ -285,7 +263,7 @@ class ConfigurationView {
                        'CONTENT' => $this->view->render(),
                );
                // Build the <body> for the module
-               $this->content = $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
+               $this->content = $this->doc->moduleBody(array(), $docHeaderButtons, $markers);
                // Renders the module page
                $this->content = $this->doc->render('Configuration', $this->content);
        }
@@ -310,7 +288,7 @@ class ConfigurationView {
                        'shortcut' => ''
                );
                // Shortcut
-               if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
+               if ($this->getBackendUser()->mayMakeShortcut()) {
                        $buttons['shortcut'] = $this->doc->makeShortcutIcon('', 'function', $this->moduleName);
                }
                return $buttons;
@@ -327,12 +305,12 @@ class ConfigurationView {
        }
 
        /**
-        * @return \TYPO3\CMS\Core\Messaging\FlashMessageQueue
+        * @return FlashMessageQueue
         */
        protected function getFlashMessageQueue() {
-               if (!$this->flashMessageQueue instanceof \TYPO3\CMS\Core\Messaging\FlashMessageQueue) {
-                       /** @var $flashMessageService \TYPO3\CMS\Core\Messaging\FlashMessageService */
-                       $flashMessageService = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessageService::class);
+               if (!$this->flashMessageQueue instanceof FlashMessageQueue) {
+                       /** @var $flashMessageService FlashMessageService */
+                       $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
                        $this->flashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
                }
 
index 56469fa..0fcf59d 100644 (file)
@@ -14,61 +14,52 @@ namespace TYPO3\CMS\Lowlevel\View;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Backend\Module\BaseScriptClass;
+use TYPO3\CMS\Backend\Template\DocumentTemplate;
+use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Database\QueryView;
+use TYPO3\CMS\Core\Database\ReferenceIndex;
+use TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Fluid\View\StandaloneView;
 
 /**
  * Script class for the DB int module
  *
  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-class DatabaseIntegrityView {
+class DatabaseIntegrityView extends BaseScriptClass {
 
        /**
-        * @var array
-        * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8
-        */
-       public $MCONF = array();
-
-       /**
-        * @var array
-        */
-       public $MOD_MENU = array();
-
-       /**
-        * @var array
+        * @var string
         */
-       public $MOD_SETTINGS = array();
+       protected $formName = 'queryform';
 
        /**
-        * Document template object
+        * The name of the module
         *
-        * @var \TYPO3\CMS\Backend\Template\DocumentTemplate
-        */
-       public $doc;
-
-       /**
         * @var string
         */
-       public $content;
+       protected $moduleName = 'system_dbint';
 
        /**
-        * @var string
+        * @var StandaloneView
         */
-       protected $formName = 'queryform';
+       protected $view;
 
        /**
-        * The name of the module
-        *
         * @var string
         */
-       protected $moduleName = 'system_dbint';
+       protected $templatePath = 'EXT:lowlevel/Resources/Private/Templates/Backend/';
 
        /**
         * Constructor
         */
        public function __construct() {
-               $GLOBALS['LANG']->includeLLFile('EXT:lowlevel/dbint/locallang.xlf');
+               $this->getLanguageService()->includeLLFile('EXT:lowlevel/Resources/Private/Language/locallang.xlf');
+               $this->view = GeneralUtility::makeInstance(StandaloneView::class);
+               $this->view->getRequest()->setControllerExtensionName('lowlevel');
        }
 
        /**
@@ -78,21 +69,10 @@ class DatabaseIntegrityView {
         */
        public function init() {
                $this->menuConfig();
-               $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
+               $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
                $this->doc->backPath = $GLOBALS['BACK_PATH'];
                $this->doc->setModuleTemplate('EXT:lowlevel/Resources/Private/Templates/dbint.html');
                $this->doc->form = '<form action="" method="post" name="' . $this->formName . '">';
-               $this->doc->table_TABLE = '<table class="table table-striped table-hover">
-                       <colgroup><col width="24"><col><col width="150"></colgroup>';
-               $this->doc->tableLayout = array(
-                       '0' => array(
-                               'tr' => array('<thead><tr>', '</tr></thead>'),
-                               'defCol' => array('<th>', '</th>')
-                       ),
-                       'defRow' => array(
-                               'defCol' => array('<td>', '</td>')
-                       )
-               );
        }
 
        /**
@@ -101,21 +81,22 @@ class DatabaseIntegrityView {
         * @return void
         */
        public function menuConfig() {
+               $lang = $this->getLanguageService();
                // MENU-ITEMS:
                // If array, then it's a selector box menu
                // If empty string it's just a variable, that'll be saved.
                // Values NOT in this array will not be saved in the settings-array for the module.
                $this->MOD_MENU = array(
                        'function' => array(
-                               0 => $GLOBALS['LANG']->getLL('menuTitle', TRUE),
-                               'records' => $GLOBALS['LANG']->getLL('recordStatistics', TRUE),
-                               'relations' => $GLOBALS['LANG']->getLL('databaseRelations', TRUE),
-                               'search' => $GLOBALS['LANG']->getLL('fullSearch', TRUE),
-                               'refindex' => $GLOBALS['LANG']->getLL('manageRefIndex', TRUE)
+                               0 => $lang->getLL('menuTitle', TRUE),
+                               'records' => $lang->getLL('recordStatistics', TRUE),
+                               'relations' => $lang->getLL('databaseRelations', TRUE),
+                               'search' => $lang->getLL('fullSearch', TRUE),
+                               'refindex' => $lang->getLL('manageRefIndex', TRUE)
                        ),
                        'search' => array(
-                               'raw' => $GLOBALS['LANG']->getLL('rawSearch', TRUE),
-                               'query' => $GLOBALS['LANG']->getLL('advancedQuery', TRUE)
+                               'raw' => $lang->getLL('rawSearch', TRUE),
+                               'query' => $lang->getLL('advancedQuery', TRUE)
                        ),
                        'search_query_smallparts' => '',
                        'search_result_labels' => '',
@@ -145,10 +126,10 @@ class DatabaseIntegrityView {
                        'storeQueryConfigs' => '',
                        // Used to store the available Query configs in memory
                        'search_query_makeQuery' => array(
-                               'all' => $GLOBALS['LANG']->getLL('selectRecords', TRUE),
-                               'count' => $GLOBALS['LANG']->getLL('countResults', TRUE),
-                               'explain' => $GLOBALS['LANG']->getLL('explainQuery', TRUE),
-                               'csv' => $GLOBALS['LANG']->getLL('csvExport', TRUE)
+                               'all' => $lang->getLL('selectRecords', TRUE),
+                               'count' => $lang->getLL('countResults', TRUE),
+                               'explain' => $lang->getLL('explainQuery', TRUE),
+                               'csv' => $lang->getLL('csvExport', TRUE)
                        ),
                        'sword' => ''
                );
@@ -160,9 +141,10 @@ class DatabaseIntegrityView {
                        $this->MOD_SETTINGS = BackendUtility::getModuleData($this->MOD_MENU, array('queryConfig' => serialize($qA)), $this->moduleName, 'ses');
                }
                $addConditionCheck = GeneralUtility::_GP('qG_ins');
+               $setLimitToStart = FALSE;
                foreach ($OLD_MOD_SETTINGS as $key => $val) {
                        if (substr($key, 0, 5) == 'query' && $this->MOD_SETTINGS[$key] != $val && $key != 'queryLimit' && $key != 'use_listview') {
-                               $setLimitToStart = 1;
+                               $setLimitToStart = TRUE;
                                if ($key == 'queryTable' && !$addConditionCheck) {
                                        $this->MOD_SETTINGS['queryConfig'] = '';
                                }
@@ -183,27 +165,35 @@ class DatabaseIntegrityView {
        }
 
        /**
-        * Main
+        * Main functions, is rendering the content
         *
         * @return void
         */
        public function main() {
                switch ($this->MOD_SETTINGS['function']) {
                        case 'search':
+                               $templateFilename = 'CustomSearch.html';
                                $this->func_search();
                                break;
                        case 'records':
+                               $templateFilename = 'RecordStatistics.html';
                                $this->func_records();
                                break;
                        case 'relations':
+                               $templateFilename = 'Relations.html';
                                $this->func_relations();
                                break;
                        case 'refindex':
+                               $templateFilename = 'ReferenceIndex.html';
                                $this->func_refindex();
                                break;
                        default:
+                               $templateFilename = 'IntegrityOverview.html';
                                $this->func_default();
                }
+               $this->view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName($this->templatePath . $templateFilename));
+               $this->content = $this->view->render();
+
                // Setting up the buttons and markers for docheader
                $docHeaderButtons = $this->getButtons();
                $markers = array(
@@ -212,9 +202,9 @@ class DatabaseIntegrityView {
                        'CONTENT' => $this->content
                );
                // Build the <body> for the module
-               $this->content = $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
+               $this->content = $this->doc->moduleBody(array(), $docHeaderButtons, $markers);
                // Renders the module page
-               $this->content = $this->doc->render($GLOBALS['LANG']->getLL('title'), $this->content);
+               $this->content = $this->doc->render($this->getLanguageService()->getLL('title'), $this->content);
        }
 
        /**
@@ -237,7 +227,7 @@ class DatabaseIntegrityView {
                        'shortcut' => ''
                );
                // Shortcut
-               if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
+               if ($this->getBackendUser()->mayMakeShortcut()) {
                        $buttons['shortcut'] = $this->doc->makeShortcutIcon('', 'function,search,search_query_makeQuery', $this->moduleName);
                }
                return $buttons;
@@ -258,21 +248,12 @@ class DatabaseIntegrityView {
         * @return void
         */
        protected function func_default() {
+               $modules = array();
                $availableModFuncs = array('records', 'relations', 'search', 'refindex');
-               $content = '<dl class="t3-overview-list">';
                foreach ($availableModFuncs as $modFunc) {
-                       $functionUrl = BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=' . $modFunc;
-                       $title = $GLOBALS['LANG']->getLL($modFunc);
-                       $description = $GLOBALS['LANG']->getLL($modFunc . '_description');
-                       $icon = '<img src="sysext/lowlevel/Resources/Public/Icons/module-dbint.png" width="16" height="16" title="' . $title . '" alt="' . $title . '" />';
-                       $content .= '
-                               <dt><a href="' . htmlspecialchars($functionUrl) . '">' . $icon . $title . '</a></dt>
-                               <dd>' . $description . '</dd>
-                       ';
+                       $modules[$modFunc] = BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=' . $modFunc;
                }
-               $content .= '</dl>';
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('title'));
-               $this->content .= $this->doc->section('', $content, FALSE, TRUE);
+               $this->view->assign('availableFunctions', $modules);
        }
 
        /****************************
@@ -286,35 +267,15 @@ class DatabaseIntegrityView {
         * @return void
         */
        public function func_refindex() {
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('manageRefIndex', TRUE));
+               $this->view->assign('PATH_typo3', PATH_typo3);
+
                if (GeneralUtility::_GP('_update') || GeneralUtility::_GP('_check')) {
                        $testOnly = GeneralUtility::_GP('_check') ? TRUE : FALSE;
                        // Call the functionality
-                       $refIndexObj = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Database\ReferenceIndex::class);
-                       list($headerContent, $bodyContent) = $refIndexObj->updateIndex($testOnly);
-                       // Output content:
-                       $this->content .= $this->doc->section('', str_replace(LF, '<br/>', $bodyContent), FALSE, TRUE);
+                       $refIndexObj = GeneralUtility::makeInstance(ReferenceIndex::class);
+                       list(,$bodyContent) = $refIndexObj->updateIndex($testOnly);
+                       $this->view->assign('content', str_replace(LF, '<br/>', $bodyContent));
                }
-
-               // Output content:
-               $content = '<p class="lead">' . $GLOBALS['LANG']->getLL('referenceIndex_description') . '</p>';
-               $content .= '<input class="btn btn-default" type="submit" name="_check" value="' . $GLOBALS['LANG']->getLL('referenceIndex_buttonCheck') . '" /> <input class="btn btn-default" type="submit" name="_update" value="' . $GLOBALS['LANG']->getLL('referenceIndex_buttonUpdate') . '" /><br /><br />';
-               $this->content .= $this->doc->section('', $content, FALSE, TRUE);
-
-               // Command Line Interface
-               $content = '';
-               $content .= '<p>' . $GLOBALS['LANG']->getLL('checkScript') . '</p>';
-
-               $content .= '<h3>' . $GLOBALS['LANG']->getLL('checkScript_check_description') . '</h3>';
-               $content .= '<p><code>php ' . PATH_typo3 . 'cli_dispatch.phpsh lowlevel_refindex -c</code></p>';
-
-               $content .= '<h3>' . $GLOBALS['LANG']->getLL('checkScript_update_description') . '</h3>';
-               $content .= '<p><code>php ' . PATH_typo3 . 'cli_dispatch.phpsh lowlevel_refindex -e</code></p>';
-               $content .= '<div class="alert alert-info"><div class="message-body">' . $GLOBALS['LANG']->getLL('checkScript_information') . '</div></div>';
-
-               $content .= '<p>' . $GLOBALS['LANG']->getLL('checkScript_moreDetails') . '<br />';
-               $content .= '<a href="' . $GLOBALS['BACK_PATH'] . 'sysext/lowlevel/HOWTO_clean_up_TYPO3_installations.txt" target="_new">' . PATH_typo3 . 'sysext/lowlevel/HOWTO_clean_up_TYPO3_installations.txt</a></p>';
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('checkScript_headline'), $content, FALSE, TRUE);
        }
 
        /**
@@ -323,29 +284,29 @@ class DatabaseIntegrityView {
         * @return void
         */
        public function func_search() {
-               $fullsearch = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Database\QueryView::class);
+               $lang = $this->getLanguageService();
+               $searchMode = $this->MOD_SETTINGS['search'];
+               $fullsearch = GeneralUtility::makeInstance(QueryView::class);
                $fullsearch->setFormName($this->formName);
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('search'));
-               $this->content .= $this->doc->spacer(5);
-               $menu2 = BackendUtility::getFuncMenu(0, 'SET[search]', $this->MOD_SETTINGS['search'], $this->MOD_MENU['search']);
+               $submenu = BackendUtility::getFuncMenu(0, 'SET[search]', $searchMode, $this->MOD_MENU['search']);
                if ($this->MOD_SETTINGS['search'] == 'query') {
-                       $menu2 .= BackendUtility::getFuncMenu(0, 'SET[search_query_makeQuery]', $this->MOD_SETTINGS['search_query_makeQuery'], $this->MOD_MENU['search_query_makeQuery']) . '<br />';
-                       $menu2 .= '<div class="checkbox"><label for="checkSearch_query_smallparts">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[search_query_smallparts]', $this->MOD_SETTINGS['search_query_smallparts'], '', '', 'id="checkSearch_query_smallparts"') . $GLOBALS['LANG']->getLL('showSQL') . '</label></div>';
-                       $menu2 .= '<div class="checkbox"><label for="checkSearch_result_labels">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[search_result_labels]', $this->MOD_SETTINGS['search_result_labels'], '', '', 'id="checkSearch_result_labels"') . $GLOBALS['LANG']->getLL('useFormattedStrings') . '</label></div>';
-                       $menu2 .= '<div class="checkbox"><label for="checkLabels_noprefix">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[labels_noprefix]', $this->MOD_SETTINGS['labels_noprefix'], '', '', 'id="checkLabels_noprefix"') . $GLOBALS['LANG']->getLL('dontUseOrigValues') . '</label></div>';
-                       $menu2 .= '<div class="checkbox"><label for="checkOptions_sortlabel">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[options_sortlabel]', $this->MOD_SETTINGS['options_sortlabel'], '', '', 'id="checkOptions_sortlabel"') . $GLOBALS['LANG']->getLL('sortOptions') . '</label></div>';
-                       $menu2 .= '<div class="checkbox"><label for="checkShow_deleted">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[show_deleted]', $this->MOD_SETTINGS['show_deleted'], '', '', 'id="checkShow_deleted"') . $GLOBALS['LANG']->getLL('showDeleted') . '</label></div>';
+                       $submenu .= BackendUtility::getFuncMenu(0, 'SET[search_query_makeQuery]', $this->MOD_SETTINGS['search_query_makeQuery'], $this->MOD_MENU['search_query_makeQuery']) . '<br />';
+                       $submenu .= '<div class="checkbox"><label for="checkSearch_query_smallparts">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[search_query_smallparts]', $this->MOD_SETTINGS['search_query_smallparts'], '', '', 'id="checkSearch_query_smallparts"') . $lang->getLL('showSQL') . '</label></div>';
+                       $submenu .= '<div class="checkbox"><label for="checkSearch_result_labels">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[search_result_labels]', $this->MOD_SETTINGS['search_result_labels'], '', '', 'id="checkSearch_result_labels"') . $lang->getLL('useFormattedStrings') . '</label></div>';
+                       $submenu .= '<div class="checkbox"><label for="checkLabels_noprefix">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[labels_noprefix]', $this->MOD_SETTINGS['labels_noprefix'], '', '', 'id="checkLabels_noprefix"') . $lang->getLL('dontUseOrigValues') . '</label></div>';
+                       $submenu .= '<div class="checkbox"><label for="checkOptions_sortlabel">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[options_sortlabel]', $this->MOD_SETTINGS['options_sortlabel'], '', '', 'id="checkOptions_sortlabel"') . $lang->getLL('sortOptions') . '</label></div>';
+                       $submenu .= '<div class="checkbox"><label for="checkShow_deleted">' . BackendUtility::getFuncCheck($GLOBALS['SOBE']->id, 'SET[show_deleted]', $this->MOD_SETTINGS['show_deleted'], '', '', 'id="checkShow_deleted"') . $lang->getLL('showDeleted') . '</label></div>';
                }
-               $this->content .= $this->doc->section('', $menu2) . $this->doc->spacer(10);
-               switch ($this->MOD_SETTINGS['search']) {
+               $this->view->assign('submenu', $submenu);
+               $this->view->assign('searchMode', $searchMode);
+               switch ($searchMode) {
                        case 'query':
-                               $this->content .= $fullsearch->queryMaker();
+                               $this->view->assign('queryMaker', $fullsearch->queryMaker());
                                break;
                        case 'raw':
-
                        default:
-                               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('searchOptions'), $fullsearch->form(), FALSE, TRUE);
-                               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('result'), $fullsearch->search(), FALSE, TRUE);
+                               $this->view->assign('searchOptions', $fullsearch->form());
+                               $this->view->assign('results', $fullsearch->search());
                }
        }
 
@@ -355,43 +316,44 @@ class DatabaseIntegrityView {
         * @return void
         */
        public function func_records() {
-               /** @var $admin \TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck */
-               $admin = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck::class);
+
+               /** @var $admin DatabaseIntegrityCheck */
+               $admin = GeneralUtility::makeInstance(DatabaseIntegrityCheck::class);
                $admin->genTree_makeHTML = 0;
                $admin->backPath = $GLOBALS['BACK_PATH'];
                $admin->genTree(0, '');
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('records'));
 
                // Pages stat
-               $codeArr = array();
-               $codeArr['tableheader'] = array('', '', $GLOBALS['LANG']->getLL('count'));
-               $i++;
-               $codeArr[$i][] = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', array());
-               $codeArr[$i][] = $GLOBALS['LANG']->getLL('total_pages');
-               $codeArr[$i][] = count($admin->page_idArray);
-               $i++;
-               $codeArr[$i][] = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', array('hidden' => 1));
-               $codeArr[$i][] = $GLOBALS['LANG']->getLL('hidden_pages');
-               $codeArr[$i][] = $admin->recStats['hidden'];
-               $i++;
-               $codeArr[$i][] = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', array('deleted' => 1));
-               $codeArr[$i][] = $GLOBALS['LANG']->getLL('deleted_pages');
-               $codeArr[$i][] = count($admin->recStats['deleted']['pages']);
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('pages'), $this->doc->table($codeArr), TRUE, TRUE);
+               $pageStatistic = array(
+                       'total_pages' => array(
+                               'icon' => IconUtility::getSpriteIconForRecord('pages', array()),
+                               'count' => count($admin->page_idArray)
+                       ),
+                       'hidden_pages' => array(
+                               'icon' => IconUtility::getSpriteIconForRecord('pages', array('hidden' => 1)),
+                               'count' => $admin->recStats['hidden']
+                       ),
+                       'deleted_pages' => array(
+                               'icon' => IconUtility::getSpriteIconForRecord('pages', array('deleted' => 1)),
+                               'count' => count($admin->recStats['deleted']['pages'])
+                       )
+               );
+
+               $lang = $this->getLanguageService();
 
                // Doktype
-               $codeArr = array();
-               $codeArr['tableheader'] = array('', $GLOBALS['LANG']->getLL('doktype_value'), $GLOBALS['LANG']->getLL('count'));
+               $doktypes = array();
                $doktype = $GLOBALS['TCA']['pages']['columns']['doktype']['config']['items'];
                if (is_array($doktype)) {
-                       foreach ($doktype as $n => $setup) {
+                       foreach ($doktype as $setup) {
                                if ($setup[1] != '--div--') {
-                                       $codeArr[$n][] = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', array('doktype' => $setup[1]));
-                                       $codeArr[$n][] = $GLOBALS['LANG']->sL($setup[0]) . ' (' . $setup[1] . ')';
-                                       $codeArr[$n][] = (int)$admin->recStats['doktype'][$setup[1]];
+                                       $doktypes[] = array(
+                                               'icon' => IconUtility::getSpriteIconForRecord('pages', array('doktype' => $setup[1])),
+                                               'title' => $lang->sL($setup[0]) . ' (' . $setup[1] . ')',
+                                               'count' => (int)$admin->recStats['doktype'][$setup[1]]
+                                       );
                                }
                        }
-                       $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('doktype'), $this->doc->table($codeArr), TRUE, TRUE);
                }
 
                // Tables and lost records
@@ -399,30 +361,20 @@ class DatabaseIntegrityView {
                $id_list = rtrim($id_list, ',');
                $admin->lostRecords($id_list);
                if ($admin->fixLostRecord(GeneralUtility::_GET('fixLostRecords_table'), GeneralUtility::_GET('fixLostRecords_uid'))) {
-                       $admin = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck::class);
+                       $admin = GeneralUtility::makeInstance(DatabaseIntegrityCheck::class);
                        $admin->backPath = $GLOBALS['BACK_PATH'];
                        $admin->genTree(0, '');
                        $id_list = '-1,0,' . implode(',', array_keys($admin->page_idArray));
                        $id_list = rtrim($id_list, ',');
                        $admin->lostRecords($id_list);
                }
-               $codeArr = array();
-               $codeArr['tableheader'] = array(
-                       '',
-                       $GLOBALS['LANG']->getLL('label'),
-                       $GLOBALS['LANG']->getLL('tablename'),
-                       $GLOBALS['LANG']->getLL('total_lost'),
-                       ''
-               );
+               $tableStatistic = array();
                $countArr = $admin->countRecords($id_list);
                if (is_array($GLOBALS['TCA'])) {
                        foreach ($GLOBALS['TCA'] as $t => $value) {
                                if ($GLOBALS['TCA'][$t]['ctrl']['hideTable']) {
                                        continue;
                                }
-                               $codeArr[$t][] = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord($t, array());
-                               $codeArr[$t][] = $GLOBALS['LANG']->sL($GLOBALS['TCA'][$t]['ctrl']['title']);
-                               $codeArr[$t][] = $t;
                                if ($t === 'pages' && $admin->lostPagesList !== '') {
                                        $lostRecordCount = count(explode(',', $admin->lostPagesList));
                                } else {
@@ -433,21 +385,30 @@ class DatabaseIntegrityView {
                                } else {
                                        $theNumberOfRe = '';
                                }
-                               $codeArr[$t][] = $theNumberOfRe;
                                $lr = '';
                                if (is_array($admin->lRecords[$t])) {
                                        foreach ($admin->lRecords[$t] as $data) {
-                                               if (!GeneralUtility::inList($admin->lostPagesList, $data[pid])) {
-                                                       $lr .= '<nobr><strong><a href="' . htmlspecialchars((BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=records&fixLostRecords_table=' . $t . '&fixLostRecords_uid=' . $data['uid'])) . '"><img src="' . $GLOBALS['BACK_PATH'] . 'gfx/required_h.gif" width="10" hspace="3" height="10" border="0" align="top" title="' . $GLOBALS['LANG']->getLL('fixLostRecord') . '"></a>uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</strong></nobr><br>';
+                                               if (!GeneralUtility::inList($admin->lostPagesList, $data['pid'])) {
+                                                       $lr .= '<div class="record"><a href="' . htmlspecialchars((BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=records&fixLostRecords_table=' . $t . '&fixLostRecords_uid=' . $data['uid'])) . '"><img src="' . $GLOBALS['BACK_PATH'] . 'gfx/required_h.gif" width="10" height="10" title="' . $lang->getLL('fixLostRecord') . '"></a>uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
                                                } else {
-                                                       $lr .= '<nobr><img src="' . $GLOBALS['BACK_PATH'] . 'clear.gif" width="16" height="1" border="0"><font color="Gray">uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</font></nobr><br>';
+                                                       $lr .= '<div class="record-noicon">uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
                                                }
                                        }
                                }
-                               $codeArr[$t][] = $lr;
+                               $tableStatistic[$t] = array(
+                                       'icon' => IconUtility::getSpriteIconForRecord($t, array()),
+                                       'title' => $lang->sL($GLOBALS['TCA'][$t]['ctrl']['title']),
+                                       'count' => $theNumberOfRe,
+                                       'lostRecords' => $lr
+                               );
                        }
-                       $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('tables'), $this->doc->table($codeArr), FALSE, TRUE);
                }
+
+               $this->view->assignMultiple(array(
+                       'pages' => $pageStatistic,
+                       'doktypes' => $doktypes,
+                       'tables' => $tableStatistic
+               ));
        }
 
        /**
@@ -456,47 +417,21 @@ class DatabaseIntegrityView {
         * @return void
         */
        public function func_relations() {
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('relations'));
-               $admin = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck::class);
+               $admin = GeneralUtility::makeInstance(DatabaseIntegrityCheck::class);
                $admin->genTree_makeHTML = 0;
                $admin->backPath = $GLOBALS['BACK_PATH'];
                $fkey_arrays = $admin->getGroupFields('');
                $admin->selectNonEmptyRecordsWithFkeys($fkey_arrays);
                $fileTest = $admin->testFileRefs();
 
-               $code = '';
-               if (is_array($fileTest['noReferences'])) {
-                       foreach ($fileTest['noReferences'] as $val) {
-                               $code .= '<nobr>' . $val[0] . '/<strong>' . $val[1] . '</strong></nobr><br>';
-                       }
-               } else {
-                       $code = '<p>' . $GLOBALS['LANG']->getLL('no_files_found') . '</p>';
-               }
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('files_no_ref'), $code, TRUE, TRUE);
-
-               $code = '';
-               if (is_array($fileTest['moreReferences'])) {
-                       foreach ($fileTest['moreReferences'] as $val) {
-                               $code .= '<nobr>' . $val[0] . '/<strong>' . $val[1] . '</strong>: ' . $val[2] . ' ' . $GLOBALS['LANG']->getLL('references') . '</nobr><br>' . $val[3] . '<br><br>';
-                       }
-               } else {
-                       $code = '<p>' . $GLOBALS['LANG']->getLL('no_files_found') . '</p>';
-               }
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('files_many_ref'), $code, TRUE, TRUE);
-
-               $code = '';
                if (is_array($fileTest['noFile'])) {
                        ksort($fileTest['noFile']);
-                       foreach ($fileTest['noFile'] as $val) {
-                               $code .= '<nobr>' . $val[0] . '/<strong>' . $val[1] . '</strong> ' . $GLOBALS['LANG']->getLL('isMissing') . ' </nobr><br>' . $GLOBALS['LANG']->getLL('referencedFrom') . $val[2] . '<br><br>';
-                       }
-               } else {
-                       $code = '<p>' . $GLOBALS['LANG']->getLL('no_files_found') . '</p>';
                }
-
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('files_no_file'), $code, TRUE, TRUE);
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('select_db'), $admin->testDBRefs($admin->checkSelectDBRefs), TRUE, TRUE);
-               $this->content .= $this->doc->section($GLOBALS['LANG']->getLL('group_db'), $admin->testDBRefs($admin->checkGroupDBRefs), TRUE, TRUE);
+               $this->view->assignMultiple(array(
+                       'files' =>  $fileTest,
+                       'select_db' => $admin->testDBRefs($admin->checkSelectDBRefs),
+                       'group_db' => $admin->testDBRefs($admin->checkGroupDBRefs)
+               ));
        }
 
 }
index 0653a99..0a9ca45 100644 (file)
                        <trans-unit id="writeMessageFailed" xml:space="preserve">
                                <source>Write to configuration file failed (%s)!</source>
                        </trans-unit>
+                       <trans-unit id="menuTitle" xml:space="preserve">
+                               <source>Overview</source>
+                       </trans-unit>
+                       <trans-unit id="recordStatistics" xml:space="preserve">
+                               <source>Record Statistics</source>
+                       </trans-unit>
+                       <trans-unit id="totalPageTree" xml:space="preserve">
+                               <source>Total Page Tree</source>
+                       </trans-unit>
+                       <trans-unit id="databaseRelations" xml:space="preserve">
+                               <source>Database Relations</source>
+                       </trans-unit>
+                       <trans-unit id="fullSearch" xml:space="preserve">
+                               <source>Full search</source>
+                       </trans-unit>
+                       <trans-unit id="findFilename" xml:space="preserve">
+                               <source>Find filename</source>
+                       </trans-unit>
+                       <trans-unit id="manageRefIndex" xml:space="preserve">
+                               <source>Manage Reference Index</source>
+                       </trans-unit>
+                       <trans-unit id="rawSearch" xml:space="preserve">
+                               <source>Raw search in all fields</source>
+                       </trans-unit>
+                       <trans-unit id="advancedQuery" xml:space="preserve">
+                               <source>Advanced query</source>
+                       </trans-unit>
+                       <trans-unit id="selectRecords" xml:space="preserve">
+                               <source>Select records</source>
+                       </trans-unit>
+                       <trans-unit id="countResults" xml:space="preserve">
+                               <source>Count results</source>
+                       </trans-unit>
+                       <trans-unit id="explainQuery" xml:space="preserve">
+                               <source>Explain query</source>
+                       </trans-unit>
+                       <trans-unit id="csvExport" xml:space="preserve">
+                               <source>CSV Export</source>
+                       </trans-unit>
+                       <trans-unit id="xmlExport" xml:space="preserve">
+                               <source>XML Export</source>
+                       </trans-unit>
+                       <trans-unit id="clickToUpdateRefIndex" xml:space="preserve">
+                               <source>Click here to update reference index</source>
+                       </trans-unit>
+                       <trans-unit id="updateNow" xml:space="preserve">
+                               <source>Update now!</source>
+                       </trans-unit>
+                       <trans-unit id="clickToTestRefIndex" xml:space="preserve">
+                               <source>Click here to test reference index</source>
+                       </trans-unit>
+                       <trans-unit id="referenceIndex_description" xml:space="preserve">
+                               <source>TYPO3's reference index keeps track of the relations between records. As it can happen that the reference index contains outdated values, you can check and update it here.</source>
+                       </trans-unit>
+                       <trans-unit id="referenceIndex_buttonUpdate" xml:space="preserve">
+                               <source>Update reference index</source>
+                       </trans-unit>
+                       <trans-unit id="referenceIndex_buttonCheck" xml:space="preserve">
+                               <source>Check reference index</source>
+                       </trans-unit>
+                       <trans-unit id="checkNow" xml:space="preserve">
+                               <source>Check now!</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_headline" xml:space="preserve">
+                               <source>Using the command line interface</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript" xml:space="preserve">
+                               <source>You can also run the check as a shell script using CLI if the processing takes longer than the PHP max_execution_time allows.</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_check_description" xml:space="preserve">
+                               <source>To check the reference index use</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_check_example" xml:space="preserve">
+                               <source>php /path/to/your/typo3/cli_dispatch.phpsh lowlevel_refindex -c</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_update_description" xml:space="preserve">
+                               <source>To update the reference index use</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_update_example" xml:space="preserve">
+                               <source>php /path/to/your/typo3/cli_dispatch.phpsh lowlevel_refindex -e</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_more" xml:space="preserve">
+                               <source>Make sure that a BE user with the name _cli_lowlevel exists. For more details see: /path/to/your/typo3/sysext/lowlevel/HOWTO_clean_up_TYPO3_installations.txt</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_information" xml:space="preserve">
+                               <source>If you run these commands from the command line, make sure that a BE user with the name _cli_lowlevel exists.</source>
+                       </trans-unit>
+                       <trans-unit id="checkScript_moreDetails" xml:space="preserve">
+                               <source>For more details see</source>
+                       </trans-unit>
+                       <trans-unit id="updateRefIndex" xml:space="preserve">
+                               <source>Update reference index</source>
+                       </trans-unit>
+                       <trans-unit id="showSQL" xml:space="preserve">
+                               <source>Show SQL parts</source>
+                       </trans-unit>
+                       <trans-unit id="useFormattedStrings" xml:space="preserve">
+                               <source>Use formatted strings, labels and dates instead of original values for results</source>
+                       </trans-unit>
+                       <trans-unit id="dontUseOrigValues" xml:space="preserve">
+                               <source>Don't use original values in brackets as prefix for labelled results</source>
+                       </trans-unit>
+                       <trans-unit id="sortOptions" xml:space="preserve">
+                               <source>Sort selectbox-options for relations by label and not by value</source>
+                       </trans-unit>
+                       <trans-unit id="showDeleted" xml:space="preserve">
+                               <source>Show even deleted entries (with undelete buttons)</source>
+                       </trans-unit>
+                       <trans-unit id="searchOptions" xml:space="preserve">
+                               <source>Search options</source>
+                       </trans-unit>
+                       <trans-unit id="result" xml:space="preserve">
+                               <source>Result</source>
+                       </trans-unit>
+                       <trans-unit id="tables" xml:space="preserve">
+                               <source>Tables</source>
+                       </trans-unit>
+                       <trans-unit id="references" xml:space="preserve">
+                               <source>references</source>
+                       </trans-unit>
+                       <trans-unit id="isMissing" xml:space="preserve">
+                               <source>is missing!</source>
+                       </trans-unit>
+                       <trans-unit id="referencedFrom" xml:space="preserve">
+                               <source>Referenced from</source>
+                       </trans-unit>
+                       <trans-unit id="enterRegexPattern" xml:space="preserve">
+                               <source>Enter regex pattern</source>
+                       </trans-unit>
+                       <trans-unit id="searchButton" xml:space="preserve">
+                               <source>Search</source>
+                       </trans-unit>
+                       <trans-unit id="pattern" xml:space="preserve">
+                               <source>Pattern</source>
+                       </trans-unit>
+                       <trans-unit id="beingChecked" xml:space="preserve">
+                               <source>being checked...</source>
+                       </trans-unit>
+                       <trans-unit id="directories" xml:space="preserve">
+                               <source>Dirs</source>
+                       </trans-unit>
+                       <trans-unit id="directoriesTooDeep" xml:space="preserve">
+                               <source>ERROR: Directories deeper than the following number of levels</source>
+                       </trans-unit>
+                       <trans-unit id="files" xml:space="preserve">
+                               <source>Files</source>
+                       </trans-unit>
+                       <trans-unit id="matchingFiles" xml:space="preserve">
+                               <source>Matching files</source>
+                       </trans-unit>
+                       <trans-unit id="notChecked" xml:space="preserve">
+                               <source>not checked.</source>
+                       </trans-unit>
+                       <trans-unit id="searchingForFilenames" xml:space="preserve">
+                               <source>Searching for filenames</source>
+                       </trans-unit>
+                       <trans-unit id="fixLostRecord" xml:space="preserve">
+                               <source>Click to move this lost record to rootlevel (pid=0)</source>
+                       </trans-unit>
+                       <trans-unit id="doktype" xml:space="preserve">
+                               <source>Document types</source>
+                       </trans-unit>
+                       <trans-unit id="doktype_value" xml:space="preserve">
+                               <source>Document types (value)</source>
+                       </trans-unit>
+                       <trans-unit id="pages" xml:space="preserve">
+                               <source>Pages</source>
+                       </trans-unit>
+                       <trans-unit id="total_pages" xml:space="preserve">
+                               <source>Total number of pages</source>
+                       </trans-unit>
+                       <trans-unit id="deleted_pages" xml:space="preserve">
+                               <source>Marked-deleted pages</source>
+                       </trans-unit>
+                       <trans-unit id="hidden_pages" xml:space="preserve">
+                               <source>Hidden pages</source>
+                       </trans-unit>
+                       <trans-unit id="count" xml:space="preserve">
+                               <source>Count</source>
+                       </trans-unit>
+                       <trans-unit id="label" xml:space="preserve">
+                               <source>Label</source>
+                       </trans-unit>
+                       <trans-unit id="tablename" xml:space="preserve">
+                               <source>Table name</source>
+                       </trans-unit>
+                       <trans-unit id="total_lost" xml:space="preserve">
+                               <source>Records total / lost</source>
+                       </trans-unit>
+                       <trans-unit id="relations" xml:space="preserve">
+                               <source>Relations</source>
+                       </trans-unit>
+                       <trans-unit id="relations_description" xml:space="preserve">
+                               <source>This will analyse the content of the tables and check if there are 'empty' relations between records or if files are missing from their expected position.</source>
+                       </trans-unit>
+                       <trans-unit id="files_many_ref" xml:space="preserve">
+                               <source>Files referenced from more than one record</source>
+                       </trans-unit>
+                       <trans-unit id="no_files_found" xml:space="preserve">
+                               <source>No files found.</source>
+                       </trans-unit>
+                       <trans-unit id="files_no_ref" xml:space="preserve">
+                               <source>Files with no references at all (delete them!)</source>
+                       </trans-unit>
+                       <trans-unit id="files_no_file" xml:space="preserve">
+                               <source>Missing files</source>
+                       </trans-unit>
+                       <trans-unit id="select_db" xml:space="preserve">
+                               <source>Select fields</source>
+                       </trans-unit>
+                       <trans-unit id="group_db" xml:space="preserve">
+                               <source>Group fields</source>
+                       </trans-unit>
+                       <trans-unit id="tree" xml:space="preserve">
+                               <source>The Page Tree</source>
+                       </trans-unit>
+                       <trans-unit id="tree_description" xml:space="preserve">
+                               <source>This shows all pages in the system in one large tree. Beware that this will probably result in a very long document which will also take some time for the server to compute!</source>
+                       </trans-unit>
+                       <trans-unit id="records" xml:space="preserve">
+                               <source>Records Statistics</source>
+                       </trans-unit>
+                       <trans-unit id="records_description" xml:space="preserve">
+                               <source>This shows some statistics for the records in the database. This runs through the entire page-tree and therefore it will also load the server heavily!</source>
+                       </trans-unit>
+                       <trans-unit id="search" xml:space="preserve">
+                               <source>Search whole Database</source>
+                       </trans-unit>
+                       <trans-unit id="search_description" xml:space="preserve">
+                               <source>This searches through all database tables and records for a text string.</source>
+                       </trans-unit>
+                       <trans-unit id="filesearch" xml:space="preserve">
+                               <source>Search all filenames for pattern</source>
+                       </trans-unit>
+                       <trans-unit id="filesearch_description" xml:space="preserve">
+                               <source>Will search recursively for filenames in the PATH_site (subdirs to the website path) matching a certain regex pattern.</source>
+                       </trans-unit>
+                       <trans-unit id="refindex" xml:space="preserve">
+                               <source>Check and update global reference index</source>
+                       </trans-unit>
+                       <trans-unit id="refindex_description" xml:space="preserve">
+                               <source>Allows you to maintain the reference index kept by TYPO3.</source>
+                       </trans-unit>
+                       <trans-unit id="title" xml:space="preserve">
+                               <source>Database integrity check</source>
+                       </trans-unit>
                </body>
        </file>
 </xliff>
diff --git a/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/CustomSearch.html b/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/CustomSearch.html
new file mode 100644 (file)
index 0000000..d66ec3a
--- /dev/null
@@ -0,0 +1,17 @@
+<h1>{f:translate(key:'search')}</h1>
+
+<f:format.raw>{submenu}</f:format.raw>
+<f:if condition="{searchMode} == 'query'">
+       <f:then>
+               <f:format.raw>{queryMaker}</f:format.raw>
+       </f:then>
+       <f:else>
+               <h2>{f:translate(key:'searchOptions')}</h2>
+               <f:format.raw>{searchOptions}</f:format.raw>
+
+               <h2>{f:translate(key:'result')}</h2>
+               <f:format.raw>{results}</f:format.raw>
+       </f:else>
+</f:if>
+
+
diff --git a/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/IntegrityOverview.html b/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/IntegrityOverview.html
new file mode 100644 (file)
index 0000000..2a87e49
--- /dev/null
@@ -0,0 +1,10 @@
+<h1>{f:translate(key:'title')}</h1>
+<dl class="t3-overview-list">
+       <f:for each="{availableFunctions}" as="url" key="name">
+               <dt>
+                       <a href="{url}">
+                               <img src="sysext/lowlevel/Resources/Public/Icons/module-dbint.png" width="16" height="16" title="{f:translate(key:'{name})}'" alt="{f:translate(key:'{name})}'" /> {f:translate(key:'{name}')}
+                       </a></dt>
+               <dd>{f:translate(key:'{name}_description')}</dd>
+       </f:for>
+</dl>
diff --git a/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/RecordStatistics.html b/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/RecordStatistics.html
new file mode 100644 (file)
index 0000000..1238d77
--- /dev/null
@@ -0,0 +1,79 @@
+<h1>{f:translate(key:'records')}</h1>
+
+<h2>{f:translate(key:'pages')}</h2>
+<table class="table table-striped table-hover">
+       <colgroup>
+               <col width="24">
+               <col>
+               <col width="150">
+       </colgroup>
+       <thead>
+       <tr>
+               <th colspan="2"></th>
+               <th>{f:translate(key:'count')}</th>
+       </tr>
+       </thead>
+       <tbody>
+       <f:for each="{pages}" as="item" key="name">
+               <tr>
+                       <td><f:format.raw>{item.icon}</f:format.raw></td>
+                       <td>{f:translate(key:'{name}')}</td>
+                       <td>{item.count}</td>
+               </tr>
+       </f:for>
+       </tbody>
+</table>
+
+<h2>{f:translate(key:'doktype')}</h2>
+<table class="table table-striped table-hover">
+       <colgroup>
+               <col width="24">
+               <col>
+               <col width="150">
+       </colgroup>
+       <thead>
+       <tr>
+               <th></th>
+               <th>{f:translate(key:'doktype_value')}</th>
+               <th>{f:translate(key:'count')}</th>
+       </tr>
+       </thead>
+       <tbody>
+       <f:for each="{doktypes}" as="item">
+               <tr>
+                       <td><f:format.raw>{item.icon}</f:format.raw></td>
+                       <td>{item.title}</td>
+                       <td>{item.count}</td>
+               </tr>
+       </f:for>
+       </tbody>
+</table>
+
+<h2>{f:translate(key:'tables')}</h2>
+<table class="table table-striped table-hover">
+       <colgroup>
+               <col width="24">
+               <col>
+               <col width="150">
+       </colgroup>
+       <thead>
+       <tr>
+               <th></th>
+               <th>{f:translate(key:'label')}</th>
+               <th>{f:translate(key:'tablename')}</th>
+               <th>{f:translate(key:'total_lost')}</th>
+               <th></th>
+       </tr>
+       </thead>
+       <tbody>
+       <f:for each="{tables}" key="name" as="item">
+               <tr>
+                       <td><f:format.raw>{item.icon}</f:format.raw></td>
+                       <td>{item.title}</td>
+                       <td>{name}</td>
+                       <td>{item.count}</td>
+                       <td><f:format.raw>{item.lostRecords}</f:format.raw></td>
+               </tr>
+       </f:for>
+       </tbody>
+</table>
diff --git a/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/ReferenceIndex.html b/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/ReferenceIndex.html
new file mode 100644 (file)
index 0000000..07b90a3
--- /dev/null
@@ -0,0 +1,27 @@
+<h1>{f:translate(key:'manageRefIndex')}</h1>
+<p class="lead">{f:translate(key:'referenceIndex_description')}</p>
+
+<f:format.raw>{content}</f:format.raw>
+
+<div>
+       <input class="btn btn-default" type="submit" name="_check" value="{f:translate(key:'referenceIndex_buttonCheck')}" />
+       <input class="btn btn-default" type="submit" name="_update" value="{f:translate(key:'referenceIndex_buttonUpdate')}" />
+</div><br /><br />
+
+<h2>{f:translate(key:'checkScript_headline')}</h2>
+<p>{f:translate(key:'checkScript')}</p>
+
+<h3>{f:translate(key:'checkScript_check_description')}</h3><p>
+       <code>php {PATH_typo3} cli_dispatch.phpsh lowlevel_refindex -c</code></p>
+
+<h3>{f:translate(key:'checkScript_update_description')}</h3><p>
+       <code>php {PATH_typo3} cli_dispatch.phpsh lowlevel_refindex -e</code></p>
+<div class="alert alert-info">
+       <div class="message-body">
+               {f:translate(key:'checkScript_information')}
+       </div>
+</div>
+
+<p>{f:translate(key:'checkScript_moreDetails')} <br>
+       <a href="sysext/lowlevel/HOWTO_clean_up_TYPO3_installations.txt" target="_new">{PATH_typo3}sysext/lowlevel/HOWTO_clean_up_TYPO3_installations.txt</a>
+</p>
diff --git a/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/Relations.html b/typo3/sysext/lowlevel/Resources/Private/Templates/Backend/Relations.html
new file mode 100644 (file)
index 0000000..f48db36
--- /dev/null
@@ -0,0 +1,49 @@
+<h1>{f:translate(key:'relations')}</h1>
+
+<h2>{f:translate(key:'files_no_ref')}</h2>
+<f:if condition="{files.noReferences}">
+       <f:then>
+               <f:for each="{files.noReferences}" as="item">
+                       <nobr>{item.0}/<strong>{item.1}</strong></nobr>
+                       <br>
+               </f:for>
+       </f:then>
+       <f:else>
+               <p>{f:translate(key:'no_files_found')}</p>
+       </f:else>
+</f:if>
+
+<h2>{f:translate(key:'files_many_ref')}</h2>
+<f:if condition="{files.moreReferences}">
+       <f:then>
+               <f:for each="{files.moreReferences}" as="item">
+                       <nobr>{item.0}/<strong>{item.1}</strong>: {item.2} {f:translate(key:'references')}
+                       </nobr>
+                       <br>{item.3}<br><br>
+               </f:for>
+       </f:then>
+       <f:else>
+               <p>{f:translate(key:'no_files_found')}</p>
+       </f:else>
+</f:if>
+
+<h2>{f:translate(key:'files_no_file')}</h2>
+<f:if condition="{files.noFile}">
+       <f:then>
+               <f:for each="{files.noFile}" as="item">
+                       <nobr>{item.0}/<strong>{item.1}</strong> {f:translate(key:'isMissing')}
+                       </nobr>
+                       <br>{f:translate(key:'referencedFrom')} {item.2}<br><br>
+               </f:for>
+       </f:then>
+       <f:else>
+               <p>{f:translate(key:'no_files_found')}</p>
+       </f:else>
+</f:if>
+
+
+<h2>{f:translate(key:'select_db')}</h2>
+<f:format.raw>{select_db}</f:format.raw>
+
+<h2>{f:translate(key:'group_db')}</h2>
+<f:format.raw>{group_db}</f:format.raw>
index 884f8de..18d65c2 100644 (file)
@@ -1,3 +1,19 @@
 #lowlevel-config {
        margin-bottom: 20px;
-}
\ No newline at end of file
+}
+.record {
+       font-weight: bold;
+       white-space: nowrap;
+}
+
+.record img {
+       border: none;
+       padding: 0 3px;
+       vertical-align: top;
+}
+
+.record-noicon {
+       padding-left: 16px;
+       color: grey;
+       white-space: nowrap;
+}
index 0c56818..5389c30 100644 (file)
                        <trans-unit id="menu" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>[ MENU ]</source>
                        </trans-unit>
-                       <trans-unit id="menuTitle" xml:space="preserve">
+                       <trans-unit id="menuTitle" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Overview</source>
                        </trans-unit>
-                       <trans-unit id="recordStatistics" xml:space="preserve">
+                       <trans-unit id="recordStatistics" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Record Statistics</source>
                        </trans-unit>
-                       <trans-unit id="totalPageTree" xml:space="preserve">
+                       <trans-unit id="totalPageTree" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Total Page Tree</source>
                        </trans-unit>
-                       <trans-unit id="databaseRelations" xml:space="preserve">
+                       <trans-unit id="databaseRelations" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Database Relations</source>
                        </trans-unit>
-                       <trans-unit id="fullSearch" xml:space="preserve">
+                       <trans-unit id="fullSearch" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Full search</source>
                        </trans-unit>
-                       <trans-unit id="findFilename" xml:space="preserve">
+                       <trans-unit id="findFilename" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Find filename</source>
                        </trans-unit>
-                       <trans-unit id="manageRefIndex" xml:space="preserve">
+                       <trans-unit id="manageRefIndex" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Manage Reference Index</source>
                        </trans-unit>
-                       <trans-unit id="rawSearch" xml:space="preserve">
+                       <trans-unit id="rawSearch" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Raw search in all fields</source>
                        </trans-unit>
-                       <trans-unit id="advancedQuery" xml:space="preserve">
+                       <trans-unit id="advancedQuery" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Advanced query</source>
                        </trans-unit>
-                       <trans-unit id="selectRecords" xml:space="preserve">
+                       <trans-unit id="selectRecords" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Select records</source>
                        </trans-unit>
-                       <trans-unit id="countResults" xml:space="preserve">
+                       <trans-unit id="countResults" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Count results</source>
                        </trans-unit>
-                       <trans-unit id="explainQuery" xml:space="preserve">
+                       <trans-unit id="explainQuery" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Explain query</source>
                        </trans-unit>
-                       <trans-unit id="csvExport" xml:space="preserve">
+                       <trans-unit id="csvExport" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>CSV Export</source>
                        </trans-unit>
-                       <trans-unit id="xmlExport" xml:space="preserve">
+                       <trans-unit id="xmlExport" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>XML Export</source>
                        </trans-unit>
-                       <trans-unit id="clickToUpdateRefIndex" xml:space="preserve">
+                       <trans-unit id="clickToUpdateRefIndex" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Click here to update reference index</source>
                        </trans-unit>
-                       <trans-unit id="updateNow" xml:space="preserve">
+                       <trans-unit id="updateNow" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Update now!</source>
                        </trans-unit>
-                       <trans-unit id="clickToTestRefIndex" xml:space="preserve">
+                       <trans-unit id="clickToTestRefIndex" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Click here to test reference index</source>
                        </trans-unit>
-                       <trans-unit id="referenceIndex_description" xml:space="preserve">
+                       <trans-unit id="referenceIndex_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>TYPO3's reference index keeps track of the relations between records. As it can happen that the reference index contains outdated values, you can check and update it here.</source>
                        </trans-unit>
-                       <trans-unit id="referenceIndex_buttonUpdate" xml:space="preserve">
+                       <trans-unit id="referenceIndex_buttonUpdate" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Update reference index</source>
                        </trans-unit>
-                       <trans-unit id="referenceIndex_buttonCheck" xml:space="preserve">
+                       <trans-unit id="referenceIndex_buttonCheck" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Check reference index</source>
                        </trans-unit>
-                       <trans-unit id="checkNow" xml:space="preserve">
+                       <trans-unit id="checkNow" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Check now!</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_headline" xml:space="preserve">
+                       <trans-unit id="checkScript_headline" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Using the command line interface</source>
                        </trans-unit>
-                       <trans-unit id="checkScript" xml:space="preserve">
+                       <trans-unit id="checkScript" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>You can also run the check as a shell script using CLI if the processing takes longer than the PHP max_execution_time allows.</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_check_description" xml:space="preserve">
+                       <trans-unit id="checkScript_check_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>To check the reference index use</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_check_example" xml:space="preserve">
+                       <trans-unit id="checkScript_check_example" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>php /path/to/your/typo3/cli_dispatch.phpsh lowlevel_refindex -c</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_update_description" xml:space="preserve">
+                       <trans-unit id="checkScript_update_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>To update the reference index use</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_update_example" xml:space="preserve">
+                       <trans-unit id="checkScript_update_example" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>php /path/to/your/typo3/cli_dispatch.phpsh lowlevel_refindex -e</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_more" xml:space="preserve">
+                       <trans-unit id="checkScript_more" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Make sure that a BE user with the name _cli_lowlevel exists. For more details see: /path/to/your/typo3/sysext/lowlevel/HOWTO_clean_up_TYPO3_installations.txt</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_information" xml:space="preserve">
+                       <trans-unit id="checkScript_information" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>If you run these commands from the command line, make sure that a BE user with the name _cli_lowlevel exists.</source>
                        </trans-unit>
-                       <trans-unit id="checkScript_moreDetails" xml:space="preserve">
+                       <trans-unit id="checkScript_moreDetails" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>For more details see</source>
                        </trans-unit>
-                       <trans-unit id="updateRefIndex" xml:space="preserve">
+                       <trans-unit id="updateRefIndex" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Update reference index</source>
                        </trans-unit>
-                       <trans-unit id="showSQL" xml:space="preserve">
+                       <trans-unit id="showSQL" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Show SQL parts</source>
                        </trans-unit>
-                       <trans-unit id="useFormattedStrings" xml:space="preserve">
+                       <trans-unit id="useFormattedStrings" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Use formatted strings, labels and dates instead of original values for results</source>
                        </trans-unit>
-                       <trans-unit id="dontUseOrigValues" xml:space="preserve">
+                       <trans-unit id="dontUseOrigValues" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Don't use original values in brackets as prefix for labelled results</source>
                        </trans-unit>
-                       <trans-unit id="sortOptions" xml:space="preserve">
+                       <trans-unit id="sortOptions" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Sort selectbox-options for relations by label and not by value</source>
                        </trans-unit>
-                       <trans-unit id="showDeleted" xml:space="preserve">
+                       <trans-unit id="showDeleted" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Show even deleted entries (with undelete buttons)</source>
                        </trans-unit>
-                       <trans-unit id="searchOptions" xml:space="preserve">
+                       <trans-unit id="searchOptions" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Search options</source>
                        </trans-unit>
-                       <trans-unit id="result" xml:space="preserve">
+                       <trans-unit id="result" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Result</source>
                        </trans-unit>
-                       <trans-unit id="tables" xml:space="preserve">
+                       <trans-unit id="tables" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Tables</source>
                        </trans-unit>
-                       <trans-unit id="references" xml:space="preserve">
+                       <trans-unit id="references" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>references</source>
                        </trans-unit>
-                       <trans-unit id="isMissing" xml:space="preserve">
+                       <trans-unit id="isMissing" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>is missing!</source>
                        </trans-unit>
-                       <trans-unit id="referencedFrom" xml:space="preserve">
+                       <trans-unit id="referencedFrom" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Referenced from</source>
                        </trans-unit>
-                       <trans-unit id="enterRegexPattern" xml:space="preserve">
+                       <trans-unit id="enterRegexPattern" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Enter regex pattern</source>
                        </trans-unit>
-                       <trans-unit id="searchButton" xml:space="preserve">
+                       <trans-unit id="searchButton" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Search</source>
                        </trans-unit>
-                       <trans-unit id="pattern" xml:space="preserve">
+                       <trans-unit id="pattern" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Pattern</source>
                        </trans-unit>
-                       <trans-unit id="beingChecked" xml:space="preserve">
+                       <trans-unit id="beingChecked" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>being checked...</source>
                        </trans-unit>
-                       <trans-unit id="directories" xml:space="preserve">
+                       <trans-unit id="directories" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Dirs</source>
                        </trans-unit>
-                       <trans-unit id="directoriesTooDeep" xml:space="preserve">
+                       <trans-unit id="directoriesTooDeep" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>ERROR: Directories deeper than the following number of levels</source>
                        </trans-unit>
-                       <trans-unit id="files" xml:space="preserve">
+                       <trans-unit id="files" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Files</source>
                        </trans-unit>
-                       <trans-unit id="matchingFiles" xml:space="preserve">
+                       <trans-unit id="matchingFiles" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Matching files</source>
                        </trans-unit>
-                       <trans-unit id="notChecked" xml:space="preserve">
+                       <trans-unit id="notChecked" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>not checked.</source>
                        </trans-unit>
-                       <trans-unit id="searchingForFilenames" xml:space="preserve">
+                       <trans-unit id="searchingForFilenames" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Searching for filenames</source>
                        </trans-unit>
-                       <trans-unit id="fixLostRecord" xml:space="preserve">
+                       <trans-unit id="fixLostRecord" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Click to move this lost record to rootlevel (pid=0)</source>
                        </trans-unit>
-                       <trans-unit id="doktype" xml:space="preserve">
+                       <trans-unit id="doktype" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Document types</source>
                        </trans-unit>
-                       <trans-unit id="doktype_value" xml:space="preserve">
+                       <trans-unit id="doktype_value" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Document types (value)</source>
                        </trans-unit>
-                       <trans-unit id="pages" xml:space="preserve">
+                       <trans-unit id="pages" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Pages</source>
                        </trans-unit>
-                       <trans-unit id="total_pages" xml:space="preserve">
+                       <trans-unit id="total_pages" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Total number of pages</source>
                        </trans-unit>
-                       <trans-unit id="deleted_pages" xml:space="preserve">
+                       <trans-unit id="deleted_pages" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Marked-deleted pages</source>
                        </trans-unit>
-                       <trans-unit id="hidden_pages" xml:space="preserve">
+                       <trans-unit id="hidden_pages" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Hidden pages</source>
                        </trans-unit>
-                       <trans-unit id="count" xml:space="preserve">
+                       <trans-unit id="count" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Count</source>
                        </trans-unit>
-                       <trans-unit id="label" xml:space="preserve">
+                       <trans-unit id="label" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Label</source>
                        </trans-unit>
-                       <trans-unit id="tablename" xml:space="preserve">
+                       <trans-unit id="tablename" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Table name</source>
                        </trans-unit>
-                       <trans-unit id="total_lost" xml:space="preserve">
+                       <trans-unit id="total_lost" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Records total / lost</source>
                        </trans-unit>
-                       <trans-unit id="relations" xml:space="preserve">
+                       <trans-unit id="relations" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Relations</source>
                        </trans-unit>
-                       <trans-unit id="relations_description" xml:space="preserve">
+                       <trans-unit id="relations_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>This will analyse the content of the tables and check if there are 'empty' relations between records or if files are missing from their expected position.</source>
                        </trans-unit>
-                       <trans-unit id="files_many_ref" xml:space="preserve">
+                       <trans-unit id="files_many_ref" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Files referenced from more than one record</source>
                        </trans-unit>
-                       <trans-unit id="no_files_found" xml:space="preserve">
+                       <trans-unit id="no_files_found" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>No files found.</source>
                        </trans-unit>
-                       <trans-unit id="files_no_ref" xml:space="preserve">
+                       <trans-unit id="files_no_ref" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Files with no references at all (delete them!)</source>
                        </trans-unit>
-                       <trans-unit id="files_no_file" xml:space="preserve">
+                       <trans-unit id="files_no_file" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Missing files</source>
                        </trans-unit>
-                       <trans-unit id="select_db" xml:space="preserve">
+                       <trans-unit id="select_db" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Select fields</source>
                        </trans-unit>
-                       <trans-unit id="group_db" xml:space="preserve">
+                       <trans-unit id="group_db" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Group fields</source>
                        </trans-unit>
-                       <trans-unit id="tree" xml:space="preserve">
+                       <trans-unit id="tree" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>The Page Tree</source>
                        </trans-unit>
-                       <trans-unit id="tree_description" xml:space="preserve">
+                       <trans-unit id="tree_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>This shows all pages in the system in one large tree. Beware that this will probably result in a very long document which will also take some time for the server to compute!</source>
                        </trans-unit>
-                       <trans-unit id="records" xml:space="preserve">
+                       <trans-unit id="records" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Records Statistics</source>
                        </trans-unit>
-                       <trans-unit id="records_description" xml:space="preserve">
+                       <trans-unit id="records_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>This shows some statistics for the records in the database. This runs through the entire page-tree and therefore it will also load the server heavily!</source>
                        </trans-unit>
-                       <trans-unit id="search" xml:space="preserve">
+                       <trans-unit id="search" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Search whole Database</source>
                        </trans-unit>
-                       <trans-unit id="search_description" xml:space="preserve">
+                       <trans-unit id="search_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>This searches through all database tables and records for a text string.</source>
                        </trans-unit>
-                       <trans-unit id="filesearch" xml:space="preserve">
+                       <trans-unit id="filesearch" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Search all filenames for pattern</source>
                        </trans-unit>
-                       <trans-unit id="filesearch_description" xml:space="preserve">
+                       <trans-unit id="filesearch_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Will search recursively for filenames in the PATH_site (subdirs to the website path) matching a certain regex pattern.</source>
                        </trans-unit>
-                       <trans-unit id="refindex" xml:space="preserve">
+                       <trans-unit id="refindex" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Check and update global reference index</source>
                        </trans-unit>
-                       <trans-unit id="refindex_description" xml:space="preserve">
+                       <trans-unit id="refindex_description" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Allows you to maintain the reference index kept by TYPO3.</source>
                        </trans-unit>
-                       <trans-unit id="title" xml:space="preserve">
+                       <trans-unit id="title" xml:space="preserve" deprecated="Unused since CMS 7">
                                <source>Database integrity check</source>
                        </trans-unit>
                </body>