Skip to content

Quickly send (real-time) notifications to your AsgardCms application.

License

Notifications You must be signed in to change notification settings

AsgardCms/Notification

Repository files navigation

Notification module

Latest Version Software License Build Status Quality Score SensioLabs Insight

Total Downloads Total Downloads Total Downloads Slack

Quickly send (real-time) notifications to your AsgardCms application.

$this->notification->push('New subscription', 'Someone has subscribed!', 'fa fa-hand-peace-o text-green', route('admin.user.user.index'));
/**
* Push a notification on the dashboard
* @param string $title
* @param string $message
* @param string $icon
* @param string|null $link
*/
public function push($title, $message, $icon, $link = null);

Notifications demo screenshot Quick demo


Installation

Module Download

Using AsgardCMS's module download command:

php artisan asgard:download:module asgardcms/notification --migrations

This will download the module and run its migrations .

This is the recommended way if you wish to customise the fields, views, etc.

Composer

Execute the following command in your terminal:

composer require asgardcms/notification-module

Note: After installation you'll have to give you the required permissions to get to the blog module pages in the backend.

Run migrations

php artisan module:migrate notification

Publish the configuration

php artisan module:publish-config notification

Real time?

If you want real time notifications over websockets, you need to configure the broadcasting.php config file. After that is done, set the asgard.notification.config.real-time option to true.

Currently, Laravel broadcasting supports Pusher and Redis, but AsgardCms only has the front-end integration for Pusher. More integrations are welcome via pull-request. Look at the Pusher integration for inspiration.

For configuring Pusher, you can add the following lines to your .env file:

PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_ID=
PUSHER_APP_CLUSTER=us2
PUSHER_APP_ENCRYPTED=true

Your app's "Getting Started" tab on Pusher's website has a section for .env. You can just copy and paste those directly.

Usage

Usage is simple and straightforward:

Inject the Modules\Notification\Services\Notification interface where you need it and assign it to a class variable.

Send notification to logged in user

$this->notification->push('New subscription', 'Someone has subscribed!', 'fa fa-hand-peace-o text-green', route('admin.user.user.index'));

Send notification to a specific user

$this->notification->to($userId)->push('New subscription', 'Someone has subscribed!', 'fa fa-hand-peace-o text-green', route('admin.user.user.index'));