getParsedBody()['id'] ?? $request->getQueryParams()['id'] ?? 0); $pageInfo = $this->getPageRecord($pageUid); if ($pageInfo === null || $pageInfo['doktype'] !== Constants::DOKTYPE_BLOG_POST) { return ''; } $post = $this->getPostByUid($pageUid); $view = $this->getView($request); $view->assign('post', $post); return $view->render(); } protected function getPostByUid(int $pageUid): Post { $query = $this->postRepository->createQuery(); $querySettings = $query->getQuerySettings(); $querySettings->setIgnoreEnableFields(true); $querySettings->setRespectStoragePage(false); $this->postRepository->setDefaultQuerySettings($querySettings); return $this->postRepository->findOneBy(['uid' => $pageUid]); } protected function getPageRecord(int $pageUid): ?array { $pagePermsClause = $this->getBackendUser()?->getPagePermsClause(Permission::PAGE_SHOW) ?? ''; return BackendUtility::getRecord('pages', $pageUid, 'doktype', $pagePermsClause); } protected function getView(ServerRequestInterface $request): FluidViewAdapter { $viewFactoryData = new ViewFactoryData( ['EXT:ew_bloggy/Resources/Private/Templates'], ['EXT:ew_bloggy/Resources/Private/Partials'], ['EXT:ew_bloggy/Resources/Private/Layouts'], request: $request, ); /** @var FluidViewAdapter $view */ $view = $this->viewFactory->create($viewFactoryData); $view->getRenderingContext()->setControllerName('PageLayout'); $view->getRenderingContext()->setControllerAction('Header'); return $view; } protected function getBackendUser(): ?BackendUserAuthentication { return $GLOBALS['BE_USER'] ?? null; } }