Source of Widget: https://github.com/webzop/yii2-notifications
Notify All Users
public function actionNotif4(){
$user = User::find()->all();
foreach ($user as $user){
AccountNotification::create(AccountNotification::KEY_NEW_ACCOUNT, ['user' =>$user])->send($user);
}return $this->render('index');
}Notify One specific user:
public function actionNotif(){
$user = User::findOne(2);
AccountNotification::create(AccountNotification::KEY_NEW_ACCOUNT, ['user' =>$user])->send($user);
return $this->render('index');
}Add to view by including in main.php
if (Yii::$app->user->identity->username != NULL){
$menuItems[] = \webzop\notifications\widgets\Notifications::widget();
}Change routes at backends\notifications\AccountNotification.php
public function getRoute(){
switch($this->key){
case self::KEY_NEW_ACCOUNT:
return ['/site/logout'];
case self::KEY_RESET_PASSWORD:
return ['/site/index'];
}
}at vendor\webzop\yii2-notifications\controllers\DefaultController.php
public function actionDelete(){
$userId = Yii::$app->getUser()->getId();
Yii::$app->getDb()->createCommand()->
delete('notifications', 'user_id=:id', array(':id'=>$userId))->execute();
if(Yii::$app->getRequest()->getIsAjax()){
return $this->ajaxResponse(1);
}
Yii::$app->getSession()->setFlash('success', Yii::t('modules/notifications', 'All notifications have been deleted.'));
return Yii::$app->getResponse()->redirect(['/notifications/default/index']);
}at vendor\webzop\yii2-notifications\views\default\index.php
<a class="btn btn-danger" href="<?= Url::toRoute(['/notifications/default/delete']) ?>"><?= Yii::t('modules/notifications', 'Delete all'); ?></a>vendor\webzop\yii2-notifications\Notification.php
public function send($user){
$this->userId = $user->id;
Yii::$app->getModule('notifications')->send($this);
}
0 Comments