/** * @param array $parameters */ public function renderField(array $parameters) { $uid = $parameters['row']['file'][0]; $fileObject = Utility::uid2file($parameters['row']['file'][0]); $name = $fileObject->getIdentifier(); return '<div data-uid="' . $uid . '" data-name="' . $name . '" class="semanticimage" />'; }
public static function copyToPublic($uid) { $fileObject = Utility::uid2file($uid); $nameWithout = $fileObject->getNameWithoutExtension(); $ext = $fileObject->getExtension(); $temp = Utility::createPublicTempFile($nameWithout, '.' . $ext); file_put_contents($temp['name'], $fileObject->getContents()); return $temp; }
/** * Adapted behaviour from FileListController * Semantically search for files by name and pass them with a facade to fluid * @param string $searchWord * @return void */ public function searchAction($searchWord = '') { if (empty($searchWord)) { $this->forward('index'); } $temp = $this->createZipArchiveForCurrentFolder(); $text = Utility::createPublicTempFile('text', '.txt'); file_put_contents($text['name'], $searchWord); $remoteController = GeneralUtility::makeInstance(CalculateService::class); $mapping = $remoteController->search($temp, $text); Utility::removePublicTempFile($temp); Utility::removePublicTempFile($text); $fileFacades = []; if (empty($mapping)) { $this->controllerContext->getFlashMessageQueue('core.template.flashMessages')->addMessage(new FlashMessage("Nothing found!", '', FlashMessage::INFO)); } else { foreach ($mapping as $uid => $score) { $fileFacades[] = new FileFacade(Utility::uid2file($uid), $score); } } $pageRenderer = $this->view->getModuleTemplate()->getPageRenderer(); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Filelist/FileList'); $this->view->assign('searchWord', $searchWord); $this->view->assign('files', $fileFacades); }