public function SitemapWriter::writeXsl in Simple XML sitemap 4.x
Same name and namespace in other branches
- 8.3 src/Plugin/simple_sitemap/SitemapGenerator/SitemapWriter.php \Drupal\simple_sitemap\Plugin\simple_sitemap\SitemapGenerator\SitemapWriter::writeXsl()
Adds the XML stylesheet to the XML page.
File
- src/
Plugin/ simple_sitemap/ SitemapGenerator/ SitemapWriter.php, line 28
Class
- SitemapWriter
- Class SitemapWriter
Namespace
Drupal\simple_sitemap\Plugin\simple_sitemap\SitemapGeneratorCode
public function writeXsl() : void {
// Using this instead of URL::fromRoute() to avoid creating a path with the
// subdomain from which creation was triggered which might lead to a CORS
// problem. See https://www.drupal.org/project/simple_sitemap/issues/3131672.
$xsl_url = $this->routeProvider
->getRouteByName('simple_sitemap.sitemap_xsl')
->getPath();
// The above workaround however generates an incorrect path when the site is
// located in a subdirectory, which is why the following logic adds the base
// path of the installation.
// See https://www.drupal.org/project/simple_sitemap/issues/3154494.
// All of this seems to be an over engineered way of writing 'sitemap.xsl',
// but may be useful in cases where another module alters the routes.
$xsl_url = base_path() . ltrim($xsl_url, '/');
$this
->writePI('xml-stylesheet', 'type="text/xsl" href="' . $xsl_url . '"');
}