diff --git a/bundle/Controller/IbexaPageView.php b/bundle/Controller/IbexaPageView.php index fe61502..182e6d8 100644 --- a/bundle/Controller/IbexaPageView.php +++ b/bundle/Controller/IbexaPageView.php @@ -6,6 +6,7 @@ use Netgen\Bundle\IbexaSiteApiBundle\Controller\Controller as BaseController; use Netgen\Bundle\IbexaSiteApiBundle\View\ContentView; +use Netgen\Layouts\HttpCache\TaggerInterface; use Netgen\Layouts\Layout\Resolver\LayoutResolverInterface; use Netgen\OpenApiIbexa\Page\Output\OutputVisitor; use Netgen\OpenApiIbexa\Page\PageFactory; @@ -23,6 +24,7 @@ public function __construct( private LayoutResolverInterface $layoutResolver, private PageFactory $pageFactory, private OutputVisitor $outputVisitor, + private TaggerInterface $layoutsTagger, ) {} public function __invoke(ContentView $view): JsonResponse @@ -31,9 +33,14 @@ public function __invoke(ContentView $view): JsonResponse $queryDefinitionCollection = $view->getParameter(ContentView::QUERY_DEFINITION_COLLECTION_NAME); $rule = $this->layoutResolver->resolveRule(); + $layout = $rule?->getLayout(); + + if ($layout !== null) { + $this->layoutsTagger->tagLayout($layout); + } $data = $this->outputVisitor->visit( - $this->pageFactory->buildPage($view->getSiteContent(), $view->getSiteLocation(), $queryDefinitionCollection, $rule?->getLayout()), + $this->pageFactory->buildPage($view->getSiteContent(), $view->getSiteLocation(), $queryDefinitionCollection, $layout), ); return new JsonResponse( diff --git a/bundle/Resources/config/services/controllers.yaml b/bundle/Resources/config/services/controllers.yaml index e5804f6..10aa073 100644 --- a/bundle/Resources/config/services/controllers.yaml +++ b/bundle/Resources/config/services/controllers.yaml @@ -35,6 +35,7 @@ services: - '@netgen_layouts.layout.resolver' - '@netgen.openapi_ibexa.page.factory' - '@netgen.openapi_ibexa.page.output.visitor.output_visitor' + - '@netgen_layouts.http_cache.tagger' public: true tags: - { name: container.service_subscriber }