Ejemplo n.º 1
0
 /**
  * For RTE: This displays all files from folder. No thumbnails shown
  *
  * @param string $folder The folder path to expand
  * @param string $extensionList List of fileextensions to show
  * @return string HTML output
  * @todo Define visibility
  */
 public function expandFolder(\TYPO3\CMS\Core\Resource\Folder $folder, $extensionList = '')
 {
     $out = '';
     $renderFolders = $this->act === 'folder';
     if ($folder->checkActionPermission('browse')) {
         // Create header for filelisting:
         $out .= $this->barheader($GLOBALS['LANG']->getLL('files') . ':');
         // Prepare current path value for comparison (showing red arrow)
         $currentIdentifier = '';
         if ($this->curUrlInfo['value']) {
             $currentIdentifier = $this->curUrlInfo['info'];
         }
         // Create header element; The folder from which files are listed.
         $titleLen = intval($GLOBALS['BE_USER']->uc['titleLen']);
         $folderIcon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForFile('folder');
         $folderIcon .= htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($folder->getIdentifier(), $titleLen));
         $picon = '<a href="#" onclick="return link_folder(\'file:' . $folder->getCombinedIdentifier() . '\');">' . $folderIcon . '</a>';
         if ($this->curUrlInfo['act'] == 'folder' && $currentIdentifier == $folder->getCombinedIdentifier()) {
             $out .= '<img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/blinkarrow_left.gif', 'width="5" height="9"') . ' class="c-blinkArrowL" alt="" />';
         }
         $out .= $picon . '<br />';
         // Get files from the folder:
         if ($renderFolders) {
             $items = $folder->getSubfolders();
         } else {
             $filter = new \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter();
             $filter->setAllowedFileExtensions($extensionList);
             $folder->getStorage()->setFileAndFolderNameFilters(array(array($filter, 'filterFileList')));
             $items = $folder->getFiles();
         }
         $c = 0;
         $totalItems = count($items);
         foreach ($items as $fileOrFolderObject) {
             $c++;
             if ($renderFolders) {
                 $fileIdentifier = $fileOrFolderObject->getCombinedIdentifier();
                 $icon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForFile('folder');
                 $itemUid = 'file:' . $fileIdentifier;
             } else {
                 $fileIdentifier = $fileOrFolderObject->getUid();
                 // File icon:
                 $fileExtension = $fileOrFolderObject->getExtension();
                 // Get size and icon:
                 $size = ' (' . \TYPO3\CMS\Core\Utility\GeneralUtility::formatSize($fileOrFolderObject->getSize()) . 'bytes)';
                 $icon = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForFile($fileExtension, array('title' => $fileOrFolderObject->getName() . $size));
                 $itemUid = 'file:' . $fileIdentifier;
             }
             // If the listed file turns out to be the CURRENT file, then show blinking arrow:
             if (($this->curUrlInfo['act'] == 'file' || $this->curUrlInfo['act'] == 'folder') && $currentIdentifier == $fileIdentifier) {
                 $arrCol = '<img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/blinkarrow_left.gif', 'width="5" height="9"') . ' class="c-blinkArrowL" alt="" />';
             } else {
                 $arrCol = '';
             }
             // Put it all together for the file element:
             $out .= '<img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/ol/join' . ($c == $totalItems ? 'bottom' : '') . '.gif', 'width="18" height="16"') . ' alt="" />' . $arrCol . '<a href="#" onclick="return link_folder(\'' . $itemUid . '\');">' . $icon . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($fileOrFolderObject->getName(), $titleLen)) . '</a><br />';
         }
     }
     return $out;
 }
Ejemplo n.º 2
0
 /**
  * @test
  */
 public function getFilesIgnoresSetFileAndFoldernameFiltersIfFilterModeIsSetToUseStorageFilters()
 {
     $filter = new \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter();
     $filter->setAllowedFileExtensions('jpg,png');
     $this->addToMount(array('somefile.png' => '', 'somefile.jpg' => '', 'somefile.exe' => ''));
     $storageObject = $this->getStorageObject();
     $folder = $storageObject->getRootLevelFolder();
     $folder->setFileAndFolderNameFilters(array(array($filter, 'filterFileList')));
     $fileList = $folder->getFiles(0, 0, \TYPO3\CMS\Core\Resource\Folder::FILTER_MODE_USE_STORAGE_FILTERS);
     $this->assertCount(3, $fileList);
 }