diff --git a/metatag_page_variants/metatag_page_variants.module b/metatag_page_variants/metatag_page_variants.module index 5d57fd2..d01945c 100644 --- a/metatag_page_variants/metatag_page_variants.module +++ b/metatag_page_variants/metatag_page_variants.module @@ -7,7 +7,6 @@ use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Entity\EntityInterface; use Drupal\page_manager\Entity\PageVariant; use Drupal\metatag\Entity\MetatagDefaults; @@ -50,9 +49,7 @@ function metatag_page_variants_page_attachments(array &$attachments) { $metatag_variant = MetatagDefaults::load($key); if ($metatag_variant) { // Overwrite the metatag defaults with the tags of the page variant. - foreach ($metatag_variant->get('tags') as $tag_name => $value) { - $metatag_defaults[$tag_name] = $value; - } + $metatag_defaults = array_merge($metatag_defaults, $metatag_variant->get('tags')); // Set the metatag in the static metatag attachments parameter so the metatag // module wouldn't overwrite them. @@ -79,8 +76,12 @@ function metatag_page_variants_page_attachments(array &$attachments) { /** * Returns all available page variants. + * + * @return string[] + * A list of page variants keyed by label. */ function _metatag_page_variants_get_variants() { + /** @var \Drupal\page_manager\Entity\PageVariant[] $variants */ $variants = PageVariant::loadMultiple(); $variant_options = array(); // Load all metatag defaults so we can filter the variants which already have @@ -89,7 +90,8 @@ function _metatag_page_variants_get_variants() { foreach ($variants as $key => $variant) { $id = $variant->getEntityType()->id() . '__' . $key; if (!isset($metatag_defaults[$id])) { - $variant_options[$id] = $variant->label(); + $label = $variant->getPage()->label() . ' : ' . $variant->label(); + $variant_options[$id] = $label; } } return $variant_options;