prepare("SELECT m.*, u1.full_name as assigned_name, u2.full_name as creator_name, s.name as status_name, s.color as status_color FROM mailbox m LEFT JOIN users u1 ON m.assigned_to = u1.id LEFT JOIN users u2 ON m.created_by = u2.id LEFT JOIN mailbox_statuses s ON m.status_id = s.id WHERE m.id = ?"); $stmt->execute([$id]); $mail = $stmt->fetch(); if (!$mail) redirect('index.php'); $success = ''; $error = ''; // Handle Comment submission if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_comment'])) { if (!canEdit()) { $error = 'عذراً، ليس لديك الصلاحية لإضافة تعليقات'; } else { $comment = $_POST['comment'] ?? ''; if ($comment) { $stmt = db()->prepare("INSERT INTO comments (mail_id, user_id, comment) VALUES (?, ?, ?)"); $stmt->execute([$id, $_SESSION['user_id'], $comment]); $success = 'تم إضافة التعليق بنجاح'; } } } // Handle Attachment upload if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['attachment'])) { if (!canEdit()) { $error = 'عذراً، ليس لديك الصلاحية لرفع مرفقات'; } else { $file = $_FILES['attachment']; $display_name = $_POST['display_name'] ?? ''; if ($file['error'] === 0) { $upload_dir = 'uploads/attachments/'; if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true); $file_name = time() . '_' . basename($file['name']); $target_path = $upload_dir . $file_name; if (move_uploaded_file($file['tmp_name'], $target_path)) { $stmt = db()->prepare("INSERT INTO attachments (mail_id, display_name, file_path, file_name, file_size) VALUES (?, ?, ?, ?, ?)"); $stmt->execute([$id, $display_name, $target_path, $file['name'], $file['size']]); $success = 'تم رفع الملف بنجاح'; } else { $error = 'فشل في رفع الملف'; } } } } // Handle Attachment deletion if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_attachment'])) { if (!canDelete()) { $error = 'عذراً، ليس لديك الصلاحية لحذف المرفقات'; } else { $attachment_id = $_POST['attachment_id'] ?? 0; if ($attachment_id) { $stmt = db()->prepare("SELECT * FROM attachments WHERE id = ?"); $stmt->execute([$attachment_id]); $attachment = $stmt->fetch(); if ($attachment) { // Delete file from disk if (file_exists($attachment['file_path'])) { unlink($attachment['file_path']); } // Delete record from DB $stmt = db()->prepare("DELETE FROM attachments WHERE id = ?"); $stmt->execute([$attachment_id]); $success = 'تم حذف المرفق بنجاح'; } } } } $comments = db()->prepare("SELECT c.*, u.full_name FROM comments c LEFT JOIN users u ON c.user_id = u.id WHERE c.mail_id = ? ORDER BY c.created_at DESC"); $comments->execute([$id]); $mail_comments = $comments->fetchAll(); $attachments = db()->prepare("SELECT * FROM attachments WHERE mail_id = ? ORDER BY created_at DESC"); $attachments->execute([$id]); $mail_attachments = $attachments->fetchAll(); // Helper to check previewable files function isPreviewable($fileName) { $ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION)); return in_array($ext, ['pdf', 'png', 'jpg', 'jpeg', 'gif', 'webp']); } ?>
= $mail['ref_no'] ?>
= $mail['date_registered'] ?>
= $mail['due_date'] ?> غير محدد
= htmlspecialchars($d_name) ?>
= htmlspecialchars($mail['sender'] ?: 'غير محدد') ?>
= htmlspecialchars($mail['recipient'] ?: 'غير محدد') ?>
= htmlspecialchars($mail['assigned_name'] ?: 'غير معين') ?>
= htmlspecialchars($mail['creator_name']) ?> | = $mail['created_at'] ?>
لا توجد مرفقات
= nl2br(htmlspecialchars($c['comment'])) ?>
لا توجد تعليقات بعد