/** * Инициализация виджета */ public function init() { parent::init(); $this->model = new Comment(); $this->models = !empty($this->models) ? $this->models : Comment::model()->page()->approved()->findAll(); $this->publishAssets(); $this->buildCommentsArray(); }
/** * @return string урл первого нового комментария */ public static function getNewCommentsUrl() { $userID = \Yii::app()->getModule('comments')->getUserID(); if (!empty($userID)) { $newComments = NewComments::model()->user($userID)->findAll(); } if (empty($newComments)) { return false; } $comment = Comment::model()->findByPk($newComments[0]->comment_id); return $comment->url . '#comment_' . $comment->id; }
/** * Отправляет пачками письма пользователям о новых комментариях * @param $newComment */ protected function sendUserNotifies($newComment) { foreach (Comment::model()->page($newComment->url)->notify()->findAll() as $subscriber) { // Если email нового комментария (отправителя) совпадает с email подписчика, // то выходит что это один и тот же человек, ему уведомление не высылаем, пропускаем итерацию цикла if ($newComment->getEmail() === $subscriber->getEmail()) { continue; } $message = $this->renderPartial('comments.extensions.comments_widget.views.email.notifyUser', array('newComment' => $newComment, 'userName' => $subscriber->getAuthor(), 'userEmail' => $subscriber->getEmail(), 'hash' => $subscriber->getHash()), true); $this->module->sendMail($subscriber->getEmail(), 'Новый комментарий на сайте "' . \Yii::app()->name . '"', $message); } }