function metatag_get_default_tags in Metatag 8
Returns default tags for the current route.
Return value
mixed Array of tags or NULL;
6 calls to metatag_get_default_tags()
- MetatagConfigTranslationTest::testConfigTranslations in tests/
src/ Functional/ MetatagConfigTranslationTest.php - Confirm the global configs are translatable page.
- MetatagFieldItem::preSave in src/
Plugin/ Field/ FieldType/ MetatagFieldItem.php - Defines custom presave behavior for field values.
- MetatagFirehose::formElement in src/
Plugin/ Field/ FieldWidget/ MetatagFirehose.php - Returns the form for a single field widget.
- metatag_get_tags_from_route in ./
metatag.module - Load the meta tags by processing the route parameters.
- metatag_page_manager_page_attachments in metatag_page_manager/
metatag_page_manager.module - Implements hook_page_attachments().
File
- ./
metatag.module, line 537 - Contains metatag.module.
Code
function metatag_get_default_tags($entity = NULL) {
/** @var \Drupal\Core\Entity\EntityStorageInterface $global_metatag_manager */
$global_metatag_manager = \Drupal::entityTypeManager()
->getStorage('metatag_defaults');
/** @var \Drupal\metatag\MetatagManager $metatag_manager */
$metatag_manager = \Drupal::service('metatag.manager');
// Load config based on language.
$current_language = NULL;
if ($entity !== NULL) {
/** @var \Drupal\Core\Language\LanguageManagerInterface $language_manager */
$language_manager = \Drupal::languageManager();
$current_language = $language_manager
->getConfigOverrideLanguage();
$language_manager
->setConfigOverrideLanguage($entity
->language());
}
// First we load global defaults.
$metatags = $metatag_manager
->getGlobalMetatags();
if (!$metatags) {
if ($current_language) {
$language_manager
->setConfigOverrideLanguage($current_language);
}
return NULL;
}
// Check if this is a special page.
$special_metatags = $metatag_manager
->getSpecialMetatags();
if (isset($special_metatags)) {
$metatags
->overwriteTags($special_metatags
->get('tags'));
}
else {
if (!$entity) {
$entity = metatag_get_route_entity();
}
if (!empty($entity) && $entity instanceof ContentEntityInterface) {
/** @var \Drupal\metatag\Entity\MetatagDefaults|null $entity_metatags */
$entity_metatags = $global_metatag_manager
->load($entity
->getEntityTypeId());
if ($entity_metatags != NULL && $entity_metatags
->status()) {
// Merge with global defaults.
$metatags
->overwriteTags($entity_metatags
->get('tags'));
}
// Finally, check if bundle overrides should be added.
/** @var \Drupal\metatag\Entity\MetatagDefaults|null $bundle_metatags */
$bundle_metatags = $global_metatag_manager
->load($entity
->getEntityTypeId() . '__' . $entity
->bundle());
if ($bundle_metatags != NULL && $bundle_metatags
->status()) {
// Merge with existing defaults.
$metatags
->overwriteTags($bundle_metatags
->get('tags'));
}
}
}
$tags = $metatags
->get('tags');
if ($current_language) {
$language_manager
->setConfigOverrideLanguage($current_language);
}
return $tags;
}