48 public $widthGif =
'<img src="clear.gif" width="1" height="1" hspace="165" alt="" />';
187 $this->totalbytes = 0;
189 $this->HTMLcode =
'';
190 $this->path = $folderObject->getReadablePath();
193 $this->firstElementNumber = $pointer;
197 $this->fixedL = max($this->fixedL,
$GLOBALS[
'BE_USER']->uc[
'titleLen']);
198 $GLOBALS[
'LANG']->includeLLFile(
'EXT:lang/locallang_common.xlf');
209 $this->HTMLcode .= $this->getTable(
'fileext,tstamp,size,rw,_REF_');
219 $otherMarkers = array(
232 $title = htmlspecialchars($folderObject->getReadablePath());
235 if ($folderObject->getStorage()->isWithinFileMountBoundaries($folderObject)) {
245 if ($this->clickMenus) {
246 $otherMarkers[
'PAGE_ICON'] =
$GLOBALS[
'SOBE']->doc->wrapClickMenuOnIcon($otherMarkers[
'PAGE_ICON'], $folderObject->getCombinedIdentifier());
249 if ($this->clipObj instanceof \
TYPO3\CMS\Backend\Clipboard\Clipboard && $folderObject->checkActionPermission(
'write')) {
250 $elFromTable = $this->clipObj->elFromTable(
'_FILE');
251 if (count($elFromTable)) {
252 $addPasteButton = TRUE;
253 foreach ($elFromTable as $element) {
254 $clipBoardElement = $this->resourceFactory->retrieveFileOrFolderObject($element);
255 if ($clipBoardElement instanceof
Folder && $clipBoardElement->
getStorage()->isWithinFolder($clipBoardElement, $folderObject)) {
256 $addPasteButton = FALSE;
259 if ($addPasteButton) {
260 $buttons[
'PASTE'] =
'<a href="' . htmlspecialchars($this->clipObj->pasteUrl(
'_FILE', $folderObject->getCombinedIdentifier())) .
'" onclick="return ' . htmlspecialchars($this->clipObj->confirmMsg(
'_FILE', $this->path,
'into', $elFromTable)) .
'" title="' .
$GLOBALS[
'LANG']->getLL(
'clip_paste', TRUE) .
'">' .
IconUtility::getSpriteIcon(
'actions-document-paste-after') .
'</a>';
266 $buttons[
'refresh'] =
'<a href="' . htmlspecialchars($this->
listURL()) .
'" title="' .
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:labels.reload', TRUE) .
'">' .
IconUtility::getSpriteIcon(
'actions-system-refresh') .
'</a>';
267 return array($buttons, $otherMarkers);
281 $onClickEvent =
'document.dblistForm.cmd.value=\'' . $cmd .
'\';document.dblistForm.submit();
'; 283 $onClickEvent = 'if (confirm(
' . GeneralUtility::quoteJSvalue($warning) . ')){
' . $onClickEvent . '}
'; 285 return '<a href=
"#" onclick=
"' . htmlspecialchars($onClickEvent) . 'return false;">
' . $string . '</a>
'; 295 public function getTable($rowlist) { 296 // TODO use folder methods directly when they support filters 297 $storage = $this->folderObject->getStorage(); 298 $storage->resetFileAndFolderNameFiltersToDefault(); 300 // Only render the contents of a browsable storage 302 if ($this->folderObject->getStorage()->isBrowsable()) { 303 $folders = $storage->getFolderIdentifiersInFolder($this->folderObject->getIdentifier()); 304 $files = $this->folderObject->getFiles(); 305 $this->sort = trim($this->sort); 306 if ($this->sort !== '') { 307 $filesToSort = array(); 309 foreach ($files as $fileObject) { 310 switch ($this->sort) { 312 $sortingKey = $fileObject->getSize(); 315 $sortingKey = ($fileObject->checkActionPermission('read
') ? 'R
' : '' . $fileObject->checkActionPermission('write
')) ? 'W
' : ''; 318 $sortingKey = $fileObject->getExtension(); 321 $sortingKey = $fileObject->getModificationTime(); 324 $sortingKey = $fileObject->getName(); 327 if ($fileObject->hasProperty($this->sort)) { 328 $sortingKey = $fileObject->getProperty($this->sort); 330 $sortingKey = $fileObject->getName(); 334 while (isset($filesToSort[$sortingKey . $i])) { 337 $filesToSort[$sortingKey . $i] = $fileObject; 339 uksort($filesToSort, 'strnatcasecmp
'); 340 if ((int)$this->sortRev === 1) { 341 $filesToSort = array_reverse($filesToSort); 343 $files = $filesToSort; 345 $this->totalItems = count($folders) + count($files); 346 // Adds the code of files/dirs 349 // Cleaning rowlist for duplicates and place the $titleCol as the first column always! 350 $rowlist = GeneralUtility::rmFromList($titleCol, $rowlist); 351 $rowlist = GeneralUtility::uniqueList($rowlist); 352 $rowlist = $rowlist ? $titleCol . ',
' . $rowlist : $titleCol; 353 if ($this->bigControlPanel || $this->clipBoard) { 354 $rowlist = str_replace('file,
', 'file,_CLIPBOARD_,
', $rowlist); 356 $this->fieldArray = explode(',
', $rowlist); 357 $folderObjects = array(); 358 foreach ($folders as $folder) { 359 $folderObjects[] = $storage->getFolder($folder, TRUE); 362 $folderObjects = \TYPO3\CMS\Core\Resource\Utility\ListUtility::resolveSpecialFolderNames($folderObjects); 363 uksort($folderObjects, 'strnatcasecmp
'); 365 // Directories are added 366 $iOut = $this->formatDirList($folderObjects); 368 $iOut .= $this->formatFileList($files, $titleCol); 369 // Header line is drawn 371 foreach ($this->fieldArray as $v) { 372 if ($v == '_CLIPBOARD_
' && $this->clipBoard) { 375 $elFromTable = $this->clipObj->elFromTable($table); 376 if (count($elFromTable) && $this->folderObject->checkActionPermission('write
')) { 377 $addPasteButton = TRUE; 378 foreach ($elFromTable as $element) { 379 $clipBoardElement = $this->resourceFactory->retrieveFileOrFolderObject($element); 380 if ($clipBoardElement instanceof Folder && $clipBoardElement->getStorage()->isWithinFolder($clipBoardElement, $this->folderObject)) { 381 $addPasteButton = FALSE; 384 if ($addPasteButton) { 385 $cells[] = '<a
class=
"btn" href=
"' . htmlspecialchars($this->clipObj->pasteUrl('_FILE', $this->folderObject->getCombinedIdentifier())) . '" onclick=
"return ' . htmlspecialchars($this->clipObj->confirmMsg('_FILE', $this->path, 'into', $elFromTable)) . '" title=
"' . $GLOBALS['LANG']->getLL('clip_paste', 1) . '">
' . IconUtility::getSpriteIcon('actions-document-paste-after
') . '</a>
'; 388 if ($this->clipObj->current != 'normal
' && $iOut) { 389 $cells[] = $this->linkClipboardHeaderIcon(IconUtility::getSpriteIcon('actions-edit-copy
', array('title
' => $GLOBALS['LANG
']->getLL('clip_selectMarked
', TRUE))), $table, 'setCB
'); 390 $cells[] = $this->linkClipboardHeaderIcon(IconUtility::getSpriteIcon('actions-edit-
delete', array('title
' => $GLOBALS['LANG
']->getLL('clip_deleteMarked
'))), $table, 'delete', $GLOBALS['LANG
']->getLL('clip_deleteMarkedWarning
')); 391 $onClick = 'checkOffCB(\
'' . implode(
',', $this->CBnames) .
'\',
this);
return false;
'; 392 $cells[] = '<a
class=
"cbcCheckAll" rel=
"" href=
"#" onclick=
"' . htmlspecialchars($onClick) . '" title=
"' . $GLOBALS['LANG']->getLL('clip_markRecords', TRUE) . '">
' . IconUtility::getSpriteIcon('actions-document-select
') . '</a>
'; 394 $theData[$v] = implode('', $cells); 397 $theT = $this->linkWrapSort($GLOBALS['LANG
']->getLL('c_
' . $v, TRUE), $this->folderObject->getCombinedIdentifier(), $v); 398 $theData[$v] = $theT; 402 $out .= '<thead>
' . $this->addelement(1, '
', $theData) . '</thead>
'; 403 $out .= '<tbody>
' . $iOut . '</tbody>
'; 404 // half line is drawn 410 <table
class=
"t3-table" id=
"typo3-filelist">
416 $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage
', $GLOBALS['LANG
']->getLL('storageNotBrowsableMessage
'), $GLOBALS['LANG
']->getLL('storageNotBrowsableTitle
'), \TYPO3\CMS\Core\Messaging\FlashMessage::INFO); 417 $out = $flashMessage->render(); 430 protected function getLinkToParentFolder(\TYPO3\CMS\Core\Resource\Folder $currentFolder) { 433 $currentStorage = $currentFolder->getStorage(); 434 $parentFolder = $currentFolder->getParentFolder(); 435 if ($parentFolder->getIdentifier() !== $currentFolder->getIdentifier() && $currentStorage->isWithinFileMountBoundaries($parentFolder)) { 436 $levelUp = $this->linkWrapDir( 437 IconUtility::getSpriteIcon( 438 'actions-view-go-up
', 439 array('title
' => $GLOBALS['LANG
']->sL('LLL:EXT:lang/locallang_core.php:labels.upOneLevel
', TRUE)) 444 } catch (\Exception $e) {} 453 public function getFolderInfo() { 454 if ($this->counter == 1) { 455 $fileLabel = $GLOBALS['LANG
']->getLL('file
', TRUE); 457 $fileLabel = $GLOBALS['LANG
']->getLL('files
', TRUE); 459 return $this->counter . ' ' . $fileLabel . ',
' . GeneralUtility::formatSize($this->totalbytes, $GLOBALS['LANG
']->getLL('byteSizeUnits
', TRUE)); 469 public function formatDirList(array $folders) { 471 foreach ($folders as $folderName => $folderObject) { 472 $role = $folderObject->getRole(); 473 if ($role === FolderInterface::ROLE_PROCESSING) { 474 // don't show processing-folder
478 $displayName =
'<strong>' . htmlspecialchars($folderName) .
'</strong>';
480 $displayName = htmlspecialchars($folderName);
486 $isLocked =
$folderObject instanceof \TYPO3\CMS\Core\Resource\InaccessibleFolder;
494 if (!$isLocked && $this->clickMenus) {
495 $theIcon =
$GLOBALS[
'SOBE']->doc->wrapClickMenuOnIcon($theIcon,
$folderObject->getCombinedIdentifier());
501 foreach ($this->fieldArray as $field) {
502 $theData[$field] =
'';
504 $theData[
'file'] = $displayName;
506 foreach ($this->fieldArray as $field) {
511 }
catch (\
TYPO3\CMS\Core\Resource\Exception\InsufficientFolderAccessPermissionsException $e) {
514 $theData[$field] = $numFiles .
' ' .
$GLOBALS[
'LANG']->getLL(($numFiles === 1 ?
'file' :
'files'), TRUE);
517 $theData[$field] =
'<span class="typo3-red"><strong>' .
$GLOBALS[
'LANG']->getLL(
'read', TRUE) .
'</strong></span>' . (!$isWritable ?
'' :
'<span class="typo3-red"><strong>' .
$GLOBALS[
'LANG']->getLL(
'write', TRUE) .
'</strong></span>');
520 $theData[$field] =
$GLOBALS[
'LANG']->getLL(
'folder', TRUE);
524 $theData[$field] =
'-';
531 if ($this->bigControlPanel) {
535 $theData[$field] = $temp;
545 $out .= $this->addelement(1, $theIcon, $theData);
562 $href = $this->backPath . $this->script .
'&id=' . rawurlencode($folderObject->getCombinedIdentifier());
563 $onclick =
' onclick="' . htmlspecialchars((
'top.document.getElementsByName("navigation")[0].contentWindow.Tree.highlightActiveItem("file","folder' .
GeneralUtility::md5int($folderObject->getCombinedIdentifier()) .
'_"+top.fsMod.currentBank)')) .
'"';
565 if ((
string)$title === strip_tags($title)) {
566 return '<a href="' . htmlspecialchars($href) .
'"' . $onclick .
' title="' . htmlspecialchars($title) .
'">' .
GeneralUtility::fixed_lgd_cs($title, $this->fixedL) .
'</a>';
568 return '<a href="' . htmlspecialchars($href) .
'"' . $onclick .
'>' . $title .
'</a>';
581 $fileUrl = $fileObject->getPublicUrl(TRUE);
583 $aOnClick =
'return top.openUrlInWindow(\'' . $fileUrl .
'\', \
'WebFile\');';
584 $code =
'<a href="#" title="' . htmlspecialchars($code) .
'" onclick="' . htmlspecialchars($aOnClick) .
'">' .
GeneralUtility::fixed_lgd_cs($code, $this->fixedL) .
'</a>';
599 'target' => rawurlencode($this->folderObject->getCombinedIdentifier()),
600 'imagemode' => $this->thumbs
614 $title = htmlspecialchars($folderObject->getName());
615 $icon =
'apps-filetree-folder-default';
616 $role = $folderObject->getRole();
618 $title =
'<strong>' .
$GLOBALS[
'LANG']->getLL(
'temp', TRUE) .
'</strong>';
619 $icon =
'apps-filetree-folder-temp';
621 $icon =
'apps-filetree-folder-recycler';
622 $title =
'<strong>' .
$GLOBALS[
'LANG']->getLL(
'recycler', TRUE) .
'</strong>';
624 return array($title, $icon, $folderObject->getIdentifier());
637 $allSystemLanguages =
GeneralUtility::makeInstance(
'TYPO3\\CMS\\Backend\\Configuration\\TranslationConfigurationProvider')->getSystemLanguages();
638 $systemLanguages = array_filter($allSystemLanguages,
function($languageRecord) {
639 if ($languageRecord[
'uid'] === -1 || $languageRecord[
'uid'] === 0 || !
$GLOBALS[
'BE_USER']->checkLanguageAccess($languageRecord[
'uid'])) {
646 foreach ($files as $fileObject) {
652 $this->totalbytes += $fileObject->getSize();
653 $ext = $fileObject->getExtension();
654 $fileName = trim($fileObject->getName());
657 if ($this->clickMenus) {
658 $theIcon =
$GLOBALS[
'SOBE']->doc->wrapClickMenuOnIcon($theIcon, $fileObject->getCombinedIdentifier());
662 foreach ($this->fieldArray as $field) {
668 $theData[$field] =
'' . (!$fileObject->checkActionPermission(
'read') ?
' ' :
'<span class="typo3-red"><strong>' .
$GLOBALS[
'LANG']->getLL(
'read', TRUE) .
'</strong></span>') . (!$fileObject->checkActionPermission(
'write') ?
'' :
'<span class="typo3-red"><strong>' .
$GLOBALS[
'LANG']->getLL(
'write', TRUE) .
'</strong></span>');
671 $theData[$field] = strtoupper($ext);
678 if ($this->bigControlPanel) {
679 $temp .= $this->
makeEdit($fileObject);
681 $temp .= $this->
makeClip($fileObject);
682 if (!empty($systemLanguages)) {
683 $temp .=
'<a class="filelist-translationToggler" data-fileid="' . $fileObject->getUid() .
'">' .
686 $theData[$field] = $temp;
689 $theData[$field] = $this->
makeRef($fileObject);
692 $theData[$field] = $this->
linkWrapFile(htmlspecialchars($fileName), $fileObject);
694 if ($fileObject->isMissing()) {
695 $flashMessage = \TYPO3\CMS\Core\Resource\Utility\BackendUtility::getFlashMessageForMissingFile($fileObject);
696 $theData[$field] .= $flashMessage->render();
698 } elseif ($this->thumbs && $this->
isImage($ext)) {
699 $processedFile = $fileObject->process(\
TYPO3\CMS\Core\Resource\ProcessedFile::CONTEXT_IMAGEPREVIEW, array());
700 if ($processedFile) {
701 $thumbUrl = $processedFile->getPublicUrl(TRUE);
702 $theData[$field] .=
'<br /><img src="' . $thumbUrl .
'" title="' . htmlspecialchars($fileName) .
'" alt="" />';
706 if (!empty($systemLanguages) && $fileObject->isIndexed() && $fileObject->checkActionPermission(
'write')) {
707 $metaDataRecord = $fileObject->_getMetaData();
711 foreach ($systemLanguages as $language) {
712 $languageId = $language[
'uid'];
713 $flagIcon = $language[
'flagIcon'];
715 if (array_key_exists($languageId, $translations)) {
717 'actions-document-open',
718 array(
'title' => $fileName),
719 array($flagIcon .
'-overlay' => array()));
721 'sys_file_metadata' => array($translations[$languageId][
'uid'] =>
'edit')
724 $languageCode .= sprintf(
'<a href="#" onclick="%s">%s</a>', htmlspecialchars($editOnClick), $flagButtonIcon);
727 $href =
$GLOBALS[
'SOBE']->doc->issueCommand(
728 '&cmd[sys_file_metadata][' . $metaDataRecord[
'uid'] .
'][localize]=' . $languageId,
729 $this->backPath .
'alt_doc.php?justLocalized=' . rawurlencode((
'sys_file_metadata:' . $metaDataRecord[
'uid'] .
':' . $languageId)) .
733 $languageCode .= sprintf(
'<a href="%s">%s</a> ', htmlspecialchars($href), $flagButtonIcon);
738 $theData[$field] .=
'<div class="localisationData" data-fileid="' . $fileObject->getUid() .
'"' .
739 (empty($translations) ?
' style="display: none;"' :
'') .
'>' . $languageCode .
'</div>';
744 $theData[$field] =
'';
745 if ($fileObject->hasProperty($field)) {
750 $out .= $this->addelement(1, $theIcon, $theData);
765 $where =
$GLOBALS[
'TCA'][
'sys_file_metadata'][
'ctrl'][
'transOrigPointerField'] .
'=' . (int)$metaDataRecord[
'uid'] .
766 ' AND ' .
$GLOBALS[
'TCA'][
'sys_file_metadata'][
'ctrl'][
'languageField'] .
'>0';
767 $translationRecords = $this->
getDatabaseConnection()->exec_SELECTgetRows(
'*',
'sys_file_metadata', $where);
768 $translations = array();
769 foreach ($translationRecords as $record) {
770 $translations[$record[
$GLOBALS[
'TCA'][
'sys_file_metadata'][
'ctrl'][
'languageField']]] = $record;
772 return $translations;
796 if ($this->sort === $col) {
798 $params =
'&SET[sort]=' . $col .
'&SET[reverse]=' . ($this->sortRev ?
'0' :
'1');
801 $params =
'&SET[sort]=' . $col .
'&SET[reverse]=0';
805 return '<a href="' . htmlspecialchars($href) .
'">' . $code . $sortArrow .
'</a>';
816 if (!$fileOrFolderObject->checkActionPermission(
'read')) {
820 $fullIdentifier = $fileOrFolderObject->getCombinedIdentifier();
821 $md5 = GeneralUtility::shortmd5($fullIdentifier);
823 if ($this->clipObj->current ==
'normal') {
824 $isSel = $this->clipObj->isSelected(
'_FILE', $md5);
825 $cells[] =
'<a href="' . htmlspecialchars($this->clipObj->selUrlFile($fullIdentifier, 1, ($isSel ==
'copy'))) .
'">' .
IconUtility::getSpriteIcon((
'actions-edit-copy' . ($isSel ==
'copy' ?
'-release' :
'')), array(
'title' =>
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:cm.copy', TRUE))) .
'</a>';
827 if ($fileOrFolderObject->checkActionPermission(
'move')) {
828 $cells[] =
'<a href="' . htmlspecialchars($this->clipObj->selUrlFile($fullIdentifier, 0, ($isSel ==
'cut'))) .
'">' .
IconUtility::getSpriteIcon((
'actions-edit-cut' . ($isSel ==
'cut' ?
'-release' :
'')), array(
'title' =>
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:cm.cut', TRUE))) .
'</a>';
834 $n =
'_FILE|' . $md5;
835 $this->CBnames[] = $n;
836 $checked = $this->clipObj->isSelected(
'_FILE', $md5) ?
' checked="checked"' :
'';
837 $cells[] =
'<input type="hidden" name="CBH[' . $n .
']" value="0" />' .
'<input type="checkbox" name="CBC[' . $n .
']" value="' . htmlspecialchars($fullIdentifier) .
'" class="smallCheckboxes"' . $checked .
' />';
840 $elFromTable = $this->clipObj->elFromTable(
'_FILE');
841 if (is_a($fileOrFolderObject,
'TYPO3\\CMS\\Core\\Resource\\Folder') && count($elFromTable) && $fileOrFolderObject->checkActionPermission(
'write')) {
842 $addPasteButton = TRUE;
843 foreach ($elFromTable as $element) {
844 $clipBoardElement = $this->resourceFactory->retrieveFileOrFolderObject($element);
845 if ($clipBoardElement instanceof
Folder && $clipBoardElement->
getStorage()->isWithinFolder($clipBoardElement, $fileOrFolderObject)) {
846 $addPasteButton = FALSE;
849 if ($addPasteButton) {
850 $cells[] =
'<a class="btn" href="' . htmlspecialchars($this->clipObj->pasteUrl(
'_FILE', $fullIdentifier)) .
'" onclick="return ' . htmlspecialchars($this->clipObj->confirmMsg(
'_FILE', $fullIdentifier,
'into', $elFromTable)) .
'" title="' .
$GLOBALS[
'LANG']->getLL(
'clip_pasteInto', TRUE) .
'">' .
IconUtility::getSpriteIcon(
'actions-document-paste-into') .
'</a>';
854 return ' <!-- CLIPBOARD PANEL: --> 855 <div class="typo3-clipCtrl"> 870 $fullIdentifier = $fileOrFolderObject->getCombinedIdentifier();
873 if (is_a($fileOrFolderObject,
'TYPO3\\CMS\\Core\\Resource\\File') && $fileOrFolderObject->isIndexed() && $fileOrFolderObject->checkActionPermission(
'write')) {
874 $metaData = $fileOrFolderObject->_getMetaData();
876 'sys_file_metadata' => array($metaData[
'uid'] =>
'edit')
879 $title = htmlspecialchars(
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:cm.editMetadata'));
880 $cells[
'editmetadata'] =
'<a href="#" onclick="' . $editOnClick .
'" title="' . $title .
'">' 885 }
catch (\Exception $e) {
889 if (is_a($fileOrFolderObject,
'TYPO3\\CMS\\Core\\Resource\\File') && $fileOrFolderObject->checkActionPermission(
'write') &&
GeneralUtility::inList(
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'textfile_ext'], $fileOrFolderObject->getExtension())) {
890 $editOnClick =
'top.content.list_frame.location.href=top.TS.PATH_typo3+\'file_edit.php?target=' . rawurlencode($fullIdentifier) .
'&returnUrl=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);return false;';
891 $cells[
'edit'] =
'<a href="#" onclick="' . $editOnClick .
'" title="' .
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:cm.editcontent') .
'">' .
IconUtility::getSpriteIcon(
'actions-page-open') .
'</a>';
896 if ($fileOrFolderObject->checkActionPermission(
'rename')) {
897 $renameOnClick =
'top.content.list_frame.location.href = top.TS.PATH_typo3+\'file_rename.php?target=' . rawurlencode($fullIdentifier) .
'&returnUrl=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);return false;';
898 $cells[
'rename'] =
'<a href="#" onclick="' . $renameOnClick .
'" title="' .
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:cm.rename') .
'">' .
IconUtility::getSpriteIcon(
'actions-edit-rename') .
'</a>';
902 if ($fileOrFolderObject->checkActionPermission(
'read')) {
903 if (is_a($fileOrFolderObject,
'TYPO3\\CMS\\Core\\Resource\\Folder')) {
904 $infoOnClick =
'top.launchView( \'_FOLDER\', \'' . $fullIdentifier .
'\');
return false;
'; 905 } elseif (is_a($fileOrFolderObject, 'TYPO3\\CMS\\Core\\Resource\\File
')) { 906 $infoOnClick = 'top.launchView( \
'_FILE\', \'' . $fullIdentifier .
'\');
return false;
'; 908 $cells['info
'] = '<a href=
"#" onclick=
"' . $infoOnClick . '" title=
"' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:cm.info') . '">
' . IconUtility::getSpriteIcon('status-dialog-information
') . '</a>
'; 910 $cells['info
'] = IconUtility::getSpriteIcon('empty-empty
'); 914 if ($fileOrFolderObject->checkActionPermission('delete')) { 915 $identifier = $fileOrFolderObject->getIdentifier(); 916 if ($fileOrFolderObject instanceof \TYPO3\CMS\Core\Resource\Folder) { 917 $referenceCountText = BackendUtility::referenceCount('_FILE
', $identifier, ' (There are %s reference(s) to
this folder!)
'); 919 $referenceCountText = BackendUtility::referenceCount('sys_file
', $fileOrFolderObject->getUid(), ' (There are %s reference(s) to
this file!)
'); 922 if ($GLOBALS['BE_USER
']->jsConfirmation(4)) { 923 $confirmationCheck = 'confirm(
' . GeneralUtility::quoteJSvalue(sprintf($GLOBALS['LANG
']->sL('LLL:EXT:lang/locallang_core.xlf:mess.delete
'), $fileOrFolderObject->getName()) . $referenceCountText) . ')
'; 925 $confirmationCheck = '1 == 1
'; 928 $removeOnClick = 'if (
' . $confirmationCheck . ') { top.content.list_frame.location.href=top.TS.PATH_typo3+\
'tce_file.php?file[delete][0][data]=' . rawurlencode($fileOrFolderObject->getCombinedIdentifier()) .
'&vC=' .
$GLOBALS[
'BE_USER']->veriCode() .
BackendUtility::getUrlToken(
'tceAction') .
'&redirect=\'+top.rawurlencode(top.content.list_frame.document.location.pathname+top.content.list_frame.document.location.search);};';
930 $cells[
'delete'] =
'<a href="#" onclick="' . htmlspecialchars($removeOnClick) .
'" title="' .
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:cm.delete') .
'">' .
IconUtility::getSpriteIcon(
'actions-edit-delete') .
'</a>';
936 if (is_array(
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
'fileList'][
'editIconsHook'])) {
937 $cells[
'__fileOrFolderObject'] = $fileOrFolderObject;
938 foreach (
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
'fileList'][
'editIconsHook'] as $classData) {
941 throw new \UnexpectedValueException(
942 '$hookObject must implement interface \\TYPO3\\CMS\\Filelist\\FileListEditIconHookInterface',
946 $hookObject->manipulateEditIcons($cells, $this);
948 unset($cells[
'__fileOrFolderObject']);
951 return ' <!-- EDIT CONTROLS: --> 952 <div class="typo3-editCtrl"> 965 public function makeRef($fileOrFolderObject) {
972 $table =
'sys_refindex';
973 $rows = $databaseConnection->exec_SELECTgetRows(
976 'ref_table=' . $databaseConnection->fullQuoteStr(
'sys_file', $table)
977 .
' AND ref_uid=' . (int)$fileOrFolderObject->getUid()
979 .
' AND tablename != ' . $databaseConnection->fullQuoteStr(
'sys_file_metadata', $table)
makeClip($fileOrFolderObject)
generateReferenceToolTip(array $references, $launchViewParameter='')
static editOnClick($params, $backPath='', $requestUri='')
static getSpriteIconForResource(\TYPO3\CMS\Core\Resource\ResourceInterface $resource, array $options=array(), array $overlays=array())
static quoteJSvalue($value)
makeRef($fileOrFolderObject)
static getUserObj($classRef, $checkPrefix='', $silent=FALSE)
static logDeprecatedFunction()
static getUrlToken($formName='securityToken', $tokenName='formToken')
static makeInstance($className)
linkClipboardHeaderIcon($string, $table, $cmd, $warning='')
getLinkToParentFolder(\TYPO3\CMS\Core\Resource\Folder $currentFolder)
static removeXSS($string)
static getModuleUrl($moduleName, $urlParameters=array(), $backPathOverride=FALSE, $returnAbsoluteUrl=FALSE)
linkWrapDir($title, \TYPO3\CMS\Core\Resource\Folder $folderObject)
linkWrapFile($code, \TYPO3\CMS\Core\Resource\File $fileObject)
static linkThisScript(array $getParams=array())
static getSpriteIcon($iconName, array $options=array(), array $overlays=array())
dirData(\TYPO3\CMS\Core\Resource\Folder $folderObject)
makeEdit($fileOrFolderObject)
static implodeArrayForUrl($name, array $theArray, $str='', $skipBlank=FALSE, $rawurlencodeParamName=FALSE)
injectResourceFactory(ResourceFactory $resourceFactory)
static formatSize($sizeInBytes, $labels='')
getTranslationsForMetaData($metaDataRecord)
static fixed_lgd_cs($string, $chars, $appendString='...')
formatFileList(array $files)
linkWrapSort($code, $folderIdentifier, $col)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
static inList($list, $item)
getButtonsAndOtherMarkers(\TYPO3\CMS\Core\Resource\Folder $folderObject)
start(\TYPO3\CMS\Core\Resource\Folder $folderObject, $pointer, $sort, $sortRev, $clipBoard=FALSE, $bigControlPanel=FALSE)
static resolveBackPath($pathStr)