diff --git a/bundle/Handler/FieldType/CanonicalUrl.php b/bundle/Handler/FieldType/CanonicalUrl.php new file mode 100644 index 0000000..32dd9e0 --- /dev/null +++ b/bundle/Handler/FieldType/CanonicalUrl.php @@ -0,0 +1,39 @@ +router = $router; + } + public function getMetaTags($tagName, array $params = []): array + { + $value = $this->router->generate( + 'ibexa.url.alias', + [ + 'locationId' => $this->content->contentInfo->mainLocationId, + ], + UrlGeneratorInterface::ABSOLUTE_URL, + ); + return array( + new Item( + $tagName, + $value + ), + ); + } + protected function supports(Field $field): bool + { + return true; + } +} diff --git a/bundle/Resources/config/services.yaml b/bundle/Resources/config/services.yaml index 41103b9..3fe4e05 100644 --- a/bundle/Resources/config/services.yaml +++ b/bundle/Resources/config/services.yaml @@ -11,3 +11,14 @@ services: netgen_open_graph.meta_tag_renderer: class: Netgen\Bundle\OpenGraphBundle\MetaTag\Renderer + + app.opengraph.handler.url: + class: Netgen\Bundle\OpenGraphBundle\Handler\FieldType\CanonicalUrl + public: false + lazy: true + arguments: + - "@router" + - '@Ibexa\Core\Helper\TranslationHelper' + - "@ibexa.api.service.content" + tags: + - { name: netgen_open_graph.meta_tag_handler, alias: app/canonical }