diff --git a/src/Controller/Frontend/DetailController.php b/src/Controller/Frontend/DetailController.php index 6c0cbd960..660591dc9 100644 --- a/src/Controller/Frontend/DetailController.php +++ b/src/Controller/Frontend/DetailController.php @@ -82,7 +82,7 @@ public function contentByFieldValue(string $contentTypeSlug, string $field, stri return $this->renderSingle($record); } - public function renderSingle(?Content $record, bool $requirePublished = true): Response + public function renderSingle(?Content $record, bool $requirePublished = true, array $templates = []): Response { if (! $record) { throw new NotFoundHttpException('Content not found'); @@ -109,7 +109,9 @@ public function renderSingle(?Content $record, bool $requirePublished = true): R // later on, if we need to get the root record of a page. $this->twig->addGlobal('record', $record); - $templates = $this->templateChooser->forRecord($record); + if (empty($templates)) { + $templates = $this->templateChooser->forRecord($record); + } return $this->renderTemplate($templates, $context); } diff --git a/src/Controller/Frontend/HomepageController.php b/src/Controller/Frontend/HomepageController.php index 4a66002d8..1e1ca5149 100644 --- a/src/Controller/Frontend/HomepageController.php +++ b/src/Controller/Frontend/HomepageController.php @@ -15,9 +15,13 @@ class HomepageController extends TwigAwareController implements FrontendZoneInte /** @var TemplateChooser */ private $templateChooser; - public function __construct(TemplateChooser $templateChooser) + /** @var DetailController */ + private $detailController; + + public function __construct(TemplateChooser $templateChooser, DetailController $detailController) { $this->templateChooser = $templateChooser; + $this->detailController = $detailController; } /** @@ -28,7 +32,7 @@ public function __construct(TemplateChooser $templateChooser) * name="homepage_locale", * requirements={"_locale": "%app_locales%"}) */ - public function homepage(ContentRepository $contentRepository): Response + public function homepage(ContentRepository $contentRepository, bool $requirePublished = true): Response { $homepage = $this->config->get('theme/homepage') ?: $this->config->get('general/homepage'); $params = explode('/', $homepage); @@ -58,6 +62,6 @@ public function homepage(ContentRepository $contentRepository): Response $templates = $this->templateChooser->forHomepage(); - return $this->renderTemplate($templates, ['record' => $record]); + return $this->detailController->renderSingle($record, $requirePublished, $templates); } }