[BUGFIX] Fix several typos in php comments
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / Tree / View / FolderTreeView.php
index 8087ea1..3c9273e 100644 (file)
@@ -17,6 +17,7 @@ namespace TYPO3\CMS\Backend\Tree\View;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Localization\LanguageService;
 use TYPO3\CMS\Core\Messaging\FlashMessage;
 use TYPO3\CMS\Core\Messaging\FlashMessageService;
 use TYPO3\CMS\Core\Resource\Folder;
@@ -24,11 +25,12 @@ use TYPO3\CMS\Core\Resource\FolderInterface;
 use TYPO3\CMS\Core\Resource\InaccessibleFolder;
 use TYPO3\CMS\Core\Resource\ResourceStorage;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Lang\LanguageService;
 
 /**
  * Generate a folder tree,
  * specially made for browsing folders in the File module
+ *
+ * @internal This class is a TYPO3 Backend implementation and is not considered part of the Public TYPO3 API.
  */
 class FolderTreeView extends AbstractTreeView
 {
@@ -37,7 +39,7 @@ class FolderTreeView extends AbstractTreeView
      *
      * @var ResourceStorage[]
      */
-    protected $storages = null;
+    protected $storages;
 
     /**
      * @var array
@@ -63,12 +65,6 @@ class FolderTreeView extends AbstractTreeView
     protected $iconFactory;
 
     /**
-     * If file-drag mode is set, temp and recycler folders are filtered out.
-     * @var bool
-     */
-    public $ext_noTempRecyclerDirs = false;
-
-    /**
      * override to not use a title attribute
      * @var string
      */
@@ -134,9 +130,8 @@ class FolderTreeView extends AbstractTreeView
     {
         if (empty($this->scope)) {
             $this->scope = [
-                'class' => get_class($this),
+                'class' => static::class,
                 'script' => $this->thisScript,
-                'ext_noTempRecyclerDirs' => $this->ext_noTempRecyclerDirs
             ];
         }
 
@@ -146,9 +141,8 @@ class FolderTreeView extends AbstractTreeView
             $scopeHash = GeneralUtility::hmac($scopeData);
             $js = htmlspecialchars('Tree.load(' . GeneralUtility::quoteJSvalue($cmd) . ', ' . (int)$isExpand . ', this, ' . GeneralUtility::quoteJSvalue($scopeData) . ', ' . GeneralUtility::quoteJSvalue($scopeHash) . ');');
             return '<a class="list-tree-control' . (!$isExpand ? ' list-tree-control-open' : ' list-tree-control-closed') . '" onclick="' . $js . '"><i class="fa"></i></a>';
-        } else {
-            return $icon;
         }
+        return $icon;
     }
 
     /**
@@ -181,7 +175,6 @@ class FolderTreeView extends AbstractTreeView
             if (!$folderObject instanceof InaccessibleFolder) {
                 $tableName = $this->getTableNameForClickMenu($folderObject);
                 $theFolderIcon = BackendUtility::wrapClickMenuOnIcon($icon, $tableName, $folderObject->getCombinedIdentifier(), 'tree');
-
             }
         } elseif ($this->ext_IconMode === 'titlelink') {
             $aOnClick = 'return jumpTo(' . GeneralUtility::quoteJSvalue($this->getJumpToParam($folderObject)) . ',this,' . GeneralUtility::quoteJSvalue($this->domIdPrefix . $this->getId($folderObject)) . ',' . $this->bank . ');';
@@ -238,7 +231,7 @@ class FolderTreeView extends AbstractTreeView
     }
 
     /**
-     * Returns the title for the input record. If blank, a "no title" labele (localized) will be returned.
+     * Returns the title for the input record. If blank, a "no title" label (localized) will be returned.
      * '_title' is used for setting an alternative title for folders.
      *
      * @param array $row The input row array (where the key "_title" is used for the title)
@@ -247,7 +240,7 @@ class FolderTreeView extends AbstractTreeView
      */
     public function getTitleStr($row, $titleLen = 30)
     {
-        return $row['_title'] ?: parent::getTitleStr($row, $titleLen);
+        return $row['_title'] ?? parent::getTitleStr($row, $titleLen);
     }
 
     /**
@@ -287,7 +280,6 @@ class FolderTreeView extends AbstractTreeView
      * Get a tree for one storage
      *
      * @param ResourceStorage $storageObject
-     * @return void
      */
     public function getBrowseableTreeForStorage(ResourceStorage $storageObject)
     {
@@ -311,7 +303,7 @@ class FolderTreeView extends AbstractTreeView
         $this->reset();
         // Go through all "root level folders" of this tree (can be the rootlevel folder or any file mount points)
         foreach ($rootLevelFolders as $rootLevelFolderInfo) {
-            /** @var $rootLevelFolder Folder */
+            /** @var Folder $rootLevelFolder */
             $rootLevelFolder = $rootLevelFolderInfo['folder'];
             $rootLevelFolderName = $rootLevelFolderInfo['name'];
             $folderHashSpecUID = GeneralUtility::md5int($rootLevelFolder->getCombinedIdentifier());
@@ -332,7 +324,7 @@ class FolderTreeView extends AbstractTreeView
             // Mark a storage which is not online, as offline
             // maybe someday there will be a special icon for this
             if ($storageObject->isOnline() === false) {
-                $rootLevelFolderName .= ' (' . $this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_mod_file.xlf:sys_file_storage.isOffline') . ')';
+                $rootLevelFolderName .= ' (' . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_mod_file.xlf:sys_file_storage.isOffline') . ')';
             }
             // Preparing rootRec for the mount
             $icon = $this->iconFactory->getIconForResource($rootLevelFolder, Icon::SIZE_SMALL, null, ['mount-root' => true]);
