pageRenderer->loadJavaScriptModule('@typo3/filelist/linkbrowser-file-handler.js'); $this->resourceDisplayMatcher = GeneralUtility::makeInstance(Matcher::class); $this->resourceDisplayMatcher->addMatcher(GeneralUtility::makeInstance(ResourceFolderTypeMatcher::class)); // @todo Deprecate "allowedExtensions", see LinkPopup for further information $allowedExtensions = GeneralUtility::trimExplode(',', (string)($this->linkBrowser->getParameters()['params']['allowedExtensions'] ?? ''), true); $allowedFileExtensions = GeneralUtility::trimExplode(',', (string)($this->linkBrowser->getParameters()['params']['allowedFileExtensions'] ?? ''), true); $allowedFileExtensions = array_unique(array_merge($allowedExtensions, $allowedFileExtensions)); if (count($allowedFileExtensions) >= 1) { $fileExtensionMatcher = GeneralUtility::makeInstance(ResourceFileExtensionMatcher::class); $fileExtensionMatcher->setExtensions($allowedFileExtensions); } else { $fileExtensionMatcher = GeneralUtility::makeInstance(ResourceFileTypeMatcher::class); } $this->resourceDisplayMatcher->addMatcher($fileExtensionMatcher); } public function render(ServerRequestInterface $request): string { $contentHtml = ''; if ($this->selectedFolder !== null) { // store the selected folder $backendUser = $this->getBackendUser(); $modData = $backendUser->getModuleData('browse_links.php', 'ses'); $modData['expandFolder'] = $this->selectedFolder->getCombinedIdentifier(); $backendUser->pushModuleData('browse_links.php', $modData); // Create the filelist $this->filelist->start( $this->selectedFolder, MathUtility::forceIntegerInRange($this->currentPage, 1, 100000), $this->sortField, $this->sortDirection, Mode::BROWSE ); $this->filelist->setResourceDisplayMatcher($this->resourceDisplayMatcher); $this->filelist->setResourceSelectableMatcher($this->resourceSelectableMatcher); // Only add selected columns if the feature is enabled if ($this->getBackendUser()->getTSConfig()['options.']['file_list.']['displayColumnSelector'] ?? true) { $this->filelist->setColumnsToRender($this->getBackendUser()->getModuleData('list/displayFields')['_FILE'] ?? []); } $searchWord = trim((string)($request->getParsedBody()['searchTerm'] ?? $request->getQueryParams()['searchTerm'] ?? '')); $searchDemand = $searchWord !== '' ? FileSearchDemand::createForSearchTerm($searchWord)->withFolder($this->selectedFolder)->withRecursive() : null; $resource = $this->linkParts['url']['file'] ?? null; if ($resource instanceof ResourceInterface) { $resourceSelectedMatcher = GeneralUtility::makeInstance(Matcher::class); $resourceMatcher = GeneralUtility::makeInstance(ResourceMatcher::class); $resourceMatcher->addResource($resource); $resourceSelectedMatcher->addMatcher($resourceMatcher); $this->filelist->setResourceSelectedMatcher($resourceSelectedMatcher); } $markup = []; // Render the filelist search box $markup[] = '