defaultViewObjectName = JsonView::class; } /** * @param int $objectUid * @param string $tablename * @throws \TYPO3\CMS\Frontend\Exception */ public function statusAction(int $objectUid,string $tablename) { $user = $this->getCurrentUser(); $this->view->setVariablesToRender(['status']); $this->view->assignMultiple([ 'status' => ['status' => $this->bookmarkRepository->countByUserTablenameObjectUid($user['uid'],$tablename,$objectUid) === 0? 'false':'true'] ]); } public function initializeToggleAction() { $this->defaultViewObjectName = JsonView::class; } /** * @param int $objectUid * @param string $tablename * @throws \TYPO3\CMS\Frontend\Exception */ public function toggleAction(int $objectUid, string $tablename) { $user = $this->getCurrentUser(); $this->view->setVariablesToRender(['status']); if ($this->bookmarkRepository->countByUserTablenameObjectUid($user['uid'], $tablename, $objectUid) === 0) { $bookmark = new Bookmark(); $bookmark->setUser($user['uid']); $bookmark->setTablename($tablename); $bookmark->setObjectUid($objectUid); $this->bookmarkRepository->add($bookmark); $this->view->assignMultiple([ 'status' => ['status' => 'true'] ]); } else { $this->bookmarkRepository->removeByUserTablenameObjectUid($user['uid'], $tablename, $objectUid); $this->view->assignMultiple([ 'status' => ['status' => 'false'] ]); } } /** * @param int $objectUid * @param string $tablename * @throws \TYPO3\CMS\Frontend\Exception */ public function deleteAction(int $objectUid, string $tablename) { $user = $this->getCurrentUser(); $this->bookmarkRepository->removeByUserTablenameObjectUid($user['uid'], $tablename, $objectUid); $this->redirectToUri($this->uriBuilder->reset()->buildFrontendUri()); } /** */ public function personalListAction() { $user = $this->getCurrentUser(); $bookmarks = []; $objs = $this->bookmarkRepository->findByUser($user['uid']); /** @var Bookmark $obj */ foreach ($objs as $obj) { $bookmark = []; $bookmark['tablename'] = $obj->getTablename(); $bookmark['object_uid'] = $obj->getObjectUid(); if ($obj->getTablename() === 'pages') { $page = BackendUtility::getRecord('pages',$obj->getObjectUid(),'title'); if ($page) { $bookmark['title'] = $page['title']; $bookmark['url'] = $this->uriBuilder->reset()->setTargetPageUid($obj->getObjectUid())->buildFrontendUri(); } $bookmarks[] = $bookmark; } } $this->view->assignMultiple([ 'bookmarks' => $bookmarks ]); } }