You are here

function metatag_hreflang_metatag_metatags_view_alter in Metatag 7

Implements hook_metatag_metatags_view_alter().

File

metatag_hreflang/metatag_hreflang.module, line 64
Primary hook implementations for Metatag:hreflang.

Code

function metatag_hreflang_metatag_metatags_view_alter(&$output, $instance, $options) {

  // Remove any hreflang="LANGCODE" values that match hreflang="x-default".
  // Using this hook instead of hook_html_head_alter() as it gets closer to
  // Metatag's data structures, and the results are cached so this won't be
  // executed on every page request.
  // This behaviour may be disabled from the Metatag settings page.
  if (!variable_get('metatag_hreflang_allow_dupe', FALSE)) {
    if (!empty($output['hreflang_xdefault'])) {
      $default = $output['hreflang_xdefault']['#attached']['drupal_add_html_head'][0][0]['#value'];
      foreach ($output as $tag_name => &$tag) {

        // Skip the x-default tag.
        if ($tag_name == 'hreflang_xdefault') {
          continue;
        }
        if (strpos($tag_name, 'hreflang_') === 0) {
          if ($tag['#attached']['drupal_add_html_head'][0][0]['#value'] == $default) {
            $tag['#attached']['drupal_add_html_head'][0][0]['#access'] = FALSE;
          }
        }
      }
    }
  }
}