class SimpleSitemapController in Simple XML sitemap 4.x
Same name and namespace in other branches
- 8.3 src/Controller/SimplesitemapController.php \Drupal\simple_sitemap\Controller\SimplesitemapController
- 8.2 src/Controller/SimplesitemapController.php \Drupal\simple_sitemap\Controller\SimplesitemapController
Class SimpleSitemapController
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, RedirectDestinationTrait, StringTranslationTrait
- class \Drupal\simple_sitemap\Controller\SimpleSitemapController
Expanded class hierarchy of SimpleSitemapController
File
- src/
Controller/ SimpleSitemapController.php, line 15
Namespace
Drupal\simple_sitemap\ControllerView source
class SimpleSitemapController extends ControllerBase {
/**
* @var \Drupal\simple_sitemap\Manager\Generator
*/
protected $generator;
/**
* SimpleSitemapController constructor.
*
* @param \Drupal\simple_sitemap\Manager\Generator $generator
*/
public function __construct(Generator $generator) {
$this->generator = $generator;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) : SimpleSitemapController {
return new static($container
->get('simple_sitemap.generator'));
}
/**
* Returns the whole sitemap variant, its requested chunk,
* or its sitemap index file.
* Caches the response in case of expected output, prevents caching otherwise.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
* @param string|null $variant
* Optional name of sitemap variant.
*
* @return \Symfony\Component\HttpFoundation\Response
* Returns an XML response.
* @throws NotFoundHttpException
*/
public function getSitemap(Request $request, ?string $variant = NULL) : Response {
$output = $this->generator
->setVariants($variant)
->getSitemap($request->query
->get('page'));
if (!$output) {
throw new NotFoundHttpException();
}
return new Response($output, Response::HTTP_OK, [
'Content-type' => 'application/xml; charset=utf-8',
'X-Robots-Tag' => 'noindex, follow',
]);
}
/**
* Returns the XML stylesheet for the sitemap.
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getSitemapXsl() : Response {
// Read the XSL content from the file.
$module_path = drupal_get_path('module', 'simple_sitemap');
$xsl_content = file_get_contents($module_path . '/xsl/simple_sitemap.xsl');
// Replace custom tokens in the XSL content with appropriate values.
$replacements = [
'[title]' => $this
->t('Sitemap file'),
'[generated-by]' => $this
->t('Generated by the <a href="@link">@module_name</a> Drupal module.', [
'@link' => 'https://www.drupal.org/project/simple_sitemap',
'@module_name' => 'Simple XML Sitemap',
]),
'[number-of-sitemaps]' => $this
->t('Number of sitemaps in this index'),
'[sitemap-url]' => $this
->t('Sitemap URL'),
'[number-of-urls]' => $this
->t('Number of URLs in this sitemap'),
'[url-location]' => $this
->t('URL location'),
'[lastmod]' => $this
->t('Last modification date'),
'[changefreq]' => $this
->t('Change frequency'),
'[priority]' => $this
->t('Priority'),
'[translation-set]' => $this
->t('Translation set'),
'[images]' => $this
->t('Images'),
'[image-title]' => $this
->t('Title'),
'[image-caption]' => $this
->t('Caption'),
'[jquery]' => base_path() . 'core/assets/vendor/jquery/jquery.min.js',
'[jquery-tablesorter]' => base_path() . $module_path . '/xsl/jquery.tablesorter.min.js',
'[parser-date-iso8601]' => base_path() . $module_path . '/xsl/parser-date-iso8601.min.js',
'[xsl-js]' => base_path() . $module_path . '/xsl/simple_sitemap.xsl.js',
'[xsl-css]' => base_path() . $module_path . '/xsl/simple_sitemap.xsl.css',
];
// Output the XSL content.
return new Response(strtr($xsl_content, $replacements), Response::HTTP_OK, [
'Content-type' => 'application/xml; charset=utf-8',
'X-Robots-Tag' => 'noindex, nofollow',
]);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function | Returns a redirect response object for the specified route. | |
ControllerBase:: |
protected | function | Returns the state storage service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
SimpleSitemapController:: |
protected | property | ||
SimpleSitemapController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
SimpleSitemapController:: |
public | function | Returns the whole sitemap variant, its requested chunk, or its sitemap index file. Caches the response in case of expected output, prevents caching otherwise. | |
SimpleSitemapController:: |
public | function | Returns the XML stylesheet for the sitemap. | |
SimpleSitemapController:: |
public | function | SimpleSitemapController constructor. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |