[CLEANUP] Cleanup EXT:recycler 04/33904/8
authorWouter Wolters <typo3@wouterwolters.nl>
Fri, 7 Nov 2014 19:37:49 +0000 (20:37 +0100)
committerStefan Neufeind <typo3.neufeind@speedpartner.de>
Sat, 8 Nov 2014 21:55:19 +0000 (22:55 +0100)
This patch solves normal cleanup tasks:

* Correcting phpDoc
* Adding missing phpDocs
* Using short classnames
* Removing unused variables and parameters

Releases: master
Resolves: #62698
Change-Id: I12409727c8839a9823bb5664d3cdcf6ee2c2133e
Reviewed-on: http://review.typo3.org/33904
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
typo3/sysext/recycler/Classes/Controller/DeletedRecordsController.php
typo3/sysext/recycler/Classes/Controller/RecyclerAjaxController.php
typo3/sysext/recycler/Classes/Controller/RecyclerModuleController.php
typo3/sysext/recycler/Classes/Domain/Model/DeletedRecords.php
typo3/sysext/recycler/Classes/Domain/Model/Tables.php
typo3/sysext/recycler/Classes/Utility/RecyclerUtility.php

index 920faaf..7471cf5 100644 (file)
@@ -15,6 +15,7 @@ namespace TYPO3\CMS\Recycler\Controller;
  */
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Recycler\Utility\RecyclerUtility;
 
 /**
  * Deleted Records View
@@ -25,11 +26,23 @@ use TYPO3\CMS\Backend\Utility\BackendUtility;
 class DeletedRecordsController {
 
        /**
+        * @var \TYPO3\CMS\Lang\LanguageService
+        */
+       protected $languageService;
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               $this->languageService = $GLOBALS['LANG'];
+       }
+
+       /**
         * Transforms the rows for the deleted Records into the Array View necessary for ExtJS Ext.data.ArrayReader
         *
-        * @param array $rows Array with table as key and array with all deleted rows
-        * @param int $totalDeleted: Number of deleted records in total, for PagingToolbar
-        * @return string JSON Array
+        * @param array $deletedRowsArray Array with table as key and array with all deleted rows
+        * @param int $totalDeleted Number of deleted records in total, for PagingToolbar
+        * @return string JSON array
         */
        public function transform($deletedRowsArray, $totalDeleted) {
                $total = 0;
@@ -50,10 +63,10 @@ class DeletedRecordsController {
                                                'tstamp' => BackendUtility::datetime($row[$GLOBALS['TCA'][$table]['ctrl']['tstamp']]),
                                                'owner' => htmlspecialchars($backendUser['username']),
                                                'owner_uid' => $row[$GLOBALS['TCA'][$table]['ctrl']['cruser_id']],
-                                               'tableTitle' => \TYPO3\CMS\Recycler\Utility\RecyclerUtility::getUtf8String($GLOBALS['LANG']->sL($GLOBALS['TCA'][$table]['ctrl']['title'])),
-                                               'title' => htmlspecialchars(\TYPO3\CMS\Recycler\Utility\RecyclerUtility::getUtf8String(
+                                               'tableTitle' => RecyclerUtility::getUtf8String($this->languageService->sL($GLOBALS['TCA'][$table]['ctrl']['title'])),
+                                               'title' => htmlspecialchars(RecyclerUtility::getUtf8String(
                                                                BackendUtility::getRecordTitle($table, $row))),
-                                               'path' => \TYPO3\CMS\Recycler\Utility\RecyclerUtility::getRecordPath($row['pid'])
+                                               'path' => RecyclerUtility::getRecordPath($row['pid'])
                                        );
                                }
                        }
@@ -61,5 +74,4 @@ class DeletedRecordsController {
                $jsonArray['total'] = $totalDeleted;
                return json_encode($jsonArray);
        }
-
 }
