From 72dd3abd40daf5d60e428bb7fb8eb28a42f21677 Mon Sep 17 00:00:00 2001 From: Krivchikov Dmitry Date: Sat, 26 Dec 2015 23:46:52 +0300 Subject: [PATCH] =?UTF-8?q?ADD=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=B8=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B9=D0=BA=D0=B5=20=D1=82=D0=BE=D1=87=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B8=20=D1=82=D0=BE=D1=87=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B2=20=D0=B8=D0=B7=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/Favorite.php | 22 +++++++++++++++++++++- models/Like.php | 22 +++++++++++++++++++++- models/Notifications.php | 2 ++ views/user/notification.php | 6 ++++++ 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/models/Favorite.php b/models/Favorite.php index bc50346..60cfd83 100644 --- a/models/Favorite.php +++ b/models/Favorite.php @@ -23,14 +23,34 @@ class Favorite extends Model */ public static function addRemove($pointId) { - if (!App::$user || !App::$user->id || !$pointId) + $pointId = intval($pointId); + + if (!App::$user || !App::$user->id || !$pointId) { return false; + } + + $point = Point::model()->getByPK($pointId); + if (!$point) { + return FALSE; + } + $ownerId = $point->author; $res = self::model()->getAll(array('where' => '`userId` = ' . (int) App::$user->id . ' AND `pointId` = ' . (int) $pointId, 'limit' => 1)); if ($res) { return Helper::boolval(Favorite::model()->delete($res->id)); } else { + // Оповещение автору точки + if ($ownerId != App::$user->id) { + Notifications::model()->add(array( + 'userId' => $ownerId, + 'fromUserId' => App::$user->id, + 'objectId' => $pointId, + 'type' => Notifications::typePointFav, + 'date' => time(), + )); + } + return Favorite::model()->add(array('userId' => App::$user->id, 'pointId' => $pointId)); } } diff --git a/models/Like.php b/models/Like.php index f4d2530..b1ff9a3 100644 --- a/models/Like.php +++ b/models/Like.php @@ -23,14 +23,34 @@ class Like extends Model */ public static function addRemove($pointId) { - if (!App::$user || !App::$user->id || !$pointId) + $pointId = intval($pointId); + + if (!App::$user || !App::$user->id || !$pointId) { return false; + } + + $point = Point::model()->getByPK($pointId); + if (!$point) { + return FALSE; + } + $ownerId = $point->author; $res = self::model()->getAll(array('where' => '`userId` = ' . (int) App::$user->id . ' AND `pointId` = ' . (int) $pointId, 'limit' => 1)); if ($res) { return Helper::boolval(Like::model()->delete($res->id)); } else { + // Оповещение автору точки + if ($ownerId != App::$user->id) { + Notifications::model()->add(array( + 'userId' => $ownerId, + 'fromUserId' => App::$user->id, + 'objectId' => $pointId, + 'type' => Notifications::typePointLike, + 'date' => time(), + )); + } + return Like::model()->add(array('userId' => App::$user->id, 'pointId' => $pointId)); } } diff --git a/models/Notifications.php b/models/Notifications.php index 9968100..35b8dc4 100644 --- a/models/Notifications.php +++ b/models/Notifications.php @@ -9,6 +9,8 @@ class Notifications extends Model const typeReply = 'reply'; const typeNewCommentPoint = 'newCommentPoint'; const typeNewCommentArticle = 'newCommentArticle'; + const typePointLike = 'pointLike'; + const typePointFav = 'pointFav'; function __construct($fromArray = array()) { diff --git a/views/user/notification.php b/views/user/notification.php index 82cc5a2..c570233 100644 --- a/views/user/notification.php +++ b/views/user/notification.php @@ -24,6 +24,12 @@ switch ($notification->type) { $comment = $notification->RefComment; print strftime('%d %b %H:%M', $notification->date).' — '.$comment->RefUser->nick.' ответил(-а) на ваш комментарий.'; break; + case Notifications::typePointLike: + print strftime('%d %b %H:%M', $notification->date).' — '.$notification->RefFromUser->nick.' нравится ваша точка '.$notification->RefPoint->name.'.'; + break; + case Notifications::typePointFav: + print strftime('%d %b %H:%M', $notification->date).' — '.$notification->RefFromUser->nick.' добавил(-а) вашу точку '.$notification->RefPoint->name.' в избранное.'; + break; default: break; }