@@ -469,9 +461,9 @@ class FolderTreeView extends AbstractTreeView
                 $this->getLanguageService()->sL('LLL:EXT:backend/Resources/Private/Language/locallang.xlf:foldertreeview.noFolders.title'),
                 FlashMessage::INFO
             );
-            /** @var $flashMessageService \TYPO3\CMS\Core\Messaging\FlashMessageService */
+            /** @var \TYPO3\CMS\Core\Messaging\FlashMessageService $flashMessageService */
             $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
-            /** @var $defaultFlashMessageQueue \TYPO3\CMS\Core\Messaging\FlashMessageQueue */
+            /** @var \TYPO3\CMS\Core\Messaging\FlashMessageQueue $defaultFlashMessageQueue */
             $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
             $defaultFlashMessageQueue->enqueue($message);
             return $defaultFlashMessageQueue->renderFlashMessages();
@@ -493,9 +485,9 @@ class FolderTreeView extends AbstractTreeView
         // so we know how many we have to close when all children are done rendering
         $closeDepth = [];
         foreach ($treeItems as $treeItem) {
-            /** @var $folderObject Folder */
+            /** @var Folder $folderObject */
             $folderObject = $treeItem['row']['folder'];
-            $classAttr = $treeItem['row']['_CSSCLASS'];
+            $classAttr = $treeItem['row']['_CSSCLASS'] ?? '';
             $folderIdentifier = $folderObject->getCombinedIdentifier();
             // this is set if the AJAX request has just opened this folder (via the PM command)
             $isExpandedFolderIdentifier = $expandedFolderHash == GeneralUtility::md5int($folderIdentifier);
@@ -503,27 +495,27 @@ class FolderTreeView extends AbstractTreeView
             $itemHTML = '';
             // If this item is the start of a new level,
             // then a new level <ul> is needed, but not in ajax mode
-            if ($treeItem['isFirst'] && !$doCollapse && !($doExpand && $isExpandedFolderIdentifier)) {
+            if (!empty($treeItem['isFirst']) && !$doCollapse && !($doExpand && $isExpandedFolderIdentifier)) {
                 $itemHTML = '<ul class="list-tree">';
             }
             // Add CSS classes to the list item
-            if ($treeItem['hasSub']) {
+            if (!empty($treeItem['hasSub'])) {
                 $classAttr .= ' list-tree-control-open';
             }
             $itemHTML .= '
                                <li id="' . $idAttr . '" ' . ($classAttr ? ' class="' . trim($classAttr) . '"' : '') . '><span class="list-tree-group">' . $treeItem['HTML'] . $this->wrapTitle($this->getTitleStr($treeItem['row'], $titleLength), $folderObject, $treeItem['bank']) . '</span>';
-            if (!$treeItem['hasSub']) {
+            if (empty($treeItem['hasSub'])) {
                 $itemHTML .= '</li>';
             }
             // We have to remember if this is the last one
             // on level X so the last child on level X+1 closes the <ul>-tag
-            if ($treeItem['isLast'] && !($doExpand && $isExpandedFolderIdentifier)) {
+            if (!empty($treeItem['isLast']) && !($doExpand && $isExpandedFolderIdentifier)) {
                 $closeDepth[$treeItem['invertedDepth']] = 1;
             }
             // If this is the last one and does not have subitems, we need to close
             // the tree as long as the upper levels have last items too
-            if ($treeItem['isLast'] && !$treeItem['hasSub'] && !$doCollapse && !($doExpand && $isExpandedFolderIdentifier)) {
-                for ($i = $treeItem['invertedDepth']; $closeDepth[$i] == 1; $i++) {
+            if (!empty($treeItem['isLast']) && empty($treeItem['hasSub']) && !$doCollapse && !($doExpand && $isExpandedFolderIdentifier)) {
+                for ($i = $treeItem['invertedDepth']; !empty($closeDepth[$i]); $i++) {
                     $closeDepth[$i] = 0;
                     $itemHTML .= '</ul></li>';
                 }
@@ -591,16 +583,15 @@ class FolderTreeView extends AbstractTreeView
     /**
      * Get stored tree structure AND updating it if needed according to incoming PM GET var.
      *
-     * @return void
-     * @access private
+     * @internal
      */
     public function initializePositionSaving()
     {
         // Get stored tree structure:
-        $this->stored = unserialize($this->BE_USER->uc['browseTrees'][$this->treeName]);
+        $this->stored = json_decode($this->BE_USER->uc['browseTrees'][$this->treeName], true);
         $this->getShortHashNumberForStorage();
         // PM action:
-        // (If an plus/minus icon has been clicked,
+        // (If a plus/minus icon has been clicked,
         // the PM GET var is sent and we must update the stored positions in the tree):
         // 0: mount key, 1: set/clear boolean, 2: item ID (cannot contain "_"), 3: treeName
         list($storageHashNumber, $doExpand, $numericFolderHash, $treeName) = $this->evaluateExpandCollapseParameter();
@@ -647,19 +638,17 @@ class FolderTreeView extends AbstractTreeView
         if ($storageObject) {
             if ($startingPointFolder) {
                 return $this->storageHashNumbers[$storageObject->getUid() . $startingPointFolder->getCombinedIdentifier()];
-            } else {
-                return $this->storageHashNumbers[$storageObject->getUid()];
             }
-        } else {
-            return null;
+            return $this->storageHashNumbers[$storageObject->getUid()];
         }
+        return null;
     }
 
     /**
      * Gets the values from the Expand/Collapse Parameter (&PM)
      * previously known as "PM" (plus/minus)
      * PM action:
-     * (If an plus/minus icon has been clicked,
+     * (If a plus/minus icon has been clicked,
      * the PM GET var is sent and we must update the stored positions in the tree):
      * 0: mount key, 1: set/clear boolean, 2: item ID (cannot contain "_"), 3: treeName
      *
@@ -676,9 +665,9 @@ class FolderTreeView extends AbstractTreeView
             }
         }
         // Take the first three parameters
-        list($mountKey, $doExpand, $folderIdentifier) = explode('_', $PM, 3);
+        list($mountKey, $doExpand, $folderIdentifier) = array_pad(explode('_', $PM, 3), 3, null);
         // In case the folder identifier contains "_", we just need to get the fourth/last parameter
-        list($folderIdentifier, $treeName) = GeneralUtility::revExplode('_', $folderIdentifier, 2);
+        list($folderIdentifier, $treeName) = array_pad(GeneralUtility::revExplode('_', $folderIdentifier, 2), 2, null);
         return [
             $mountKey,
             $doExpand,
@@ -700,10 +689,10 @@ class FolderTreeView extends AbstractTreeView
     protected function generateExpandCollapseParameter($mountKey = null, $doExpand = false, Folder $folderObject = null, $treeName = null)
     {
         $parts = [
-            $mountKey !== null ? $mountKey : $this->bank,
+            $mountKey ?? $this->bank,
             $doExpand == 1 ? 1 : 0,
             $folderObject !== null ? GeneralUtility::md5int($folderObject->getCombinedIdentifier()) : '',
-            $treeName !== null ? $treeName : $this->treeName
+            $treeName ?? $this->treeName
         ];
         return implode('_', $parts);
     }