push current stand

This commit is contained in:
WummerMIB
2025-12-05 08:37:52 +01:00
parent 00bcb5afec
commit 075465e56b
7 changed files with 135 additions and 60 deletions
+34 -27
View File
@@ -1,43 +1,50 @@
<?php
class Chat {
class Chat
{
public function index()
{
public function index() {
if (!isset($_SESSION['user_id'])) {
header("Location: " . PROJEKT_URL . "/Login");
header("Location: /projekte/htdocs/login.php");
exit;
}
$currentUserId = $_SESSION['user_id'];
$chatModel = Factory::createChatModel();
$userModel = Factory::createBenutzerModel();
$currentUser = $userModel->getUserById($_SESSION['user_id']);
$allUsers = $userModel->getAllUsers();
$selectedUser = null;
$messages = [];
$allUsers = $userModel->getAllUsersExcept($currentUserId);
$currentUser = $userModel->getUserById( $currentUserId);
$unreadCounts = $chatModel->getUnreadCounts($currentUserId);
// Prüfen, ob ein Kontakt ausgewählt wurde
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['contact_id'])) {
$contactId = (int)$_POST['contact_id'];
$selectedUser = $userModel->getUserById($contactId);
$chatModel = Factory::createChatModel();
$messages = $chatModel->getMessagesBetweenUsers($currentUser['id'], $selectedUser['id']);
// Unread in Kontakte einfügen
foreach ($allUsers as &$user) {
$user['unread'] = $unreadCounts[$user['id']] ?? 0;
}
// Prüfen, ob eine Nachricht gesendet wird
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['message']) && isset($_POST['receiver_id'])) {
$chatModel = Factory::createChatModel();
$chatModel->senderID = $currentUser['id'];
$chatModel->empfaengerID = (int)$_POST['receiver_id'];
$chatModel->nachricht = trim($_POST['message']);
$chatModel->insert();
// Nachricht nach dem Senden erneut laden
$selectedUser = $userModel->getUserById($_POST['receiver_id']);
$messages = $chatModel->getMessagesBetweenUsers($currentUser['id'], $selectedUser['id']);
}
require_once(PROJEKT_VIEW_DIR . "/chat/index.php");
// 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);
}
}