Notifications widget
This module provides a customizable notification widget that displays in a bell icon. Users can mark notifications as read, unread, delete them individually, or clear all. It supports token replacement for personalized messages and can be integrated with Views to display notifications based on user roles or specific entities.
Notification widget allows you to configure the site notification on bell with feature of :
- Read
- Unread
- Delete
- Clear all
It allows to configure the notifications widget block for displaying the content based on Admin or logged-in user.
It allows to customise the notification message with token replacement like :
[user:name], [node:title], [comment:entity:title] etc.
It provides a block which contains notifications based on settings.
It provides the feature to extend the logs for additional provided entities like
profile_type, paragraphs and more.
It Provide integration with Views for node, comment, term, profile and message.
Service provided to add custom items in notification list :
/**
* Creates a notification in the database.
*
* @param array $message .
* An array containing all the message information.
* Needs to respect the following format:
* $message = [
* 'id' => '12334',
* 'bundle' => 'article',
* 'content' => 'Lorem ipsum read data by [user:name]',
* 'content_link' => 'users-list',
* ];
*
* @param string $userAction
* The action that led to the creation of the notification.
* One of the following: create, update, delete
* @param object $entity
* The entity that led to the notification being triggered.
* Used to replace tokens in the message content.
* @param int|null $uid
* (optional): The user id to which the notification should be sent.
*/
public function logNotification(array $message, string $userAction, object $entity, int $uid = NULL): void;Example usage:
$notificationService = \Drupal::service('notifications_widget.logger');
$message = [
'id' => '1234',
'bundle' => 'article',
'content' => 'Lorem ipsum read data by [user:name]',
'content_link' => 'users-list',
];
$notificationService->logNotification($message, 'create', $entity);
IMPORTANT NOTES :
1. Notifications widget configuration must be saved once module installed.
2. Bootstrap theme or CSS should be included into your project.