| Server IP : 104.21.80.248 / Your IP : 172.71.28.155 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : E:/Inetpub/www/pr/ |
Upload File : |
<?php
include 'functions.php';
check_login();
// ==========================================
// Modal สำหรับแสดงรูปภาพขนาดใหญ่
// ==========================================
if($_SESSION['role'] == 'admin' || $_SESSION['role'] == 'admin_meeting') {
?>
<div class="modal fade" id="imageViewerModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-centered">
<div class="modal-content bg-transparent border-0">
<div class="modal-header border-0 p-2 justify-content-end">
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" style="filter: invert(1); background-color: rgba(255,255,255,0.8); border-radius: 50%; padding: 10px;"></button>
</div>
<div class="modal-body text-center p-0">
<img id="fullSizeImage" src="" class="img-fluid rounded shadow-lg" style="max-height: 85vh; object-fit: contain;">
</div>
</div>
</div>
</div>
<script>
function viewFullImage(imgSrc) {
document.getElementById('fullSizeImage').src = imgSrc;
var imageModal = new bootstrap.Modal(document.getElementById('imageViewerModal'));
imageModal.show();
}
</script>
<?php
}
// ==========================================
// ส่วนที่ 1: ADMIN (ดูแลจอโทรทัศน์)
// ==========================================
if($_SESSION['role'] == 'admin') {
echo get_header("รายการรออนุมัติ - จอโทรทัศน์");
if(isset($_GET['mark_done'])) {
$req_id = intval($_GET['mark_done']);
mysqli_query($conn, "UPDATE requests SET status = 'done' WHERE req_id = $req_id");
echo "<script>alert('อัปเดตสถานะจอโทรทัศน์เรียบร้อย'); window.location='dashboard.php';</script>";
}
// แก้ไข JOIN เพื่อดึง cat_name (ชื่อประเภทข่าว) ออกมา
$sql_tv = "SELECT r.*, u.group_name, c.cat_name
FROM requests r
JOIN users u ON r.user_id = u.user_id
LEFT JOIN news_categories c ON r.cat_id = c.cat_id
WHERE r.status = 'pending' ORDER BY r.start_date ASC";
$res_tv = mysqli_query($conn, $sql_tv);
?>
<div class="d-flex justify-content-between align-items-center mb-4 border-bottom border-primary pb-2 border-3">
<h3 class="text-primary mb-0"><i class="bi bi-tv"></i> รายการรออนุมัติ (จอโทรทัศน์)</h3>
<span class="badge bg-danger rounded-pill fs-6">รออยู่ <?php echo mysqli_num_rows($res_tv); ?> งาน</span>
</div>
<div class="row">
<?php if(mysqli_num_rows($res_tv) > 0) {
while($row = mysqli_fetch_assoc($res_tv)) {
$badge = ($row['req_type'] == 'ready') ? '<span class="badge bg-success">มีรูปมาแล้ว</span>' : '<span class="badge bg-warning text-dark">ให้จัดทำรูป</span>';
$cat_label = $row['cat_name'] ? $row['cat_name'] : 'ไม่ระบุประเภท'; // ชื่อหมวดหมู่
?>
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 shadow-sm border-primary" style="border-width: 0 0 0 5px;">
<div class="card-body d-flex flex-column">
<div class="d-flex justify-content-between align-items-start mb-2">
<h5 class="card-title fw-bold text-dark mb-0">
<?php echo $row['title']; ?>
<div class="mt-1"><span class="badge bg-info text-dark" style="font-size: 0.75rem;"><i class="bi bi-tag-fill"></i> <?php echo $cat_label; ?></span></div>
</h5>
<div><?php echo $badge; ?></div>
</div>
<h6 class="small text-secondary mb-2">
<i class="bi bi-person"></i> <?php echo $row['group_name']; ?> <br>
<i class="bi bi-calendar"></i> <?php echo thai_date($row['start_date']); ?> - <?php echo thai_date($row['end_date']); ?>
</h6>
<?php if(!empty($row['details'])) { ?>
<div class="bg-light p-2 rounded small mb-2 text-muted">
<?php echo nl2br($row['details']); ?>
</div>
<?php } ?>
<div class="mb-3 mt-auto">
<strong class="small d-block mb-2 text-primary border-bottom pb-1"><i class="bi bi-images"></i> รูปภาพที่แนบมา:</strong>
<div class="d-flex flex-wrap gap-2">
<?php
$res_img = mysqli_query($conn, "SELECT filename FROM request_images WHERE req_id = ".$row['req_id']);
if(mysqli_num_rows($res_img) > 0){
while($img = mysqli_fetch_assoc($res_img)){
echo "<img src='uploads/{$img['filename']}' onclick=\"viewFullImage('uploads/{$img['filename']}')\" class='img-thumbnail shadow-sm' style='height:80px; width:80px; object-fit:cover; cursor:pointer;'>";
}
} else { echo "<span class='text-muted small'>ไม่มีรูปภาพ</span>"; }
?>
</div>
</div>
<a href="?mark_done=<?php echo $row['req_id']; ?>" class="btn btn-primary w-100 mt-2" onclick="return confirm('ยืนยันจบงานจอโทรทัศน์?');"><i class="bi bi-check-circle"></i> ยืนยันว่าดำเนินการเสร็จแล้ว</a>
</div>
</div>
</div>
<?php }} else { echo "<div class='col-12'><div class='alert alert-light border text-center text-muted py-5'><i class='bi bi-check2-circle fs-1 d-block text-success'></i>ไม่มีงานค้าง</div></div>"; } ?>
</div>
<?php
// ==========================================
// ส่วนที่ 2: ADMIN MEETING (ดูแลจอห้องประชุม)
// ==========================================
} else if($_SESSION['role'] == 'admin_meeting') {
echo get_header("รายการรออนุมัติ - จอห้องประชุมของวันนี้");
if(isset($_GET['mark_mtg_done'])) {
$mreq_id = intval($_GET['mark_mtg_done']);
mysqli_query($conn, "UPDATE meeting_requests SET status = 'done' WHERE mreq_id = $mreq_id");
echo "<script>alert('อัปเดตสถานะจอห้องประชุมเรียบร้อย'); window.location='dashboard.php';</script>";
}
$today = date('Y-m-d'); // ดึงวันที่ปัจจุบัน
// ดึงเฉพาะงานที่มีสถานะ pending และเวลาคาบเกี่ยวกับช่วงวันปัจจุบัน
$res_mtg = mysqli_query($conn, "SELECT m.*, u.group_name FROM meeting_requests m JOIN users u ON m.user_id = u.user_id WHERE m.status = 'pending' AND '$today' BETWEEN m.start_date AND m.end_date ORDER BY m.start_date ASC");
?>
<div class="d-flex justify-content-between align-items-center mb-4 border-bottom border-success pb-2 border-3">
<h3 class="text-success mb-0"><i class="bi bi-projector"></i> รายการรออนุมัติ (จอห้องประชุมของวันนี้)</h3>
<span class="badge bg-danger rounded-pill fs-6">รออยู่ <?php echo mysqli_num_rows($res_mtg); ?> งาน</span>
</div>
<div class="row">
<?php if(mysqli_num_rows($res_mtg) > 0) {
while($row_m = mysqli_fetch_assoc($res_mtg)) {
?>
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 shadow-sm border-success" style="border-width: 0 0 0 5px;">
<div class="card-body d-flex flex-column">
<div class="d-flex justify-content-between mb-2">
<h5 class="card-title fw-bold text-dark mb-0"><?php echo $row_m['topic']; ?></h5>
<div><span class="badge bg-success"><?php echo $row_m['room']; ?></span></div>
</div>
<h6 class="small text-secondary mb-2"><i class="bi bi-person"></i> <?php echo $row_m['group_name']; ?> <br><i class="bi bi-calendar"></i> <?php echo ($row_m['date_type']=='single') ? thai_date($row_m['start_date']) : thai_date($row_m['start_date'])." - ".thai_date($row_m['end_date']); ?></h6>
<div class="mb-3 mt-auto">
<strong class="small d-block mb-2 text-success border-bottom pb-1"><i class="bi bi-paperclip"></i> ไฟล์/รูปภาพที่แนบมา:</strong>
<div class="d-flex flex-wrap gap-2">
<?php
$res_f = mysqli_query($conn, "SELECT * FROM meeting_files WHERE mreq_id = ".$row_m['mreq_id']);
if(mysqli_num_rows($res_f) > 0){
while($file = mysqli_fetch_assoc($res_f)){
$file_url = "uploads/".$file['filename'];
$ext = strtolower(pathinfo($file['filename'], PATHINFO_EXTENSION));
if(in_array($ext, ['jpg','jpeg','png','gif','webp'])){
echo "<img src='$file_url' onclick=\"viewFullImage('$file_url')\" class='img-thumbnail shadow-sm border-success' style='height:80px; width:80px; object-fit:cover; cursor:pointer;'>";
} else {
echo "<a href='$file_url' target='_blank' class='btn btn-outline-secondary p-1 d-flex flex-column align-items-center justify-content-center shadow-sm' style='height:80px; width:80px;' title='".$file['original_name']."'><i class='bi bi-file-earmark-text fs-4'></i><span class='small text-truncate w-100 mt-1' style='font-size:10px;'>".$ext."</span></a>";
}
}
} else { echo "<span class='text-muted small'>ไม่มีไฟล์แนบ</span>"; }
?>
</div>
</div>
<a href="?mark_mtg_done=<?php echo $row_m['mreq_id']; ?>" class="btn btn-success w-100 mt-2" onclick="return confirm('ยืนยันตั้งค่าจอห้องประชุมเสร็จสิ้น?');"><i class="bi bi-check-circle"></i> ยืนยันว่าดำเนินการเสร็จแล้ว</a>
</div>
</div>
</div>
<?php }} else { echo "<div class='alert alert-light border text-center text-muted py-5'><i class='bi bi-check2-circle fs-1 d-block text-success'></i>ไม่มีงานของวันนี้ค้าง</div>"; } ?>
</div>
<?php
// ==========================================
// ส่วนที่ 3: USER (กลุ่มงานทั่วไป)
// ==========================================
} else {
echo get_header("Dashboard - รายการที่ Active");
$user_id = $_SESSION['user_id'];
$today = date('Y-m-d');
$page_tv = isset($_GET['page_tv']) ? intval($_GET['page_tv']) : 1;
$limit = 10;
$offset_tv = ($page_tv - 1) * $limit;
// อัปเดตการดึงข้อมูลเพื่อโชว์ชื่อประเภทข่าว (cat_name) ของ TV
$res_tv = mysqli_query($conn, "SELECT r.*, c.cat_name FROM requests r LEFT JOIN news_categories c ON r.cat_id = c.cat_id WHERE r.user_id = $user_id AND '$today' BETWEEN r.start_date AND r.end_date ORDER BY r.start_date ASC LIMIT $offset_tv, $limit");
$page_mtg = isset($_GET['page_mtg']) ? intval($_GET['page_mtg']) : 1;
$offset_mtg = ($page_mtg - 1) * $limit;
$res_mtg = mysqli_query($conn, "SELECT * FROM meeting_requests WHERE user_id = $user_id AND '$today' BETWEEN start_date AND end_date ORDER BY start_date ASC LIMIT $offset_mtg, $limit");
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<h3 class="fw-bold text-dark"><i class="bi bi-broadcast"></i> รายการที่กำลังแสดงผล (Active วันนี้)</h3>
<p class="text-muted small mb-0">รายการที่อยู่ในช่วงเวลาประชาสัมพันธ์ของวันนี้</p>
</div>
<div class="btn-group shadow-sm">
<button type="button" class="btn btn-primary dropdown-toggle px-4" data-bs-toggle="dropdown"><i class="bi bi-plus-lg"></i> เพิ่มความต้องการ</button>
<ul class="dropdown-menu shadow">
<li><a class="dropdown-item py-2" href="user_add.php"><i class="bi bi-tv text-primary me-2"></i> ขึ้นจอโทรทัศน์</a></li>
<li><a class="dropdown-item py-2" href="user_meeting_add.php"><i class="bi bi-projector text-success me-2"></i> ขึ้นจอห้องประชุม</a></li>
</ul>
<a href="user_history.php" class="btn btn-light border d-flex align-items-center px-3">ประวัติทั้งหมด</a>
</div>
</div>
<div class="card shadow-sm border-0 border-top border-primary border-3 mb-4">
<div class="card-header bg-white py-3"><h5 class="mb-0 text-primary"><i class="bi bi-tv"></i> จอโทรทัศน์</h5></div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr><th class="ps-4" style="width: 40%;">หัวข้อประชาสัมพันธ์</th><th style="width: 15%;">ประเภท</th><th style="width: 25%;">ช่วงเวลาแสดงผล</th><th style="width: 20%;">สถานะระบบ</th></tr>
</thead>
<tbody>
<?php if(mysqli_num_rows($res_tv) > 0) {
while($row = mysqli_fetch_assoc($res_tv)) {
$cat_label = $row['cat_name'] ? $row['cat_name'] : 'ไม่ระบุประเภท';
?>
<tr>
<td class="ps-4 text-dark">
<strong class="d-block"><?php echo $row['title']; ?></strong>
<span class="badge bg-info text-dark mt-1" style="font-size: 0.7rem;"><i class="bi bi-tag-fill"></i> <?php echo $cat_label; ?></span>
</td>
<td><?php echo ($row['req_type'] == 'ready') ? '<span class="badge bg-success bg-opacity-10 text-success border border-success">ทำรูปแล้ว</span>' : '<span class="badge bg-warning bg-opacity-10 text-warning border border-warning">ให้จัดทำ</span>'; ?></td>
<td class="small text-muted"><i class="bi bi-calendar-event"></i> <?php echo thai_date($row['start_date']) . " - " . thai_date($row['end_date']); ?></td>
<td>
<span class="text-success fw-bold small"><span class="spinner-grow spinner-grow-sm text-success align-middle me-1"></span> กำลังแสดงผล</span><br>
<span style="font-size: 0.75rem;" class="text-muted">Admin: <?php echo ($row['status'] == 'done') ? '<span class="text-primary">ดำเนินการแล้ว</span>' : 'รอดำเนินการ'; ?></span>
</td>
</tr>
<?php }} else { echo "<tr><td colspan='4' class='text-center py-4 text-muted'>ไม่มีรายการ Active</td></tr>"; } ?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow-sm border-0 border-top border-success border-3 mb-4">
<div class="card-header bg-white py-3"><h5 class="mb-0 text-success"><i class="bi bi-projector"></i> จอห้องประชุม</h5></div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr><th class="ps-4" style="width: 40%;">หัวข้อการประชุม</th><th style="width: 15%;">ห้องประชุม</th><th style="width: 25%;">ช่วงเวลาแสดงผล</th><th style="width: 20%;">สถานะระบบ</th></tr>
</thead>
<tbody>
<?php if(mysqli_num_rows($res_mtg) > 0) {
while($row_m = mysqli_fetch_assoc($res_mtg)) {
?>
<tr>
<td class="ps-4 fw-bold text-dark"><?php echo $row_m['topic']; ?></td>
<td><span class="badge bg-light text-dark border border-secondary"><?php echo $row_m['room']; ?></span></td>
<td class="small text-muted"><i class="bi bi-calendar-event"></i> <?php echo ($row_m['date_type']=='single') ? thai_date($row_m['start_date']) : thai_date($row_m['start_date']) . " - " . thai_date($row_m['end_date']); ?></td>
<td><span class="text-success fw-bold small"><span class="spinner-grow spinner-grow-sm text-success align-middle me-1"></span> กำลังแสดงผล</span><br><span style="font-size: 0.75rem;" class="text-muted">Admin: <?php echo ($row_m['status'] == 'done') ? '<span class="text-primary">ดำเนินการแล้ว</span>' : 'รอดำเนินการ'; ?></span></td>
</tr>
<?php }} else { echo "<tr><td colspan='4' class='text-center py-4 text-muted'>ไม่มีรายการ Active</td></tr>"; } ?>
</tbody>
</table>
</div>
</div>
</div>
<?php } // End User Section
echo get_footer();
?>