public function SitemapController::buildSitemap in Sitemap 2.0.x
Same name and namespace in other branches
- 8.2 src/Controller/SitemapController.php \Drupal\sitemap\Controller\SitemapController::buildSitemap()
Controller for /sitemap.
Return value
array Renderable array.
1 string reference to 'SitemapController::buildSitemap'
File
- src/
Controller/ SitemapController.php, line 58
Class
- SitemapController
- Controller routines for update routes.
Namespace
Drupal\sitemap\ControllerCode
public function buildSitemap() {
$config = $this->configFactory
->get('sitemap.settings');
// Build the Sitemap message.
$message = '';
if (!empty($config
->get('message')) && !empty($config
->get('message')['value'])) {
$message = check_markup($config
->get('message')['value'], $config
->get('message')['format']);
}
// Build the plugin content.
$plugins_config = $config
->get('plugins');
$plugins = [];
$plugin_config = [];
$definitions = $this->sitemapManager
->getDefinitions();
foreach ($definitions as $id => $definition) {
if ($this->sitemapManager
->hasDefinition($id)) {
if (!empty($plugins_config[$id])) {
$plugin_config = $plugins_config[$id];
}
$instance = $this->sitemapManager
->createInstance($id, $plugin_config);
if ($instance->enabled) {
// TODO: Order by $instance->weight
//$plugins[$instance->weight] = $instance->view();
$plugins[] = $instance
->view();
}
}
}
// Build the render array.
$sitemap = [
'#theme' => 'sitemap',
'#message' => $message,
'#sitemap_items' => $plugins,
];
// Check whether to include the default CSS.
if ($config
->get('include_css') == 1) {
$sitemap['#attached']['library'] = [
'sitemap/sitemap.theme',
];
}
return $sitemap;
}