public function SiteAlertController::getUpdatedAlerts in Site Alert 8
1 string reference to 'SiteAlertController::getUpdatedAlerts'
- site_alert.routing.yml in ./site_alert.routing.yml
- site_alert.routing.yml
File
- src/Controller/SiteAlertController.php, line 69
Class
- SiteAlertController
- Implements SiteAlertController class.
Namespace
Drupal\site_alert\Controller
Code
public function getUpdatedAlerts() {
$cache_metadata = new CacheableMetadata();
$cache_metadata
->addCacheTags($this->entityTypeManager
->getDefinition('site_alert')
->getListCacheTags());
$cache_metadata
->addCacheTags([
'rendered',
]);
$cache_metadata
->setCacheMaxAge($this->entityTypeManager
->getStorage('site_alert')
->getCacheMaxAge());
$cache_metadata
->setCacheContexts([
'active_site_alerts',
]);
$build = [];
foreach ($this->getAlerts
->getActiveAlerts() as $alert) {
$build[] = [
'#theme' => 'site_alert',
'#alert' => [
'severity' => $alert
->getSeverity(),
'label' => $alert
->getLabel(),
'message' => [
'#type' => 'markup',
'#markup' => $alert
->getMessage(),
],
],
'#attached' => [
'library' => [
'site_alert/drupal.site_alert',
],
],
];
$cache_metadata
->addCacheableDependency($alert);
}
$cache_metadata
->applyTo($build);
$response = new HtmlResponse();
$response
->setContent($this->renderer
->renderRoot($build))
->addCacheableDependency($cache_metadata);
return $response;
}