You are here

function metatag_get_view_tags in Metatag 8

Gets the meta tags of a specific view, if set.

Parameters

mixed $view: The view id, view config entity or view executable.

string $display_id: The display id. If empty uses the preselected display if $view is a ViewExecutable, otherwise the default display.

Return value

array|null The meta tags if set, null otherwise.

3 calls to metatag_get_view_tags()
MetatagViewsController::getTaggedViews in metatag_views/src/Controller/MetatagViewsController.php
Get meta tags for all of the views / displays that have them set.
MetatagViewsEditForm::buildForm in metatag_views/src/Form/MetatagViewsEditForm.php
Form constructor.
metatag_views_metatags_alter in metatag_views/metatag_views.module
Implements hook_metatags_alter().

File

metatag_views/metatag_views.module, line 29
Contains hook implementations for the metatag_views module.

Code

function metatag_get_view_tags($view, $display_id = NULL, $args = []) {
  if (empty($view)) {
    return;
  }
  if ($view instanceof ViewEntityInterface) {
    $view = $view
      ->getExecutable();
  }
  elseif (is_string($view)) {
    $view = Views::getView($view);
  }
  if (!$view instanceof ViewExecutable) {
    return;
  }
  $view
    ->setDisplay($display_id);
  $view
    ->setArguments($args);
  $view
    ->buildTitle();

  // 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();
}