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