Файл: hashtag.io-2629a1a4ea078149b002e45e2e12bb946062c2b8/config/class/notifications.class.php
Строк: 682
<?php
class notifications{
protected $db;
protected $DIR;
public function __construct(){
$db = N::_DB();
$DIR = N::$DIR;
$this->db = $db;
$this->DIR = $DIR;
}
public function notiCount(){
$session = $_SESSION['id'];
$query = $this->db->prepare("SELECT noti_id FROM notifications WHERE notify_to = :to");
$query->execute(array(":to" => $session));
$count = $query->rowCount();
return $count;
}
public function unreadCount(){
if (isset($_SESSION['id'])) {
$session = $_SESSION['id'];
$query = $this->db->prepare("SELECT noti_id FROM notifications WHERE notify_to = :to AND status = :status");
$query->execute(array(":to" => $session, ":status" => "unread"));
$count = $query->rowCount();
if ($count != 0) {
if ($count < 9) {
return $count;
} else if ($count >= 9) {
return "+";
}
}
}
}
public function titleNoti(){
if(self::unreadCount() != 0){
return "(".self::unreadCount().")";
}
}
public function markRead(){
$session = $_SESSION['id'];
$query = $this->db->prepare("UPDATE notifications SET status = :status WHERE notify_to = :to");
$query->execute(array(":status" => "read", ":to" => $session));
}
public function followNotify($to, $type){
$session = $_SESSION['id'];
$query = $this->db->prepare("INSERT INTO notifications (notify_by, notify_to, type, time) VALUES (:by, :to, :type, now())");
$query->execute(array(":by" => $session, ":to" => $to, ":type" => $type));
}
public function recommendNotify($to, $of){
$by = $_SESSION['id'];
$query = $this->db->prepare("INSERT INTO notifications(notify_by, notify_to, notify_of, type, time) VALUES(:by, :to, :of, :type, now())");
$query->execute(array(":by" => $by, ":to" => $to, ":of" => $of, ":type" => "recommend"));
}
public function actionNotify($to, $post, $type){
$by = $_SESSION['id'];
if ($by != $to) {
$query = $this->db->prepare("INSERT INTO notifications (notify_by, notify_to, post_id, type, time) VALUES (:by, :to, :post, :type, now())");
$query->execute(array(":by" => $by, ":to" => $to, ":post" => $post, ":type" => $type));
}
}
public function cLikeNotify($by, $to, $post, $comment){
$session = $_SESSION['id'];
$query = $this->db->prepare("INSERT INTO notifications (notify_by, notify_to, post_id, comment_id, type, time) VALUES(:by, :to, :post, :comment, 'commentLike', now())");
$query->execute(array(":by" => $by, ":to" => $to, ":post" => $post, ":comment" => $comment,));
}
public function clearNotifications(){
$session = $_SESSION['id'];
$query = $this->db->prepare("DELETE FROM notifications WHERE notify_to = :to");
$query->execute(array(":to" => $session));
}
public function getNotifications($way, $limit){
$universal = new universal;
$avatar = new Avatar;
$Time = new time;
$follow = new follow_system;
$group = new group;
$message = new message;
$session = $_SESSION['id'];
if ($way == "direct") {
$query = $this->db->prepare("SELECT * FROM notifications WHERE notify_to = :to ORDER BY noti_id DESC LIMIT 10");
$query->execute(array(":to" => $session));
} else if ($way == "ajax") {
$start = intval($limit);
$query = $this->db->prepare("SELECT * FROM notifications WHERE notify_to = :to AND noti_id < :start ORDER BY noti_id DESC LIMIT 10");
$query->execute(array(":to" => $session, ":start" => $start));
}
$count = $query->rowCount();
if ($count == 0) {
if ($way == "direct") {
echo "<div class='home_last_mssg pro_last_mssg'><img src='{$this->DIR}/images/needs/large.jpg'>
<span>You got no notifications</span></div>";
}
} else if ($count > 0) {
while ($row = $query->fetch(PDO::FETCH_OBJ)) {
$nid = $row->noti_id;
$by = $row->notify_by;
$type = $row->type;
$to = $row->notify_to;
$of = $row->notify_of;
$postid = $row->post_id;
$time = $row->time;
if ($type == "follow") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'><a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>started following you</span><span class='noti_time'>{$Time->timeAgo($time)}</span></div>
<div class='noti_right follow_noti_right' data-getid='{$by}'>";
if ($follow->isFollowing($by)) {
echo "<a href='#' class='noti_ff pri_btn unfollow'>Unfollow</a>";
} else if ($follow->isFollowing($by) == false) {
echo "<a href='#' class='noti_ff pri_btn follow'>Follow</a>";
}
echo "</div></div>";
} else if ($type == "recommend") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'><a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>recommended <a href='{$this->DIR}/profile/{$universal->GETsDetails($of, "username")}' class='noti_bold' title='{$universal->GETsDetails($of, "username")}'>". $universal->nameShortener($universal->GETsDetails($of, "username"), 20) ."</a> to you</span>
<span class='noti_time'>{$Time->timeAgo($time)}</span></div>
<div class='noti_right follow_noti_right' data-getid='{$by}'>";
if ($follow->isFollowing($of)) {
echo "<a href='#' class='noti_ff pri_btn unfollow'>Unfollow {$universal->nameShortener($universal->GETsDetails($of, "username"), 10)}</a>";
} else if ($follow->isFollowing($of) == false) {
echo "<a href='#' class='noti_ff pri_btn follow'>Follow {$universal->nameShortener($universal->GETsDetails($of, "username"), 10)}</a>";
}
echo "</div></div>";
} else if ($type == "like") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>liked your <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>post</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "comment") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>commented on your <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>post</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "shareto") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>shared you a <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>post</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if($type == "shareyour"){
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>shared your <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>post</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "commentLike") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>liked your <span class='noti_bold'>comment</span></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "tag") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>tagged you in a <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>post</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "post_mention") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>mentioned you in a <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>post</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "comment_mention") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>mentioned you in a <a href='{$this->DIR}/view_post/{$postid}' class='noti_bold'>comment</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/view_post/{$postid}' class='noti_ff sec_btn'>View post</a>
</div></div>";
} else if ($type == "grp_con") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>added you in conversation <a href='{$this->DIR}/messages' class='noti_bold' title='{$message->getGrpCon($postid, "name")}'>". $universal->nameShortener($message->getGrpCon($postid, "name"), 20) ."</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/messages' class='noti_ff sec_btn'>Open group</a>
</div></div>";
} else if ($type == "grp_add") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>added you in <a href='{$this->DIR}/groups/{$postid}' class='noti_bold' title='{$group->GETgrp($postid, "grp_name")}'>". $universal->nameShortener($group->GETgrp($postid, "grp_name"), 20) ."</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/groups/{$postid}' class='noti_ff sec_btn'>Open group</a>
</div></div>";
} else if ($type == "inviteGrp") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>invited you to <a href='{$this->DIR}/groups/{$postid}' class='noti_bold' title='{$group->GETgrp($postid, "grp_name")}'>". $universal->nameShortener($group->GETgrp($postid, "grp_name"), 20) ."</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/groups/{$postid}' class='noti_ff sec_btn'>Open group</a>
</div></div>";
} else if ($type == "changeGrpAdmin") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>made you admin of <a href='{$this->DIR}/groups/{$postid}' class='noti_bold' title='{$group->GETgrp($postid, "grp_name")}'>". $universal->nameShortener($group->GETgrp($postid, "grp_name"), 20) ."</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/groups/{$postid}' class='noti_ff sec_btn'>Open group</a>
</div></div>";
} else if ($type == "changeGrpConAdmin") {
echo "<div class='noti follow_noti' data-notiid='{$nid}'>";
if ($way == "direct") {
echo "<img src='{$this->DIR}/{$avatar->GETsAvatar($by)}' alt='' class='noti_avatar'>";
} else if ($way == "ajax") {
echo "<img src='{$this->DIR}/{$avatar->DisplayAvatar($by)}' alt='' class='noti_avatar'>";
}
echo "<div class='noti_left'>
<a href='{$this->DIR}/profile/{$universal->GETsDetails($by, "username")}' class='noti_bold noti_username' title='{$universal->GETsDetails($by, "username")}'>". $universal->nameShortener($universal->GETsDetails($by, "username"), 20) ."</a>
<span>made you admin of conversation <a href='{$this->DIR}/messages' class='noti_bold' title='{$message->getGrpCon($postid, "name")}'>". $universal->nameShortener($message->getGrpCon($postid, "name"), 20) ."</a></span>
<span class='noti_time'>{$Time->timeAgo($time)}</span>
</div>
<div class='noti_right follow_noti_right'>
<a href='{$this->DIR}/groups/{$postid}' class='noti_ff sec_btn'>Open group</a>
</div></div>";
}
}
echo "<div class='post_end feed_inserted'>Looks like you've reached the end</div>";
}
}
}
?>