X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fmetatag%2Fmetatag_hreflang%2Fsrc%2FPlugin%2FDerivative%2FHreflangDeriver.php;fp=web%2Fmodules%2Fcontrib%2Fmetatag%2Fmetatag_hreflang%2Fsrc%2FPlugin%2FDerivative%2FHreflangDeriver.php;h=46e27426126ae04b72c9850e6642152c21432eca;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/modules/contrib/metatag/metatag_hreflang/src/Plugin/Derivative/HreflangDeriver.php b/web/modules/contrib/metatag/metatag_hreflang/src/Plugin/Derivative/HreflangDeriver.php new file mode 100644 index 000000000..46e274261 --- /dev/null +++ b/web/modules/contrib/metatag/metatag_hreflang/src/Plugin/Derivative/HreflangDeriver.php @@ -0,0 +1,55 @@ +getLanguages(LanguageInterface::STATE_ALL); + + // Now we loop over them and declare the derivatives. + /** @var \Drupal\Core\Language\LanguageInterface $language */ + foreach ($languages as $langcode => $language) { + // Ignore the global values. + if ($langcode == Language::LANGCODE_NOT_SPECIFIED) { + continue; + } + elseif ($langcode == Language::LANGCODE_NOT_APPLICABLE) { + continue; + } + + // The base definition includes the annotations defined in the plugin, + // i.e. HreflangPerLanguage. Each one may be overridden. + $derivative = $base_plugin_definition; + + // Here we fill in any missing keys on the layout annotation. + $derivative['weight']++; + $derivative['id'] = 'hreflang_' . $langcode; + // The 'name' value is used as the value of the 'hreflang' attribute on + // the HTML tag. + $derivative['name'] = $langcode; + $derivative['label'] = t("URL for a version of this page in %langcode", ['%langcode' => $language->getName()]); + $derivative['description'] = ''; + + // Reference derivatives based on their UUID instead of the record ID. + $this->derivatives[$derivative['id']] = $derivative; + } + + return $this->derivatives; + } + +}