2 declare(strict_types = 1);
49 $this->documentService =
$documentService ?: GeneralUtility::makeInstance(OpenDocumentService::class);
71 return $view->render();
92 $view->assignMultiple([
93 'openDocuments' => $this->
getMenuEntries($this->documentService->getOpenDocuments()),
95 'recentDocuments' => $this->getMenuEntries($this->documentService->getRecentDocuments()),
98 return $view->render();
129 $params[
'JScode'] =
'
130 if (top && top.TYPO3.OpendocsMenu) {
131 top.TYPO3.OpendocsMenu.updateMenu();
146 foreach ($documents as $identifier => $document) {
149 if (!empty($menuEntry)) {
150 $entries[] = $menuEntry;
164 protected function getMenuEntry(array $document,
string $identifier): array
166 $table = $document[3][
'table'];
167 $uid = $document[3][
'uid'];
170 if (!is_array($record)) {
176 $result[
'table'] = $table;
177 $result[
'record'] = $record;
178 $result[
'label'] = htmlspecialchars(strip_tags(htmlspecialchars_decode($document[0])));
180 $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
181 $uri = (string)$uriBuilder->buildUriFromRoute(
'record_edit') .
'&' . $document[2];
182 $pid = (int)$document[3][
'pid'];
184 if ($document[3][
'table'] ===
'pages') {
185 $pid = (int)$document[3][
'uid'];
188 $result[
'onClickCode'] =
'jump(' . GeneralUtility::quoteJSvalue($uri) .
', \'web_list\', \'web\', ' . $pid .
'); TYPO3.OpendocsMenu.toggleMenu(); return false;';
189 $result[
'md5sum'] = $identifier;
202 $view = GeneralUtility::makeInstance(StandaloneView::class);
203 $view->setLayoutRootPaths([
'EXT:opendocs/Resources/Private/Layouts']);
204 $view->setPartialRootPaths([
205 'EXT:backend/Resources/Private/Partials/ToolbarItems',
206 'EXT:opendocs/Resources/Private/Partials/ToolbarItems',
208 $view->setTemplateRootPaths([
'EXT:opendocs/Resources/Private/Templates/ToolbarItems']);
209 $view->setTemplate($filename);
210 $view->getRequest()->setControllerExtensionName(
'Opendocs');