File manager - Edit - /var/www/order.cmtc.ac.th/index_7.php
Back
<?php session_start(); include('config/db.php'); // ✅ ดึงสถานะระบบจอง $setting_booking = $conn->query("SELECT setting_value FROM settings WHERE setting_key='booking_status'")->fetch_assoc(); $booking_status = $setting_booking['setting_value'] ?? 'on'; // ✅ ดึงสถานะ Pre Order $setting_preorder = $conn->query("SELECT setting_value FROM settings WHERE setting_key='pre_order_status'")->fetch_assoc(); $pre_order_status = $setting_preorder['setting_value'] ?? 'off'; // ✅ หากระบบจองถูกปิด ให้ล้างสินค้าในตะกร้าทั้งหมด if ($booking_status == 'off' && isset($_SESSION['cart'])) { unset($_SESSION['cart']); } // ✅ ดึงรายการสินค้า $products = $conn->query("SELECT * FROM products ORDER BY id ASC"); // ✅ เพิ่มสินค้าเข้าตะกร้า (เฉพาะเมื่อระบบเปิดจอง) if ($booking_status == 'on' && isset($_GET['add_cart'])) { $pid = intval($_GET['add_cart']); $prod = $conn->query("SELECT stock FROM products WHERE id=$pid")->fetch_assoc(); if ($prod) { if ($prod['stock'] > 0 || $pre_order_status == 'on') { if (!isset($_SESSION['cart'][$pid])) { $_SESSION['cart'][$pid] = 1; } else { $_SESSION['cart'][$pid]++; } header("Location: index.php?cart_added=1"); exit; } else { header("Location: index.php?out_of_stock=1"); exit; } } } // ✅ นับจำนวนสินค้าในตะกร้า $cart_count = 0; if (isset($_SESSION['cart'])) { foreach ($_SESSION['cart'] as $qty) { $cart_count += $qty; } } ?> <!DOCTYPE html> <html lang="th"> <head> <meta charset="UTF-8"> <title><?=$system_name?> <?=$school_name?></title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/lightbox2@2.11.4/dist/css/lightbox.min.css" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Kanit:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <style> body { font-family: 'Kanit', sans-serif; background-color: #faf7f2; } .navbar { background: linear-gradient(45deg, #44000E, #44000E); } .navbar-brand { font-weight: 600; color: #fff !important; font-size: 1.3rem; } .btn-gold { background: linear-gradient(45deg, #c9a23f, #ffca28); color: #000; font-weight: 600; border: none; } .btn-gold:hover { background: linear-gradient(45deg, #ffca28, #d4af37); } .badge-cart { background: #ffcc00; color: #000; font-size: 13px; margin-left: 5px; border-radius: 10px; padding: 2px 7px; } footer { background-color: #44000E; color: #f5f5f5; text-align: center; padding: 20px 10px; margin-top: 50px; } .hero { background: url('images/temple_bg.jpg') center/cover no-repeat; color: white; text-align: center; padding: 100px 15px; position: relative; overflow: hidden; } .hero::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.55); } .hero-content { position: relative; z-index: 2; } .hero h1 { font-size: 2.6rem; font-weight: 700; color: #ffd54f; text-shadow: 0 0 15px rgba(255,215,0,0.9); animation: glowText 3s infinite alternate; } @keyframes glowText { from { text-shadow: 0 0 10px rgba(255,215,0,0.5); } to { text-shadow: 0 0 25px rgba(255,235,59,1); } } .card { border: none; border-radius: 16px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); transition: .3s; } .card:hover { transform: translateY(-6px); box-shadow: 0 8px 16px rgba(0,0,0,0.15); } .hover-card { transition: all 0.3s ease; border: 1px solid #eee; border-radius: 12px; } .hover-card:hover { transform: translateY(-5px); box-shadow: 0 6px 14px rgba(0,0,0,0.15); } .img-fluid { display: block; margin: 0 auto; } .row.justify-content-center { justify-content: center !important; } /* ✅ แสดงคงเหลือ-จองแล้ว คนละสี */ .stock-info { display: flex; justify-content: space-between; font-size: 0.9rem; margin-top: 4px; } .stock-left { color: #0d6efd; /* 🔵 ฟ้า */ font-weight: 600; } .stock-right { color: #fd7e14; /* 🟠 ส้ม */ font-weight: 600; } </style> </head> <body> <audio id="templeBell" preload="auto"> <source src="sounds/temple_bell.mp3" type="audio/mpeg"> </audio> <nav class="navbar navbar-expand-lg navbar-dark shadow-sm"> <div class="container"> <a class="navbar-brand" href="#"> <?=$system_name?></a> <div class="ms-auto d-flex gap-2"> <a href="user/index.php" class="btn btn-warning btn-sm"> 🛒 ตะกร้า <?php if($cart_count > 0): ?><span class="badge-cart"><?=$cart_count?></span><?php endif; ?> </a> <a href="user/check_status.php" class="btn btn-outline-light btn-sm">ตรวจสอบสถานะ</a> <a href="admin/index.php" class="btn btn-outline-warning btn-sm">เข้าสู่ระบบผู้ดูแล</a> </div> </div> </nav> <section class="hero"> <div class="hero-content"> <img src="uploads/logo_cmtc.png" width="100" alt="โลโก้วิทยาลัย" class="mb-3"> <h1><?=$system_name?><br><?=$school_name?></h1> <p>“ร่วมเป็นส่วนหนึ่งแห่งบุญ กับวิทยาลัยเทคนิคเชียงใหม่”</p> <a href="#products" class="btn btn-gold mt-3 px-4 py-2">ดูรายการเหรียญ</a> </div> </section> <div class="container py-5" id="products"> <?php if($booking_status == 'off'): ?> <div class="alert alert-danger text-center fs-5 fw-bold mb-4"> ⛔ ขณะนี้ระบบยังไม่เปิดรับจองเหรียญ </div> <?php endif; ?> <div class="row g-4 justify-content-center"> <?php while($row = $products->fetch_assoc()): ?> <?php $count_ordered = 0; $q = $conn->query(" SELECT SUM(i.qty) AS total FROM order_items i JOIN orders o ON o.id = i.order_id WHERE i.product_id = {$row['id']} AND i.confirm_status = 'ยืนยัน' AND i.item_status = 'ปกติ' "); if($q && $r = $q->fetch_assoc()) { $count_ordered = intval($r['total']); } $is_out_of_stock = ($row['stock'] <= 0); $can_preorder = ($pre_order_status == 'on'); ?> <div class="col-lg-3 col-md-4 col-sm-6 d-flex align-items-stretch"> <a href="showitem.php?id=<?=$row['id']?>" class="text-decoration-none text-dark w-100"> <div class="card h-100 border-0 shadow-sm hover-card text-center"> <div class="p-3"> <img src="uploads/products/<?=$row['img1']?>" alt="<?=$row['name']?>" class="img-fluid rounded mx-auto d-block" style="max-height:220px;object-fit:cover;"> </div> <div class="card-body text-center"> <h5 class="fw-bold mb-2"><?=$row['name']?></h5> <div class="d-flex justify-content-center flex-column align-items-center mb-1"> <span class="text-danger fw-semibold">฿<?=number_format($row['price'],2)?></span> </div> <div class="stock-info"> <span class="stock-left">คงเหลือ <?=$row['stock']?> เหรียญ</span> <span class="stock-right">จองแล้ว <?=$count_ordered?> เหรียญ</span> </div> </div> </div> </a> </div> <?php endwhile; ?> </div> </div> <!-- ✅ Modal แจ้งเตือน --> <div class="modal fade" id="cartModal" tabindex="-1" aria-labelledby="cartModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content border-0 shadow-lg rounded-4"> <div class="modal-header bg-success text-white"> <h5 class="modal-title" id="cartModalLabel">เพิ่มเหรียญสำเร็จ</h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button> </div> <div class="modal-body text-center py-4"> <h1 class="text-success mb-3">✅</h1> <p class="fs-5 fw-semibold">เพิ่มเหรียญลงตะกร้าเรียบร้อยแล้ว!</p> </div> <div class="modal-footer justify-content-center"> <a href="user/index.php" class="btn btn-primary">ดูตะกร้าสินค้า</a> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">เลือกเหรียญเพิ่ม</button> </div> </div> </div> </div> <footer> <p class="mb-0">วิทยาลัยเทคนิคเชียงใหม่ สถาบันการอาชีวศึกษาภาคเหนือ 1<br> 9 ถ.เวียงแก้ว ต.ศรีภูมิ อ.เมืองเชียงใหม่ จ.เชียงใหม่ 50200 โทรศัพท์ 053-217708-9</p> <small>© 2025 Designed and developed by <a href="https://kridsana.cmtc.ac.th" target="_blank">KruBig</a> Chiang Mai Technical College</small> </footer> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/lightbox2@2.11.4/dist/js/lightbox-plus-jquery.min.js"></script> <script> window.addEventListener('load', () => { const bell = document.getElementById('templeBell'); setTimeout(() => bell.play().catch(()=>{}), 800); }); <?php if(isset($_GET['cart_added'])): ?> document.addEventListener('DOMContentLoaded', function(){ const modal = new bootstrap.Modal(document.getElementById('cartModal')); modal.show(); setTimeout(() => modal.hide(), 3000); }); <?php endif; ?> </script> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.42 |
proxy
|
phpinfo
|
Settings