/home/techb158/workloadmatch.com/Manager
Edit: /home/techb158/workloadmatch.com/Manager/chat.php (16437B)
query("SELECT COUNT(*) AS cnt FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '" . DATABASE . "' AND TABLE_NAME = 'teacher_profile' AND COLUMN_NAME = 'last_activity'");
if ($chk) { $r = $chk->fetch_assoc(); if ((int)$r['cnt'] === 0) $mysqli->query("ALTER TABLE teacher_profile ADD COLUMN last_activity DATETIME DEFAULT NULL"); }
$teachers = [];
$stmt = $mysqli->prepare("
SELECT tp.Teacher_ID, CONCAT(tp.First_Name, ' ', tp.Last_Name) AS name, tp.User_Img,
CASE WHEN tp.last_activity IS NOT NULL AND tp.last_activity >= NOW() - INTERVAL 5 MINUTE THEN 'Online' ELSE 'Offline' END AS status_txt,
(SELECT COUNT(*) FROM chat_messages WHERE receiver_id = ? AND receiver_type = 'manager' AND sender_id = tp.Teacher_ID AND is_read = 0) AS unread,
(SELECT message FROM chat_messages WHERE (sender_id = ? AND sender_type = 'manager' AND receiver_id = tp.Teacher_ID) OR (sender_id = tp.Teacher_ID AND sender_type = 'teacher' AND receiver_id = ?) ORDER BY created_at DESC LIMIT 1) AS last_msg,
(SELECT created_at FROM chat_messages WHERE (sender_id = ? AND sender_type = 'manager' AND receiver_id = tp.Teacher_ID) OR (sender_id = tp.Teacher_ID AND sender_type = 'teacher' AND receiver_id = ?) ORDER BY created_at DESC LIMIT 1) AS last_msg_time
FROM teacher_profile tp
WHERE tp.Manager_ID = ?
ORDER BY last_msg_time DESC
");
$stmt->bind_param("iiiiis", $manager_id, $manager_id, $manager_id, $manager_id, $manager_id, $manager_id);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
$row['unread'] = (int)$row['unread'];
$teachers[] = $row;
}
$stmt->close();
$totalUnread = 0;
foreach ($teachers as $t) { $totalUnread += $t['unread']; }
function timeAgo($dt) {
if (!$dt) return '';
$ts = strtotime($dt);
$diff = time() - $ts;
if ($diff < 60) return 'now';
if ($diff < 3600) return floor($diff / 60) . 'm';
if ($diff < 86400) return floor($diff / 3600) . 'h';
if ($diff < 172800) return 'yesterday';
return date('M d', $ts);
}
?>
CMS | Chat