asgardcms / notification-module
Module handling the real time notifications
Installs: 4 982
Dependents: 0
Suggesters: 10
Security: 0
Stars: 20
Watchers: 7
Forks: 15
Open Issues: 4
Type:asgard-module
Requires
- php: >=7.0.0
- composer/installers: ~1.0
- idavoll/core-module: ~3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.7
- orchestra/testbench: 3.5.*
- phpunit/phpunit: ~6.3
Suggests
- pusher/pusher-php-server: Allows notifications to enable real-time notifications.
README
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);
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'));