/**
* Provides a messages element.
*
- * Used to display results of drupal_set_message() calls.
+ * Used to display results of \Drupal::messenger()->addMessage() calls.
*
* Usage example:
* @code
*
* @param string|null $type
* Limit the messages returned by type. Defaults to NULL, meaning all types.
- * Passed on to drupal_get_messages(). These values are supported:
+ * Passed on to \Drupal\Core\Messenger\Messenger::deleteByType(). These
+ * values are supported:
* - NULL
* - 'status'
* - 'warning'
* @return array
* A renderable array containing the messages.
*
- * @see drupal_get_messages()
+ * @see \Drupal\Core\Messenger\Messenger::deleteByType()
*/
- public static function renderMessages($type) {
- // Render the messages.
- return [
- '#theme' => 'status_messages',
- // @todo Improve when https://www.drupal.org/node/2278383 lands.
- '#message_list' => drupal_get_messages($type),
- '#status_headings' => [
- 'status' => t('Status message'),
- 'error' => t('Error message'),
- 'warning' => t('Warning message'),
- ],
- ];
+ public static function renderMessages($type = NULL) {
+ $render = [];
+ if (isset($type)) {
+ $messages = [
+ $type => \Drupal::messenger()->deleteByType($type),
+ ];
+ }
+ else {
+ $messages = \Drupal::messenger()->deleteAll();
+ }
+
+ if ($messages) {
+ // Render the messages.
+ $render = [
+ '#theme' => 'status_messages',
+ '#message_list' => $messages,
+ '#status_headings' => [
+ 'status' => t('Status message'),
+ 'error' => t('Error message'),
+ 'warning' => t('Warning message'),
+ ],
+ ];
+ }
+ return $render;
}
}