2 declare(strict_types = 1);
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
56 $this->shortcutToolbarItem = GeneralUtility::makeInstance(ShortcutToolbarItem::class);
57 $this->shortcutRepository = GeneralUtility::makeInstance(ShortcutRepository::class);
59 $this->moduleLoader = GeneralUtility::makeInstance(ModuleLoader::class);
60 $this->moduleLoader->load(
$GLOBALS[
'TBE_MODULES']);
70 return new HtmlResponse($this->shortcutToolbarItem->getDropDown());
79 public function addAction(ServerRequestInterface $request): ResponseInterface
82 $parsedBody = $request->getParsedBody();
83 $queryParams = $request->getQueryParams();
84 $url = rawurldecode($parsedBody[
'url'] ?? $queryParams[
'url'] ??
'');
86 if ($this->shortcutRepository->shortcutExists($url)) {
87 $result =
'alreadyExists';
89 $moduleName = $parsedBody[
'module'] ??
'';
90 $parentModuleName = $parsedBody[
'motherModName'] ??
'';
91 $shortcutName = $parsedBody[
'displayName'] ??
'';
92 $success = $this->shortcutRepository->addShortcut($url, $moduleName, $parentModuleName, $shortcutName);
110 $parsedBody = $request->getParsedBody();
111 $queryParams = $request->getQueryParams();
113 $selectedShortcutId = (int)($parsedBody[
'shortcutId'] ?? $queryParams[
'shortcutId']);
114 $selectedShortcutGroupId = (int)($parsedBody[
'shortcutGroup'] ?? $queryParams[
'shortcutGroup']);
115 $selectedShortcut = $this->shortcutRepository->getShortcutById($selectedShortcutId);
116 $shortcutGroups = $this->shortcutRepository->getShortcutGroups();
119 $editFormView->assign(
'selectedShortcutId', $selectedShortcutId);
120 $editFormView->assign(
'selectedShortcutGroupId', $selectedShortcutGroupId);
121 $editFormView->assign(
'selectedShortcut', $selectedShortcut);
122 $editFormView->assign(
'shortcutGroups', $shortcutGroups);
134 public function updateAction(ServerRequestInterface $request): ResponseInterface
136 $parsedBody = $request->getParsedBody();
137 $queryParams = $request->getQueryParams();
138 $shortcutId = (int)($parsedBody[
'shortcutId'] ?? $queryParams[
'shortcutId'] ?? 0);
139 $shortcutTitle = strip_tags($parsedBody[
'shortcutTitle'] ?? $queryParams[
'shortcutTitle'] ??
'');
140 $shortcutGroupId = (int)($parsedBody[
'shortcutGroup'] ?? $queryParams[
'shortcutGroup'] ?? 0);
142 $success = $this->shortcutRepository->updateShortcut($shortcutId, $shortcutTitle, $shortcutGroupId);
144 return new HtmlResponse($success ? $shortcutTitle :
'failed');
153 public function removeAction(ServerRequestInterface $request): ResponseInterface
155 $parsedBody = $request->getParsedBody();
156 $queryParams = $request->getQueryParams();
157 $shortcutId = (int)($parsedBody[
'shortcutId'] ?? $queryParams[
'shortcutId'] ?? 0);
158 $success = $this->shortcutRepository->removeShortcut($shortcutId);
174 $view = GeneralUtility::makeInstance(StandaloneView::class);
175 $view->setLayoutRootPaths([
'EXT:backend/Resources/Private/Layouts']);
176 $view->setPartialRootPaths([
'EXT:backend/Resources/Private/Partials']);
177 $view->setTemplateRootPaths([
'EXT:backend/Resources/Private/Templates/ShortcutToolbarItem']);
178 $view->setTemplate($templateFilename);
179 $view->getRequest()->setControllerExtensionName(
'Backend');