51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
|
|
class Chat
|
|
{
|
|
public function index()
|
|
{
|
|
|
|
if (!isset($_SESSION['user_id'])) {
|
|
header("Location: /projekte/htdocs/login.php");
|
|
exit;
|
|
}
|
|
|
|
$currentUserId = $_SESSION['user_id'];
|
|
|
|
$chatModel = Factory::createChatModel();
|
|
$userModel = Factory::createBenutzerModel();
|
|
|
|
$allUsers = $userModel->getAllUsersExcept($currentUserId);
|
|
$currentUser = $userModel->getUserById( $currentUserId);
|
|
$unreadCounts = $chatModel->getUnreadCounts($currentUserId);
|
|
|
|
|
|
// Unread in Kontakte einfügen
|
|
foreach ($allUsers as &$user) {
|
|
$user['unread'] = $unreadCounts[$user['id']] ?? 0;
|
|
}
|
|
|
|
// View laden
|
|
require __DIR__ . "/../view/chat/index.php";
|
|
}
|
|
|
|
// Nachrichten zwischen zwei Usern per AJAX laden
|
|
public function loadMessages()
|
|
{
|
|
|
|
if (!isset($_SESSION['user_id'])) exit;
|
|
|
|
$current = $_SESSION['user_id'];
|
|
$other = (int)$_POST['user_id'];
|
|
|
|
$chatModel = new ChatModel();
|
|
$messages = $chatModel->getMessagesBetweenUsers($current, $other);
|
|
|
|
// Direkt lesen markieren
|
|
$chatModel->markAsRead($other, $current);
|
|
|
|
header('Content-Type: application/json');
|
|
echo json_encode($messages);
|
|
}
|
|
}
|