From 575290ac3c5097b85bb32bee54456c1748eb5e2a Mon Sep 17 00:00:00 2001 From: David Mellen Date: Wed, 7 Aug 2024 08:24:34 +0200 Subject: [PATCH] feat: use breadcrumbTitleProvider for news details --- .../NewsBreadcrumbTitleProvider.php | 15 +++++++++++++++ Classes/Controller/NewsController.php | 10 ++++++++++ Configuration/TypoScript/setup.typoscript | 8 ++++++++ 3 files changed, 33 insertions(+) create mode 100644 Classes/BreadcrumbTitle/NewsBreadcrumbTitleProvider.php diff --git a/Classes/BreadcrumbTitle/NewsBreadcrumbTitleProvider.php b/Classes/BreadcrumbTitle/NewsBreadcrumbTitleProvider.php new file mode 100644 index 0000000..4fc2f1a --- /dev/null +++ b/Classes/BreadcrumbTitle/NewsBreadcrumbTitleProvider.php @@ -0,0 +1,15 @@ +title = $title; + } +} diff --git a/Classes/Controller/NewsController.php b/Classes/Controller/NewsController.php index 5812333..3bcb0b9 100644 --- a/Classes/Controller/NewsController.php +++ b/Classes/Controller/NewsController.php @@ -8,6 +8,7 @@ use GeorgRinger\News\Domain\Model\News; use Psr\Http\Message\ResponseInterface; use Remind\Headless\Service\JsonService; +use Remind\HeadlessNews\BreadcrumbTitle\NewsBreadcrumbTitleProvider; use Remind\HeadlessNews\Service\JsonService as NewsJsonService; use TYPO3\CMS\Fluid\ViewHelpers\CObjectViewHelper; @@ -15,6 +16,7 @@ class NewsController extends BaseNewsController { private ?JsonService $jsonService = null; private ?NewsJsonService $newsJsonService = null; + private ?NewsBreadcrumbTitleProvider $newsBreadcrumbTitleProvider = null; public function injectJsonService(JsonService $jsonService): void { @@ -26,6 +28,12 @@ public function injectNewsJsonService(NewsJsonService $newsJsonService): void $this->newsJsonService = $newsJsonService; } + public function injectNewsBreadcrumbTitleProvider( + NewsBreadcrumbTitleProvider $newsBreadcrumbTitleProvider + ): void { + $this->newsBreadcrumbTitleProvider = $newsBreadcrumbTitleProvider; + } + /** * Output a list view of news * @@ -143,6 +151,8 @@ public function detailAction(News $news = null, $currentPage = 1): ResponseInter ], ]; + $this->newsBreadcrumbTitleProvider->setTitle($news->getTitle()); + return $this->jsonResponse(json_encode($result)); } diff --git a/Configuration/TypoScript/setup.typoscript b/Configuration/TypoScript/setup.typoscript index 3fd8650..f33c91e 100644 --- a/Configuration/TypoScript/setup.typoscript +++ b/Configuration/TypoScript/setup.typoscript @@ -1,3 +1,11 @@ @import 'EXT:news/Configuration/TypoScript/setup.typoscript' @import 'EXT:rmnd_headless_news/Configuration/TypoScript/Content/*.typoscript' @import 'EXT:rmnd_headless_news/Configuration/TypoScript/Extensions/*.typoscript' + +config { + breadcrumbTitleProviders { + rmnd_headless_news { + provider = Remind\HeadlessNews\BreadcrumbTitle\NewsBreadcrumbTitleProvider + } + } +}