pageRenderer->loadJavaScriptModule('@typo3/filelist/linkbrowser-folder-handler.js'); $this->resourceDisplayMatcher = GeneralUtility::makeInstance(Matcher::class); $this->resourceDisplayMatcher->addMatcher(GeneralUtility::makeInstance(ResourceFolderTypeMatcher::class)); } public function render(ServerRequestInterface $request): string { $contentHtml = ''; if ($this->selectedFolder !== null) { // Create the filelist $this->filelist->start( $this->selectedFolder, MathUtility::forceIntegerInRange($this->currentPage, 1, 100000), $this->sortField, $this->sortDirection, Mode::BROWSE ); $markup = []; // Create the filelist header bar $markup[] = '
'; $markup[] = '
'; $markup[] = '
'; $markup[] = ' ' . $this->getSortingModeButtons($request); $markup[] = ' ' . $this->getViewModeButton($request); $markup[] = '
'; $markup[] = '
'; $this->filelist->setResourceDisplayMatcher($this->resourceDisplayMatcher); $this->filelist->setResourceSelectableMatcher($this->resourceSelectableMatcher); $resource = $this->linkParts['url']['folder'] ?? 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[] = $this->filelist->render(null, $this->view); // Build the file upload and folder creation form $resourceUtilityRenderer = GeneralUtility::makeInstance(ResourceUtilityRenderer::class, $this); $markup[] = $resourceUtilityRenderer->createFolder($request, $this->selectedFolder); $contentHtml = implode(PHP_EOL, $markup); } $this->view->assign('selectedFolder', $this->selectedFolder); $this->view->assign('selectedFolderLink', (GeneralUtility::makeInstance(LinkService::class))->asString(['type' => LinkService::TYPE_FOLDER, 'folder' => $this->selectedFolder])); $this->view->assign('content', $contentHtml); $this->view->assign('contentOnly', (bool)($request->getQueryParams()['contentOnly'] ?? false)); $this->view->assign('treeActions', ['link']); $this->view->assign('currentIdentifier', !empty($this->linkParts) ? $this->linkParts['url']['folder']->getCombinedIdentifier() : ''); return $this->view->render('LinkHandler/Folder'); } }