X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fmetatag%2Fmetatag_views%2Fmetatag_views.module;fp=web%2Fmodules%2Fcontrib%2Fmetatag%2Fmetatag_views%2Fmetatag_views.module;h=4a09b611298edb6d7d5e0e402ec47f486339df1a;hb=eba34333e3c89f208d2f72fa91351ad019a71583;hp=0000000000000000000000000000000000000000;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/modules/contrib/metatag/metatag_views/metatag_views.module b/web/modules/contrib/metatag/metatag_views/metatag_views.module new file mode 100644 index 000000000..4a09b6112 --- /dev/null +++ b/web/modules/contrib/metatag/metatag_views/metatag_views.module @@ -0,0 +1,75 @@ +getExecutable(); + } + elseif (is_string($view)) { + $view = Views::getView($view); + } + if (!$view instanceof ViewExecutable) { + return; + } + $view->setDisplay($display_id); + + // And get the list of extenders for this display. + $extenders = $view->getDisplay()->getExtenders(); + if (!isset($extenders['metatag_display_extender'])) { + // If the id of the plugin is not in the list then something is wrong. + return; + } + + // Retrieve the metatag settings from the extender. + return $extenders['metatag_display_extender']->getMetatags(); +} + +/** + * Implements hook_metatags_alter(). + */ +function metatag_views_metatags_alter(&$metatags, $context) { + if (!$context['entity'] instanceof ViewEntityInterface) { + return; + } + + $view = $context['entity']->getExecutable(); + // If display_id is not available, will default to Master display. + $display_id = \Drupal::routeMatch()->getParameter('display_id'); + if ($tags = metatag_get_view_tags($view, $display_id)) { + // Apply view overrides. + $metatags = array_merge($metatags, $tags); + } +} + +/** + * Implements hook_metatag_route_entity(). + */ +function metatag_views_metatag_route_entity(RouteMatchInterface $route_match) { + if ($view_id = $route_match->getParameter('view_id')) { + $entity = \Drupal::entityTypeManager()->getStorage('view')->load($view_id); + return $entity; + } +}