Skip to content

Commit

Permalink
feat: use breadcrumbTitleProvider for news details
Browse files Browse the repository at this point in the history
  • Loading branch information
dvdmlln committed Aug 7, 2024
1 parent 356c398 commit 575290a
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
15 changes: 15 additions & 0 deletions Classes/BreadcrumbTitle/NewsBreadcrumbTitleProvider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

declare(strict_types=1);

namespace Remind\HeadlessNews\BreadcrumbTitle;

use Remind\Headless\BreadcrumbTitle\AbstractBreadcrumbTitleProvider;

class NewsBreadcrumbTitleProvider extends AbstractBreadcrumbTitleProvider
{
public function setTitle(string $title): void
{
$this->title = $title;
}
}
10 changes: 10 additions & 0 deletions Classes/Controller/NewsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@
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;

class NewsController extends BaseNewsController
{
private ?JsonService $jsonService = null;
private ?NewsJsonService $newsJsonService = null;
private ?NewsBreadcrumbTitleProvider $newsBreadcrumbTitleProvider = null;

public function injectJsonService(JsonService $jsonService): void
{
Expand All @@ -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
*
Expand Down Expand Up @@ -143,6 +151,8 @@ public function detailAction(News $news = null, $currentPage = 1): ResponseInter
],
];

$this->newsBreadcrumbTitleProvider->setTitle($news->getTitle());

return $this->jsonResponse(json_encode($result));
}

Expand Down
8 changes: 8 additions & 0 deletions Configuration/TypoScript/setup.typoscript
Original file line number Diff line number Diff line change
@@ -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
}
}
}

0 comments on commit 575290a

Please sign in to comment.