\ No newline at end of file
index 99fa4ad..ffbc313 100644 (file)
@@ -68,7 +68,7 @@ class RecyclerAjaxController {
                // check params
                if (!is_string($this->command)) {
                        // @TODO make devlog output
-                       return FALSE;
+                       return;
                }
                // Create content
                $this->createContent();
@@ -80,7 +80,6 @@ class RecyclerAjaxController {
         * @return void
         */
        protected function createContent() {
-               $str = '';
                switch ($this->command) {
                        case 'getDeletedRecords':
                                $table = GeneralUtility::_GP('table') ? GeneralUtility::_GP('table') : GeneralUtility::_GP('tableDefault');
@@ -90,17 +89,20 @@ class RecyclerAjaxController {
                                $startUid = GeneralUtility::_GP('startUid') ? GeneralUtility::_GP('startUid') : '';
                                $depth = GeneralUtility::_GP('depth') ? GeneralUtility::_GP('depth') : '';
                                $this->setDataInSession('tableSelection', $table);
+                               /* @var $model \TYPO3\CMS\Recycler\Domain\Model\DeletedRecords */
                                $model = GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Domain\\Model\\DeletedRecords');
                                $model->loadData($startUid, $table, $depth, $start . ',' . $limit, $filter);
                                $deletedRowsArray = $model->getDeletedRows();
                                $model = GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Domain\\Model\\DeletedRecords');
                                $totalDeleted = $model->getTotalCount($startUid, $table, $depth, $filter);
                                // load view
+                               /* @var $view \TYPO3\CMS\Recycler\Controller\DeletedRecordsController */
                                $view = GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Controller\\DeletedRecordsController');
                                $str = $view->transform($deletedRowsArray, $totalDeleted);
                                break;
                        case 'doDelete':
                                $str = FALSE;
+                               /* @var $model \TYPO3\CMS\Recycler\Domain\Model\DeletedRecords */
                                $model = GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Domain\\Model\\DeletedRecords');
                                if ($model->deleteData($this->data)) {
                                        $str = TRUE;
@@ -109,6 +111,7 @@ class RecyclerAjaxController {
                        case 'doUndelete':
                                $str = FALSE;
                                $recursive = GeneralUtility::_GP('recursive');
+                               /* @var $model \TYPO3\CMS\Recycler\Domain\Model\DeletedRecords */
                                $model = GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Domain\\Model\\DeletedRecords');
                                if ($model->undeleteData($this->data, $recursive)) {
                                        $str = TRUE;
@@ -118,8 +121,9 @@ class RecyclerAjaxController {
                                $depth = GeneralUtility::_GP('depth') ? GeneralUtility::_GP('depth') : 0;
                                $startUid = GeneralUtility::_GP('startUid') ? GeneralUtility::_GP('startUid') : '';
                                $this->setDataInSession('depthSelection', $depth);
+                               /* @var $model \TYPO3\CMS\Recycler\Domain\Model\Tables */
                                $model = GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Domain\\Model\\Tables');
-                               $str = $model->getTables('json', 1, $startUid, $depth);
+                               $str = $model->getTables('json', TRUE, $startUid, $depth);
                                break;
                        default:
                                $str = 'No command was recognized.';
@@ -144,8 +148,9 @@ class RecyclerAjaxController {
         * @return void
         */
        protected function setDataInSession($identifier, $data) {
-               $GLOBALS['BE_USER']->uc['tx_recycler'][$identifier] = $data;
-               $GLOBALS['BE_USER']->writeUC();
+               /* @var $beUser \TYPO3\CMS\Core\Authentication\BackendUserAuthentication */
+               $beUser = $GLOBALS['BE_USER'];
+               $beUser->uc['tx_recycler'][$identifier] = $data;
+               $beUser->writeUC();
        }
-
 }
index 86e7146..2b3d3ee 100644 (file)
@@ -15,6 +15,8 @@ namespace TYPO3\CMS\Recycler\Controller;
  */
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * Module 'Recycler' for the 'recycler' extension.
@@ -59,11 +61,24 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
        protected $pageRenderer;
 
        /**
+        * @var \TYPO3\CMS\Core\Authentication\BackendUserAuthentication
+        */
+       protected $backendUser;
+
+       /**
+        * @var \TYPO3\CMS\Lang\LanguageService
+        */
+       protected $languageService;
+
+       /**
         * Constructor
         */
        public function __construct() {
-               $GLOBALS['LANG']->includeLLFile('EXT:recycler/mod1/locallang.xlf');
-               $GLOBALS['BE_USER']->modAccess($GLOBALS['MCONF'], TRUE);
+               $this->languageService = $GLOBALS['LANG'];
+               $this->languageService->includeLLFile('EXT:recycler/mod1/locallang.xlf');
+
+               $this->backendUser = $GLOBALS['BE_USER'];
+               $this->backendUser->modAccess($GLOBALS['MCONF'], TRUE);
        }
 
        /**
@@ -73,20 +88,20 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
         */
        public function initialize() {
                parent::init();
-               $this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
-               $this->doc->setModuleTemplate(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('recycler') . 'mod1/mod_template.html');
+               $this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
+               $this->doc->setModuleTemplate(ExtensionManagementUtility::extPath('recycler') . 'mod1/mod_template.html');
                $this->doc->backPath = $GLOBALS['BACK_PATH'];
                $this->doc->setExtDirectStateProvider();
                $this->pageRenderer = $this->doc->getPageRenderer();
-               $this->relativePath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('recycler');
+               $this->relativePath = ExtensionManagementUtility::extRelPath('recycler');
                $this->pageRecord = BackendUtility::readPageAccess($this->id, $this->perms_clause);
                $this->isAccessibleForCurrentUser = $this->id && is_array($this->pageRecord) || !$this->id && $this->isCurrentUserAdmin();
                //don't access in workspace
-               if ($GLOBALS['BE_USER']->workspace !== 0) {
+               if ($this->backendUser->workspace !== 0) {
                        $this->isAccessibleForCurrentUser = FALSE;
                }
                //read configuration
-               $modTS = $GLOBALS['BE_USER']->getTSConfig('mod.recycler');
+               $modTS = $this->backendUser->getTSConfig('mod.recycler');
                if ($this->isCurrentUserAdmin()) {
                        $this->allowDelete = TRUE;
                } else {
@@ -103,8 +118,8 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
         * @return void
         */
        public function render() {
-               $this->content .= $this->doc->header($GLOBALS['LANG']->getLL('title'));
-               $this->content .= '<p class="lead">' . $GLOBALS['LANG']->getLL('description') . '</p>';
+               $this->content .= $this->doc->header($this->languageService->getLL('title'));
+               $this->content .= '<p class="lead">' . $this->languageService->getLL('description') . '</p>';
                if ($this->isAccessibleForCurrentUser) {
                        $this->loadHeaderData();
                        // div container for renderTo
@@ -123,7 +138,7 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
        public function flush() {
                $content = $this->doc->moduleBody($this->pageRecord, $this->getDocHeaderButtons(), $this->getTemplateMarkers());
                // Renders the module page
-               $content = $this->doc->render($GLOBALS['LANG']->getLL('title'), $content);
+               $content = $this->doc->render($this->languageService->getLL('title'), $content);
                $this->content = NULL;
                $this->doc = NULL;
                echo $content;
@@ -135,7 +150,7 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
         * @return bool Whether the current user is admin
         */
        protected function isCurrentUserAdmin() {
-               return (bool)$GLOBALS['BE_USER']->user['admin'];
+               return (bool)$this->backendUser->user['admin'];
        }
 
        /**
@@ -154,7 +169,7 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
                $this->pageRenderer->addInlineLanguageLabelArray($this->getJavaScriptLabels());
                // Load Recycler JavaScript:
                // Load Plugins
-               $uxPath = $this->doc->backpath . 'js/extjs/ux/';
+               $uxPath = $this->doc->backPath . 'js/extjs/ux/';
                $this->pageRenderer->addJsFile($uxPath . 'Ext.grid.RowExpander.js');
                $this->pageRenderer->addJsFile($uxPath . 'Ext.app.SearchField.js');
                $this->pageRenderer->addJsFile($uxPath . 'Ext.ux.FitToParent.js');
@@ -174,11 +189,11 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
                        'startUid' => $this->id,
                        'tableDefault' => 'pages',
                        'renderTo' => 'recyclerContent',
-                       'isSSL' => \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SSL'),
+                       'isSSL' => GeneralUtility::getIndpEnv('TYPO3_SSL'),
                        'deleteDisable' => $this->allowDelete ? 0 : 1,
                        'depthSelection' => $this->getDataFromSession('depthSelection', 0),
                        'tableSelection' => $this->getDataFromSession('tableSelection', 'pages'),
-                       'States' => $GLOBALS['BE_USER']->uc['moduleData']['web_recycler']['States']
+                       'States' => $this->backendUser->uc['moduleData']['web_recycler']['States']
                );
                return $configuration;
        }
@@ -190,16 +205,16 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
         */
        protected function getJavaScriptLabels() {
                $coreLabels = array(
-                       'title' => $GLOBALS['LANG']->getLL('title'),
-                       'path' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.path'),
-                       'table' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.table'),
-                       'depth' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_web_perm.xlf:Depth'),
-                       'depth_0' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_0'),
-                       'depth_1' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_1'),
-                       'depth_2' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_2'),
-                       'depth_3' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_3'),
-                       'depth_4' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_4'),
-                       'depth_infi' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_infi')
+                       'title' => $this->languageService->getLL('title'),
+                       'path' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.path'),
+                       'table' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.table'),
+                       'depth' => $this->languageService->sL('LLL:EXT:lang/locallang_mod_web_perm.xlf:Depth'),
+                       'depth_0' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_0'),
+                       'depth_1' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_1'),
+                       'depth_2' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_2'),
+                       'depth_3' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_3'),
+                       'depth_4' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_4'),
+                       'depth_infi' => $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.depth_infi')
                );
                $extensionLabels = $this->getJavaScriptLabelsFromLocallang('js.', 'label_');
                $javaScriptLabels = array_merge($coreLabels, $extensionLabels);
@@ -209,14 +224,14 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
        /**
         * Gets labels to be used in JavaScript fetched from the current locallang file.
         *
-        * @param string $selectionPrefix: Prefix to select the correct labels (default: 'js.')
-        * @param string $stripFromSelectionName: Sub-prefix to be removed from label names in the result (default: '')
+        * @param string $selectionPrefix Prefix to select the correct labels (default: 'js.')
+        * @param string $stripFromSelectionName  Sub-prefix to be removed from label names in the result (default: '')
         * @return array Labels to be used in JavaScript of the current locallang file
         * @todo Check, whether this method can be moved in a generic way to $GLOBALS['LANG']
         */
        protected function getJavaScriptLabelsFromLocallang($selectionPrefix = 'js.', $stripFromSelectionName = '') {
                $extraction = array();
-               $labels = array_merge((array)$GLOBALS['LOCAL_LANG']['default'], (array)$GLOBALS['LOCAL_LANG'][$GLOBALS['LANG']->lang]);
+               $labels = array_merge((array)$GLOBALS['LOCAL_LANG']['default'], (array)$GLOBALS['LOCAL_LANG'][$this->languageService->lang]);
                // Regular expression to strip the selection prefix and possibly something from the label name:
                $labelPattern = '#^' . preg_quote($selectionPrefix, '#') . '(' . preg_quote($stripFromSelectionName, '#') . ')?#';
                // Iterate through all locallang labels:
@@ -252,7 +267,7 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
         */
        protected function getShortcutButton() {
                $result = '';
-               if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
+               if ($this->backendUser->mayMakeShortcut()) {
                        $result = $this->doc->makeShortcutIcon('', 'function', $this->MCONF['name']);
                }
                return $result;
@@ -267,7 +282,7 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
                $markers = array(
                        'FUNC_MENU' => $this->getFunctionMenu(),
                        'CONTENT' => $this->content,
-                       'TITLE' => $GLOBALS['LANG']->getLL('title')
+                       'TITLE' => $this->languageService->getLL('title')
                );
                return $markers;
        }
@@ -284,12 +299,12 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
        /**
         * Gets data from the session of the current backend user.
         *
-        * @param string $identifier: The identifier to be used to get the data
-        * @param string $default: The default date to be used if nothing was found in the session
+        * @param string $identifier The identifier to be used to get the data
+        * @param string $default The default date to be used if nothing was found in the session
         * @return string The accordant data in the session of the current backend user
         */
        protected function getDataFromSession($identifier, $default = NULL) {
-               $sessionData = &$GLOBALS['BE_USER']->uc['tx_recycler'];
+               $sessionData = &$this->backendUser->uc['tx_recycler'];
                if (isset($sessionData[$identifier]) && $sessionData[$identifier]) {
                        $data = $sessionData[$identifier];
                } else {
@@ -297,5 +312,4 @@ class RecyclerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass
                }
                return $data;
        }
-
 }
\ No newline at end of file
index 8061657..4a3ba10 100644 (file)
@@ -14,6 +14,9 @@ namespace TYPO3\CMS\Recycler\Domain\Model;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Recycler\Utility\RecyclerUtility;
+
 /**
  * Model class for the 'recycler' extension.
  *
@@ -45,7 +48,7 @@ class DeletedRecords {
        /**
         * Object from helper class
         *
-        * @var \TYPO3\CMS\Recycler\Utility\RecyclerUtility
+        * @var RecyclerUtility
         */
        protected $recyclerHelper;
 
@@ -63,6 +66,20 @@ class DeletedRecords {
         */
        public $title;
 
+       /**
+        * Database Connection
+        *
+        * @var \TYPO3\CMS\Core\Database\DatabaseConnection
+        */
+       protected $databaseConnection;
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               $this->databaseConnection = $GLOBALS['TYPO3_DB'];
+       }
+
        /************************************************************
         * GET DATA FUNCTIONS
         *
@@ -72,12 +89,12 @@ class DeletedRecords {
         * Load all deleted rows from $table
         * If table is not set, it iterates the TCA tables
         *
-        * @param int $id: UID from selected page
-        * @param string $table: Tablename
-        * @param int $depth: How many levels recursive
-        * @param int $limit: MySQL LIMIT
-        * @param string $filter: Filter text
-        * @return      recycler_model_delRecords
+        * @param int $id UID from selected page
+        * @param string $table Tablename
+        * @param int $depth How many levels recursive
+        * @param string $limit MySQL LIMIT
+        * @param string $filter Filter text
+        * @return DeletedRecords
         */
        public function loadData($id, $table, $depth, $limit = '', $filter = '') {
                // set the limit
@@ -91,7 +108,7 @@ class DeletedRecords {
                        foreach ($GLOBALS['TCA'] as $tableKey => $tableValue) {
                                // only go into this table if the limit allows it
                                if ($this->limit != '') {
-                                       $parts = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->limit);
+                                       $parts = GeneralUtility::trimExplode(',', $this->limit);
                                        // abort loop if LIMIT 0,0
                                        if ($parts[0] == 0 && $parts[1] == 0) {
                                                break;
@@ -107,11 +124,11 @@ class DeletedRecords {
        /**
         * Find the total count of deleted records
         *
-        * @param int $id: UID from record
-        * @param string $table: Tablename from record
-        * @param int $depth: How many levels recursive
-        * @param string $filter: Filter text
-        * @return void
+        * @param int $id UID from record
+        * @param string $table Tablename from record
+        * @param int $depth How many levels recursive
+        * @param string $filter Filter text
+        * @return int
         */
        public function getTotalCount($id, $table, $depth, $filter) {
                $deletedRecords = $this->loadData($id, $table, $depth, '', $filter)->getDeletedRows();
@@ -125,28 +142,30 @@ class DeletedRecords {
        /**
         * Set all deleted rows
         *
-        * @param int $id: UID from record
-        * @param string $table: Tablename from record
-        * @param int $depth: How many levels recursive
-        * @param array $ctrl: TCA CTRL Array
-        * @param string $filter: Filter text
+        * @param int $id UID from record
+        * @param string $table Tablename from record
+        * @param int $depth How many levels recursive
+        * @param array $tcaCtrl TCA CTRL array
+        * @param string $filter Filter text
         * @return void
         */
        protected function setData($id = 0, $table, $depth, $tcaCtrl, $filter) {
                $id = (int)$id;
                if (array_key_exists('delete', $tcaCtrl)) {
                        // find the 'deleted' field for this table
-                       $deletedField = \TYPO3\CMS\Recycler\Utility\RecyclerUtility::getDeletedField($table);
+                       $deletedField = RecyclerUtility::getDeletedField($table);
                        // create the filter WHERE-clause
+                       $filterWhere = '';
                        if (trim($filter) != '') {
                                $filterWhere = ' AND (' . (\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($filter) ? 'uid = ' . $filter . ' OR pid = ' . $filter . ' OR ' : '') . $tcaCtrl['label'] . ' LIKE "%' . $this->escapeValueForLike($filter, $table) . '%"' . ')';
                        }
+
                        // get the limit
                        if ($this->limit != '') {
                                // count the number of deleted records for this pid
-                               $deletedCount = $GLOBALS['TYPO3_DB']->exec_SELECTcountRows('uid', $table, $deletedField . '<>0 AND pid = ' . $id . $filterWhere);
+                               $deletedCount = $this->databaseConnection->exec_SELECTcountRows('uid', $table, $deletedField . '<>0 AND pid = ' . $id . $filterWhere);
                                // split the limit
-                               $parts = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->limit);
+                               $parts = GeneralUtility::trimExplode(',', $this->limit);
                                $offset = $parts[0];
                                $rowCount = $parts[1];
                                // subtract the number of deleted records from the limit's offset
@@ -216,20 +235,20 @@ class DeletedRecords {
                        // go into depth
                        if ($allowDepth && $depth >= 1) {
                                // check recursively for elements beneath this page
-                               $resPages = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', 'pages', 'pid=' . $id, '', 'sorting');
+                               $resPages = $this->databaseConnection->exec_SELECTquery('uid', 'pages', 'pid=' . $id, '', 'sorting');
                                if ($resPages) {
-                                       while ($rowPages = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($resPages)) {
+                                       while ($rowPages = $this->databaseConnection->sql_fetch_assoc($resPages)) {
                                                $this->setData($rowPages['uid'], $table, $depth - 1, $tcaCtrl, $filter);
                                                // some records might have been added, check if we still have the limit for further queries
                                                if ('' != $this->limit) {
-                                                       $parts = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->limit);
+                                                       $parts = GeneralUtility::trimExplode(',', $this->limit);
                                                        // abort loop if LIMIT 0,0
                                                        if ($parts[0] == 0 && $parts[1] == 0) {
                                                                break;
                                                        }
                                                }
                                        }
-                                       $GLOBALS['TYPO3_DB']->sql_free_result($resPages);
+                                       $this->databaseConnection->sql_free_result($resPages);
                                }
                        }
                        $this->label[$table] = $tcaCtrl['label'];
@@ -240,13 +259,13 @@ class DeletedRecords {
        /**
         * Checks whether the current backend user has access to the given records.
         *
-        * @param string $table: Name of the table
-        * @param array $rows: Record row
+        * @param string $table Name of the table
+        * @param array $rows Record row
         * @return void
         */
        protected function checkRecordAccess($table, array $rows) {
                foreach ($rows as $key => $row) {
-                       if (\TYPO3\CMS\Recycler\Utility\RecyclerUtility::checkAccess($table, $row)) {
+                       if (RecyclerUtility::checkAccess($table, $row)) {
                                $this->setDeletedRows($table, $row);
                        }
                }
@@ -256,12 +275,12 @@ class DeletedRecords {
         * Escapes a value to be used for like in a database query.
         * There is a special handling for the characters '%' and '_'.
         *
-        * @param string $value: The value to be escaped for like conditions
-        * @param string $tableName: The name of the table the query should be used for
+        * @param string $value The value to be escaped for like conditions
+        * @param string $tableName The name of the table the query should be used for
         * @return string The escaped value to be used for like conditions
         */
        protected function escapeValueForLike($value, $tableName) {
-               return $GLOBALS['TYPO3_DB']->escapeStrForLike($GLOBALS['TYPO3_DB']->quoteStr($value, $tableName), $tableName);
+               return $this->databaseConnection->escapeStrForLike($this->databaseConnection->quoteStr($value, $tableName), $tableName);
        }
 
        /************************************************************
@@ -270,13 +289,13 @@ class DeletedRecords {
        /**
         * Delete element from any table
         *
-        * @param string $recordArray: Representation of the records
-        * @return void
+        * @param array $recordsArray Representation of the records
+        * @return bool
         */
        public function deleteData($recordsArray) {
                $recordsArray = json_decode($recordsArray);
                if (is_array($recordsArray)) {
-                       $tce = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
+                       $tce = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
                        $tce->start('', '');
                        $tce->disableDeleteClause();
                        foreach ($recordsArray as $key => $record) {
@@ -294,8 +313,8 @@ class DeletedRecords {
         * Undelete records
         * If $recursive is TRUE all records below the page uid would be undelete too
         *
-        * @param string $recordArray: Representation of the records
-        * @param bool $recursive: TRUE/FALSE
+        * @param array $recordsArray Representation of the records
+        * @param bool $recursive Whether to recursively undelete
         * @return bool
         */
        public function undeleteData($recordsArray, $recursive = FALSE) {
@@ -320,7 +339,7 @@ class DeletedRecords {
                                }
                        }
                        if ($cmd) {
-                               $tce = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
+                               $tce = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
                                $tce->start(array(), $cmd);
                                $tce->process_cmdmap();
                                $result = TRUE;
@@ -335,8 +354,8 @@ class DeletedRecords {
        /**
         * Set deleted rows
         *
-        * @param string $table: Tablename
-        * @param array $row: Deleted record row
+        * @param string $table Tablename
+        * @param array $row Deleted record row
         * @return void
         */
        public function setDeletedRows($table, array $row) {
@@ -349,7 +368,7 @@ class DeletedRecords {
        /**
         * Get deleted Rows
         *
-        * @return array $this->deletedRows: Array with all deleted rows from TCA
+        * @return array Array with all deleted rows from TCA
         */
        public function getDeletedRows() {
                return $this->deletedRows;
@@ -358,10 +377,9 @@ class DeletedRecords {
        /**
         * Get table
         *
-        * @return array $this->table: Array with table from TCA
+        * @return array Array with table from TCA
         */
        public function getTable() {
                return $this->table;
        }
-
 }
index 0674d0a..566c5e7 100644 (file)
@@ -14,6 +14,8 @@ namespace TYPO3\CMS\Recycler\Domain\Model;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Recycler\Utility\RecyclerUtility;
+
 /**
  * Model class for the 'recycler' extension.
  *
@@ -22,23 +24,44 @@ namespace TYPO3\CMS\Recycler\Domain\Model;
 class Tables {
 
        /**
+        * @var \TYPO3\CMS\Lang\LanguageService
+        */
+       protected $languageService;
+
+       /**
+        * Database Connection
+        *
+        * @var \TYPO3\CMS\Core\Database\DatabaseConnection
+        */
+       protected $databaseConnection;
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               $this->languageService = $GLOBALS['LANG'];
+               $this->databaseConnection = $GLOBALS['TYPO3_DB'];
+       }
+
+       /**
         * Get tables for menu example
         *
-        * @param string $format: Return format (example: json)
-        * @param bool $withAllOption: 0 no, 1 return tables with a "all" option
-        * @param int $id: UID from selected page
-        * @param int $depth: How many levels recursive
+        * @param string $format Return format (example: json) - currently unused
+        * @param bool $withAllOption FALSE: no, TRUE: return tables with a "all" option
+        * @param int $startUid UID from selected page
+        * @param int $depth How many levels recursive
         * @return string The tables to be displayed
         */
-       public function getTables($format, $withAllOption = 0, $startUid, $depth = 0) {
+       public function getTables($format, $withAllOption = TRUE, $startUid, $depth = 0) {
                $deletedRecordsTotal = 0;
                $tables = array();
                foreach (array_keys($GLOBALS['TCA']) as $tableName) {
-                       $deletedField = \TYPO3\CMS\Recycler\Utility\RecyclerUtility::getDeletedField($tableName);
+                       $deletedField = RecyclerUtility::getDeletedField($tableName);
                        if ($deletedField) {
                                // Determine whether the table has deleted records:
-                               $deletedCount = $GLOBALS['TYPO3_DB']->exec_SELECTcountRows('uid', $tableName, $deletedField . '<>0');
+                               $deletedCount = $this->databaseConnection->exec_SELECTcountRows('uid', $tableName, $deletedField . '<>0');
                                if ($deletedCount) {
+                                       /* @var $deletedDataObject \TYPO3\CMS\Recycler\Domain\Model\DeletedRecords */
                                        $deletedDataObject = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Recycler\\Domain\\Model\\DeletedRecords');
                                        $deletedData = $deletedDataObject->loadData($startUid, $tableName, $depth)->getDeletedRows();
                                        if (isset($deletedData[$tableName])) {
@@ -48,7 +71,7 @@ class Tables {
                                                                $tableName,
                                                                $deletedRecordsInTable,
                                                                $tableName,
-                                                               \TYPO3\CMS\Recycler\Utility\RecyclerUtility::getUtf8String($GLOBALS['LANG']->sL($GLOBALS['TCA'][$tableName]['ctrl']['title']))
+                                                               RecyclerUtility::getUtf8String($this->languageService->sL($GLOBALS['TCA'][$tableName]['ctrl']['title']))
                                                        );
                                                }
                                        }
@@ -61,11 +84,10 @@ class Tables {
                                '',
                                $deletedRecordsTotal,
                                '',
-                               $GLOBALS['LANG']->sL('LLL:EXT:recycler/mod1/locallang.xlf:label_alltables')
+                               $this->languageService->sL('LLL:EXT:recycler/mod1/locallang.xlf:label_alltables')
                        ));
                }
                $output = json_encode($jsonArray);
                return $output;
        }
-
 }
index a884af5..9c3d73e 100644 (file)
@@ -15,6 +15,7 @@ namespace TYPO3\CMS\Recycler\Utility;
  */
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * Helper class for the 'recycler' extension.
@@ -37,30 +38,33 @@ class RecyclerUtility {
         * @return bool Returns TRUE is the user has access, or FALSE if not
         */
        static public function checkAccess($table, $row) {
+               /* @var $backendUser \TYPO3\CMS\Core\Authentication\BackendUserAuthentication */
+               $backendUser = $GLOBALS['BE_USER'];
+
                // Checking if the user has permissions? (Only working as a precaution, because the final permission check is always down in TCE. But it's good to notify the user on beforehand...)
                // First, resetting flags.
-               $hasAccess = 0;
+               $hasAccess = FALSE;
                $calcPRec = $row;
                BackendUtility::fixVersioningPid($table, $calcPRec);
                if (is_array($calcPRec)) {
                        if ($table == 'pages') {
                                // If pages:
-                               $CALC_PERMS = $GLOBALS['BE_USER']->calcPerms($calcPRec);
-                               $hasAccess = $CALC_PERMS & 2 ? 1 : 0;
+                               $calculatedPermissions = $backendUser->calcPerms($calcPRec);
+                               $hasAccess = $calculatedPermissions & 2 ? TRUE : FALSE;
                        } else {
-                               $CALC_PERMS = $GLOBALS['BE_USER']->calcPerms(BackendUtility::getRecord('pages', $calcPRec['pid']));
+                               $calculatedPermissions = $backendUser->calcPerms(BackendUtility::getRecord('pages', $calcPRec['pid']));
                                // Fetching pid-record first.
-                               $hasAccess = $CALC_PERMS & 16 ? 1 : 0;
+                               $hasAccess = $calculatedPermissions & 16 ? TRUE : FALSE;
                        }
                        // Check internals regarding access:
                        if ($hasAccess) {
-                               $hasAccess = $GLOBALS['BE_USER']->recordEditAccessInternals($table, $calcPRec);
+                               $hasAccess = $backendUser->recordEditAccessInternals($table, $calcPRec);
                        }
                }
-               if (!$GLOBALS['BE_USER']->check('tables_modify', $table)) {
-                       $hasAccess = 0;
+               if (!$backendUser->check('tables_modify', $table)) {
+                       $hasAccess = FALSE;
                }
-               return $hasAccess ? TRUE : FALSE;
+               return $hasAccess;
        }
 
        /**
@@ -68,31 +72,34 @@ class RecyclerUtility {
         * Each part of the path will be limited to $titleLimit characters
         * Deleted pages are filtered out.
         *
-        * @param int Page uid for which to create record path
+        * @param int $uid Page uid for which to create record path
         * @param string $clause is additional where clauses, eg.
-        * @param int Title limit
-        * @param int Title limit of Full title (typ. set to 1000 or so)
+        * @param int $titleLimit Title limit
+        * @param int $fullTitleLimit Title limit of Full title (typ. set to 1000 or so)
         * @return mixed Path of record (string) OR array with short/long title if $fullTitleLimit is set.
         */
        static public function getRecordPath($uid, $clause = '', $titleLimit = 1000, $fullTitleLimit = 0) {
+               /* @var $databaseConnection \TYPO3\CMS\Core\Database\DatabaseConnection */
+               $databaseConnection = $GLOBALS['TYPO3_DB'];
+
                $loopCheck = 100;
                $output = ($fullOutput = '/');
                while ($uid != 0 && $loopCheck > 0) {
                        $loopCheck--;
-                       $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid,pid,title,deleted,t3ver_oid,t3ver_wsid', 'pages', 'uid=' . (int)$uid . (strlen(trim($clause)) ? ' AND ' . $clause : ''));
+                       $res = $databaseConnection->exec_SELECTquery('uid,pid,title,deleted,t3ver_oid,t3ver_wsid', 'pages', 'uid=' . (int)$uid . (strlen(trim($clause)) ? ' AND ' . $clause : ''));
                        if (is_resource($res)) {
-                               $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
-                               $GLOBALS['TYPO3_DB']->sql_free_result($res);
+                               $row = $databaseConnection->sql_fetch_assoc($res);
+                               $databaseConnection->sql_free_result($res);
                                BackendUtility::workspaceOL('pages', $row);
                                if (is_array($row)) {
                                        BackendUtility::fixVersioningPid('pages', $row);
                                        $uid = $row['pid'];
-                                       $output = '/' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($row['title'], $titleLimit)) . $output;
+                                       $output = '/' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($row['title'], $titleLimit)) . $output;
                                        if ($row['deleted']) {
                                                $output = '<span class="deletedPath">' . $output . '</span>';
                                        }
                                        if ($fullTitleLimit) {
-                                               $fullOutput = '/' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($row['title'], $fullTitleLimit)) . $fullOutput;
+                                               $fullOutput = '/' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($row['title'], $fullTitleLimit)) . $fullOutput;
                                        }
                                } else {
                                        break;
@@ -111,7 +118,7 @@ class RecyclerUtility {
        /**
         * Gets the name of the field with the information whether a record is deleted.
         *
-        * @param string $tableName: Name of the table to get the deleted field for
+        * @param string $tableName Name of the table to get the deleted field for
         * @return string Name of the field with the information whether a record is deleted
         */
        static public function getDeletedField($tableName) {
@@ -119,13 +126,14 @@ class RecyclerUtility {
                if ($TCA && isset($TCA['ctrl']['delete']) && $TCA['ctrl']['delete']) {
                        return $TCA['ctrl']['delete'];
                }
+               return '';
        }
 
        /**
         * Gets the TCA of the table used in the current context.
         *
-        * @param string $tableName: Name of the table to get TCA for
-        * @return mixed TCA of the table used in the current context (array)
+        * @param string $tableName Name of the table to get TCA for
+        * @return array|FALSE TCA of the table used in the current context
         */
        static public function getTableTCA($tableName) {
                $TCA = FALSE;
@@ -156,7 +164,7 @@ class RecyclerUtility {
        /**
         * Gets an UTF-8 encoded string (only if the current charset is not UTF-8!).
         *
-        * @param string $string: String to be converted to UTF-8 if required
+        * @param string $string String to be converted to UTF-8 if required
         * @return string UTF-8 encoded string
         */
        static public function getUtf8String($string) {