UrlGeneratorBase.php in Simple XML sitemap 4.x
File
src/Plugin/simple_sitemap/UrlGenerator/UrlGeneratorBase.php
View source
<?php
namespace Drupal\simple_sitemap\Plugin\simple_sitemap\UrlGenerator;
use Drupal\simple_sitemap\Exception\SkipElementException;
use Drupal\simple_sitemap\Plugin\simple_sitemap\SimpleSitemapPluginBase;
use Drupal\simple_sitemap\Entity\SimpleSitemapInterface;
use Drupal\simple_sitemap\Settings;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\simple_sitemap\Logger;
abstract class UrlGeneratorBase extends SimpleSitemapPluginBase implements UrlGeneratorInterface {
protected $logger;
protected $settings;
protected $sitemapVariant;
public function __construct(array $configuration, $plugin_id, $plugin_definition, Logger $logger, Settings $settings) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->logger = $logger;
$this->settings = $settings;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) : SimpleSitemapPluginBase {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('simple_sitemap.logger'), $container
->get('simple_sitemap.settings'));
}
public function setSitemapVariant(SimpleSitemapInterface $sitemap_variant) : UrlGeneratorInterface {
$this->sitemapVariant = $sitemap_variant;
return $this;
}
protected function replaceBaseUrlWithCustom(string $url) : string {
return !empty($base_url = $this->settings
->get('base_url')) ? str_replace($GLOBALS['base_url'], $base_url, $url) : $url;
}
public abstract function getDataSets() : array;
protected abstract function processDataSet($data_set) : array;
public function generate($data_set) : array {
try {
return [
$this
->processDataSet($data_set),
];
} catch (SkipElementException $e) {
return [];
}
}
}