Navigation
Back to Guides OverviewDemo Guide
To create a module in Drupal 10 that shows all messages, you can follow these steps:
1. Create the Module Folder and Info File
Create a directory for your module inside the modules/custom/
folder and name it all_messages
. Then, create an all_messages.info.yml
file with the following content:
name: 'All Messages'
type: module
description: 'Displays all messages in the system.'
core_version_requirement: ^10
package: Custom
dependencies:
- drupal:message
2. Create the all_messages.module
File
Inside the all_messages/
directory, create a all_messages.module
file. This file will include the hook implementation to display messages.
<?php
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_menu() to define a page route.
*/
function all_messages_menu() {
$items['all-messages'] = [
'title' => 'All Messages',
'page callback' => 'all_messages_display',
'access callback' => 'user_access',
'access arguments' => ['administer site configuration'],
'type' => MENU_NORMAL_ITEM,
];
return $items;
}
/**
* Displays all messages on a page.
*/
function all_messages_display() {
// Load all message entities.
$messages = \Drupal::entityTypeManager()->getStorage('message')->loadMultiple();
$output = '<h1>All Messages</h1>';
$output .= '<ul>';
foreach ($messages as $message) {
// Customize the display according to your needs.
$output .= '<li>' . $message->getText() . ' - ' . date('Y-m-d H:i:s', $message->getCreatedTime()) . '</li>';
}
$output .= '</ul>';
return [
'#markup' => $output,
];
}
3. Enable the Module
Run the following Drush command to enable the module:
drush en all_messages
Then, navigate to /all-messages
on your site, and you will see all the messages displayed.
This module will list all messages available on the system. If you have additional fields or message types to display, you can modify the all_messages_display
function accordingly.