403Webshell
Server IP : 104.21.80.248  /  Your IP : 172.71.28.156
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/certificate/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : E:/Inetpub/www/certificate//manage_event.php
<?php
require 'db.php';
checkSingleSession();
if(!isset($_SESSION['user_id'])) { header("Location: login.php"); exit; }

$eid = isset($_GET['eid']) ? decryptData($_GET['eid']) : 0;

// -------------------------------------------------------------------
// ส่วนประมวลผล AJAX สำหรับโหลดรายชื่อแบบแบ่งหน้าและค้นหา
// -------------------------------------------------------------------
if(isset($_GET['ajax_names']) && $eid) {
    $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
    $search = isset($_GET['q']) ? mysqli_real_escape_string($condb, $_GET['q']) : '';
    $limit = 10;
    $offset = ($page - 1) * $limit;

    // สร้างเงื่อนไขการค้นหา
    $where = "event_id='$eid'";
    if($search != '') {
        $where .= " AND nm LIKE '%$search%'";
    }

    $count_q = mysqli_query($condb, "SELECT COUNT(*) as c FROM cert_names WHERE $where");
    $total_rows = mysqli_fetch_assoc($count_q)['c'];
    $total_pages = ceil($total_rows / $limit);

    $q = mysqli_query($condb, "SELECT * FROM cert_names WHERE $where ORDER BY id DESC LIMIT $offset, $limit");
    $html = '';
    
    // กำหนดตัวแปรลำดับเริ่มต้น
    $no = $offset + 1;

    while($row = mysqli_fetch_assoc($q)) {
        $type_txt = "ผู้เข้าอบรม";
        $badge_color = "success";
        if($row['type'] == '2') { $type_txt = "คณะทำงาน"; $badge_color = "warning text-dark"; }
        elseif($row['type'] == '3') { $type_txt = "วิทยากร"; $badge_color = "info text-dark"; }
        
        // เข้ารหัส ID ของรายชื่อเพื่อใช้สร้างลิงก์ดูเกียรติบัตร
        $enc_cid = encryptData($row['id']);

        $html .= "<tr>
            <td class='align-middle text-center fw-bold text-muted'>$no</td>
            <td class='align-middle'>
                <a href='certi.php?cid={$enc_cid}' target='_blank' class='text-decoration-none fw-bold text-primary' title='คลิกเพื่อดูเกียรติบัตร'>
                    ".htmlspecialchars($row['nm'])." <i class='fas fa-external-link-alt ms-2 small text-muted'></i>
                </a>
            </td>
            <td class='align-middle text-muted small'>".($row['school'] ? htmlspecialchars($row['school']) : '-')."</td>
            <td class='align-middle text-center'>".htmlspecialchars($row['cer_id'])."</td>
            <td class='align-middle text-center'><span class='badge bg-{$badge_color}'>{$type_txt}</span></td>
            <td class='align-middle text-center'>
                <button type='button' class='btn btn-sm btn-warning' onclick=\"openEditModal({$row['id']}, '".htmlspecialchars($row['nm'], ENT_QUOTES)."', '".htmlspecialchars($row['school'], ENT_QUOTES)."', '".htmlspecialchars($row['cer_id'], ENT_QUOTES)."', '{$row['type']}')\"><i class='fas fa-edit'></i></button>
                <a href='manage_event.php?eid=".encryptData($eid)."&del_name={$row['id']}' class='btn btn-sm btn-danger' onclick=\"return confirm('ยืนยันการลบรายชื่อ {$row['nm']} ?');\"><i class='fas fa-trash'></i></a>
            </td>
        </tr>";
        $no++; 
    }
    if(mysqli_num_rows($q) == 0) {
        $html = "<tr><td colspan='6' class='text-center py-4 text-muted'>ไม่พบข้อมูลรายชื่อ</td></tr>";
    }

    echo json_encode([
        'html' => $html,
        'pagination' => createPagination($total_pages, $page, 'loadNames')
    ]);
    exit;
}

$msg = '';
$msgType = '';

// -------------------------------------------------------------------
// ส่วนที่ 1: บันทึก/แก้ไข ข้อมูลกิจกรรมหลัก
// -------------------------------------------------------------------
if(isset($_POST['save_info'])) {
    $title = mysqli_real_escape_string($condb, $_POST['event_title']);
    $date = mysqli_real_escape_string($condb, $_POST['event_date']);
    $cert_num_style = mysqli_real_escape_string($condb, $_POST['cert_num_style']);
    $show_school = (int)$_POST['show_school'];
    $uid = $_SESSION['user_id'];

    if($eid) {
        mysqli_query($condb, "UPDATE cert_events SET 
            event_title='$title', 
            event_date='$date',
            cert_num_style='$cert_num_style',
            show_school='$show_school'
            WHERE event_id='$eid'");
        $msg = "อัปเดตข้อมูลกิจกรรมเรียบร้อยแล้ว";
        $msgType = "success";
    } else {
        mysqli_query($condb, "INSERT INTO cert_events 
            (event_title, event_date, user_id, pos_name_y, pos_cert_x, pos_cert_y, font_size_name, font_color_name, font_weight_name, font_size_cert, font_color_cert, font_weight_cert, cert_num_style, show_school, pos_school_y, font_size_school, font_color_school, font_weight_school, font_family) 
            VALUES ('$title', '$date', '$uid', 44, 200, 10, 50, '#000000', 'bold', 16, '#000000', 'normal', '$cert_num_style', '$show_school', 55, 40, '#000000', 'normal', 'sarabun')");
        $eid = mysqli_insert_id($condb);
        header("Location: manage_event.php?eid=".encryptData($eid)."&msg=saved");
        exit;
    }
}

// -------------------------------------------------------------------
// ส่วนที่ 2: บันทึก/แก้ไข ตั้งค่าฟอนต์ พิกัด ขนาด สี และความหนาตัวอักษร
// -------------------------------------------------------------------
if(isset($_POST['save_position']) && $eid) {
    $font_family = mysqli_real_escape_string($condb, $_POST['font_family']);
    $pos_name_y = (int)$_POST['pos_name_y'];
    $pos_cert_x = (int)$_POST['pos_cert_x'];
    $pos_cert_y = (int)$_POST['pos_cert_y'];
    $font_size_name = (int)$_POST['font_size_name'];
    $font_color_name = mysqli_real_escape_string($condb, $_POST['font_color_name']);
    $font_weight_name = mysqli_real_escape_string($condb, $_POST['font_weight_name']);
    
    $font_size_cert = (int)$_POST['font_size_cert'];
    $font_color_cert = mysqli_real_escape_string($condb, $_POST['font_color_cert']);
    $font_weight_cert = mysqli_real_escape_string($condb, $_POST['font_weight_cert']);
    
    $pos_school_y = (int)$_POST['pos_school_y'];
    $font_size_school = (int)$_POST['font_size_school'];
    $font_color_school = mysqli_real_escape_string($condb, $_POST['font_color_school']);
    $font_weight_school = mysqli_real_escape_string($condb, $_POST['font_weight_school']);

    mysqli_query($condb, "UPDATE cert_events SET 
        font_family='$font_family',
        pos_name_y='$pos_name_y', 
        pos_cert_x='$pos_cert_x', 
        pos_cert_y='$pos_cert_y',
        font_size_name='$font_size_name',
        font_color_name='$font_color_name',
        font_weight_name='$font_weight_name',
        font_size_cert='$font_size_cert',
        font_color_cert='$font_color_cert',
        font_weight_cert='$font_weight_cert',
        pos_school_y='$pos_school_y',
        font_size_school='$font_size_school',
        font_color_school='$font_color_school',
        font_weight_school='$font_weight_school'
        WHERE event_id='$eid'");
        
    $msg = "อัปเดตฟอนต์ พิกัด ขนาด สี และความหนาตัวอักษรเรียบร้อยแล้ว";
    $msgType = "success";
}

// -------------------------------------------------------------------
// ส่วนที่ 3: อัปโหลด Template ทั้ง 3 แบบ
// -------------------------------------------------------------------
if(isset($_POST['save_template']) && $eid) {
    $uploaded = 0;
    for($i = 1; $i <= 3; $i++) {
        $input_name = 'template_' . $i;
        if(isset($_FILES[$input_name]) && $_FILES[$input_name]['size'] > 0) {
            $ext = strtolower(pathinfo($_FILES[$input_name]['name'], PATHINFO_EXTENSION));
            if(in_array($ext, ['jpg','jpeg','png'])) {
                if(!is_dir("img")) mkdir("img", 0777, true);
                $bg_name = "bg_".$eid."_type".$i."_".time().".".$ext;
                if(move_uploaded_file($_FILES[$input_name]['tmp_name'], "img/".$bg_name)) {
                    $old_q = mysqli_query($condb, "SELECT template_bg_$i FROM cert_events WHERE event_id='$eid'");
                    $old_file = mysqli_fetch_assoc($old_q)['template_bg_'.$i];
                    if(!empty($old_file) && file_exists("img/".$old_file)) { @unlink("img/".$old_file); }
                    
                    mysqli_query($condb, "UPDATE cert_events SET template_bg_$i='$bg_name' WHERE event_id='$eid'");
                    $uploaded++;
                }
            }
        }
    }
    if($uploaded > 0) {
        $msg = "อัปโหลด Template ใหม่เรียบร้อยแล้ว จำนวน $uploaded รายการ";
        $msgType = "success";
    } else {
        $msg = "ยังไม่ได้เลือกไฟล์ใหม่ หรือไฟล์ไม่รองรับ (.jpg, .png)";
        $msgType = "warning";
    }
}

// -------------------------------------------------------------------
// ส่วนที่ 4: นำเข้ารายชื่อผ่านไฟล์ Excel
// -------------------------------------------------------------------
if(isset($_POST['upload_excel']) && $eid) {
    if(isset($_FILES['excel_file']) && $_FILES['excel_file']['size'] > 0) {
        $fileType = strtolower(pathinfo($_FILES['excel_file']['name'], PATHINFO_EXTENSION));
        
        if($fileType == "xlsx" || $fileType == "xls") {
            require_once 'Classes/PHPExcel.php';
            require_once 'Classes/PHPExcel/IOFactory.php';
            
            $file = $_FILES['excel_file']['tmp_name'];
            
            try {
                $inputFileType = PHPExcel_IOFactory::identify($file);
                $objReader = PHPExcel_IOFactory::createReader($inputFileType);
                $objReader->setReadDataOnly(true);
                $objPHPExcel = $objReader->load($file);
                $rows = $objPHPExcel->getActiveSheet()->toArray();
                
                $success = 0;
                
                for ($i = 1; $i < count($rows); $i++) {
                    if (!empty(trim($rows[$i][0])) && !empty(trim($rows[$i][1]))) {
                        $nm = mysqli_real_escape_string($condb, trim($rows[$i][0]));
                        $cer_id = mysqli_real_escape_string($condb, trim($rows[$i][1]));
                        $type = (isset($rows[$i][2]) && trim($rows[$i][2]) !== '') ? mysqli_real_escape_string($condb, trim($rows[$i][2])) : '1';
                        $school = isset($rows[$i][3]) ? mysqli_real_escape_string($condb, trim($rows[$i][3])) : '';
                        
                        mysqli_query($condb, "INSERT INTO cert_names (event_id, nm, cer_id, type, school) VALUES ('$eid', '$nm', '$cer_id', '$type', '$school')");
                        $success++;
                    }
                }
                
                $msg = "นำเข้ารายชื่อจาก Excel สำเร็จ $success รายการ";
                $msgType = "success";
                
            } catch(Exception $e) {
                $msg = "เกิดข้อผิดพลาดในการอ่านไฟล์ Excel: " . $e->getMessage();
                $msgType = "danger";
            }
        } else {
            $msg = "ระบบรองรับเฉพาะไฟล์นามสกุล .xls หรือ .xlsx เท่านั้นครับ";
            $msgType = "danger";
        }
    }
}

// -------------------------------------------------------------------
// ส่วนที่ 5: เพิ่มรายชื่อแบบกรอกเองทีละคน
// -------------------------------------------------------------------
if(isset($_POST['add_manual']) && $eid) {
    $nm = mysqli_real_escape_string($condb, trim($_POST['manual_nm']));
    $cer_id = mysqli_real_escape_string($condb, trim($_POST['manual_cer_id']));
    $type = mysqli_real_escape_string($condb, trim($_POST['manual_type']));
    $school = mysqli_real_escape_string($condb, trim($_POST['manual_school']));
    
    if(!empty($nm) && !empty($cer_id)) {
        mysqli_query($condb, "INSERT INTO cert_names (event_id, nm, cer_id, type, school) VALUES ('$eid', '$nm', '$cer_id', '$type', '$school')");
        $msg = "เพิ่มรายชื่อ $nm เรียบร้อยแล้ว";
        $msgType = "success";
    } else {
        $msg = "กรุณากรอกชื่อและเลขที่เกียรติบัตรให้ครบถ้วน";
        $msgType = "danger";
    }
}

// -------------------------------------------------------------------
// ส่วนที่ 6: การแก้ไขรายชื่อ (Edit Name)
// -------------------------------------------------------------------
if(isset($_POST['edit_name_submit']) && $eid) {
    $nid = (int)$_POST['edit_nid'];
    $nm = mysqli_real_escape_string($condb, trim($_POST['edit_nm']));
    $cer_id = mysqli_real_escape_string($condb, trim($_POST['edit_cer_id']));
    $type = mysqli_real_escape_string($condb, trim($_POST['edit_type']));
    $school = mysqli_real_escape_string($condb, trim($_POST['edit_school']));
    
    mysqli_query($condb, "UPDATE cert_names SET nm='$nm', cer_id='$cer_id', type='$type', school='$school' WHERE id='$nid' AND event_id='$eid'");
    $msg = "แก้ไขข้อมูลรายชื่อเรียบร้อยแล้ว";
    $msgType = "success";
}

// -------------------------------------------------------------------
// การลบรายชื่อ (GET Method)
// -------------------------------------------------------------------
if(isset($_GET['del_name']) && $eid) {
    $nid = (int)$_GET['del_name'];
    mysqli_query($condb, "DELETE FROM cert_names WHERE id='$nid' AND event_id='$eid'");
    header("Location: manage_event.php?eid=".encryptData($eid)."&msg=deleted");
    exit;
}

if(isset($_GET['msg'])) {
    if($_GET['msg'] == 'saved') { $msg = "บันทึกข้อมูลเริ่มต้นสำเร็จ เริ่มตั้งค่าและเพิ่มรายชื่อได้เลยครับ"; $msgType = "success"; }
    if($_GET['msg'] == 'deleted') { $msg = "ลบรายชื่อเรียบร้อยแล้ว"; $msgType = "success"; }
}

// -------------------------------------------------------------------
// ดึงข้อมูลกิจกรรมล่าสุดมาแสดงผล
// -------------------------------------------------------------------
$event = [
    'event_title'=>'', 'event_date'=>date('Y-m-d'), 
    'template_bg_1'=>'', 'template_bg_2'=>'', 'template_bg_3'=>'',
    'font_family'=>'sarabun',
    'pos_name_y'=>44, 'pos_cert_x'=>200, 'pos_cert_y'=>10,
    'font_size_name'=>50, 'font_color_name'=>'#000000', 'font_weight_name'=>'bold',
    'font_size_cert'=>16, 'font_color_cert'=>'#000000', 'font_weight_cert'=>'normal',
    'cert_num_style'=>'thai', 'show_school'=>0, 'pos_school_y'=>55, 'font_size_school'=>40, 'font_color_school'=>'#000000', 'font_weight_school'=>'normal'
];
if($eid) {
    $q = mysqli_query($condb, "SELECT * FROM cert_events WHERE event_id='$eid'");
    $event = mysqli_fetch_assoc($q);
    if(!$event) { header("Location: dashboard.php"); exit; }
}

require 'layout.php';
renderHeader($eid ? "แก้ไขเกียรติบัตร" : "เพิ่มเกียรติบัตรใหม่");
?>
<div class="row justify-content-center mt-4 mb-5">
    <div class="col-lg-10">
        
        <div class="d-flex justify-content-between align-items-center mb-3">
            <h3 class="fw-bold text-dark m-0"><?php echo $eid ? 'รายละเอียดกิจกรรม' : 'สร้างเรื่องใหม่'; ?></h3>
            <a href="dashboard.php" class="btn btn-secondary px-4 rounded-pill"><i class="fas fa-arrow-left"></i> กลับหน้ารวม</a>
        </div>

        <?php if($msg): ?>
            <div class="alert alert-<?php echo $msgType; ?> alert-dismissible fade show shadow-sm">
                <i class="fas <?php echo $msgType == 'success' ? 'fa-check-circle' : 'fa-exclamation-circle'; ?>"></i> <?php echo $msg; ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
            </div>
        <?php endif; ?>

        <div class="card p-4 mb-4 shadow-sm border-top border-4 border-primary">
            <h5 class="fw-bold text-primary mb-3"><i class="fas fa-info-circle"></i> 1. ข้อมูลกิจกรรมและการแสดงผลพื้นฐาน</h5>
            <form method="post">
                <div class="row">
                    <div class="col-md-8 mb-3">
                        <label class="form-label fw-bold">ชื่อเรื่องเกียรติบัตร</label>
                        <input type="text" name="event_title" class="form-control" required value="<?php echo htmlspecialchars($event['event_title']); ?>">
                    </div>
                    <div class="col-md-4 mb-3">
                        <label class="form-label fw-bold">วันที่ออกเกียรติบัตร</label>
                        <input type="date" name="event_date" class="form-control" required value="<?php echo $event['event_date']; ?>">
                    </div>
                </div>
                
                <div class="row mt-2 bg-light p-3 rounded mx-0 border">
                    <div class="col-md-6 mb-3 mb-md-0">
                        <label class="form-label fw-bold text-dark">รูปแบบเลขที่เกียรติบัตร</label>
                        <div>
                            <div class="form-check form-check-inline">
                                <input class="form-check-input" type="radio" name="cert_num_style" id="num_thai" value="thai" <?php echo ($event['cert_num_style']=='thai' || !$eid) ? 'checked' : ''; ?>>
                                <label class="form-check-label" for="num_thai">เลขไทย (เช่น ๑๒๓)</label>
                            </div>
                            <div class="form-check form-check-inline">
                                <input class="form-check-input" type="radio" name="cert_num_style" id="num_arabic" value="arabic" <?php echo ($event['cert_num_style']=='arabic') ? 'checked' : ''; ?>>
                                <label class="form-check-label" for="num_arabic">เลขอารบิก (เช่น 123)</label>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-6">
                        <label class="form-label fw-bold text-dark">แสดงชื่อโรงเรียน/หน่วยงานหรือไม่?</label>
                        <div>
                            <div class="form-check form-check-inline">
                                <input class="form-check-input" type="radio" name="show_school" id="sch_hide" value="0" <?php echo ($event['show_school']==0 || !$eid) ? 'checked' : ''; ?>>
                                <label class="form-check-label" for="sch_hide">ไม่แสดง</label>
                            </div>
                            <div class="form-check form-check-inline">
                                <input class="form-check-input" type="radio" name="show_school" id="sch_show" value="1" <?php echo ($event['show_school']==1) ? 'checked' : ''; ?>>
                                <label class="form-check-label" for="sch_show">แสดง (ด้านล่างชื่อ)</label>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="text-end mt-3">
                    <button type="submit" name="save_info" class="btn btn-primary px-4 fw-bold"><i class="fas fa-save"></i> <?php echo $eid ? 'อัปเดตข้อมูลกิจกรรม' : 'บันทึกและดำเนินการต่อ'; ?></button>
                </div>
            </form>
        </div>

        <?php if($eid): ?>
        
        <div class="card p-4 mb-4 shadow-sm border-top border-4 border-warning">
            <h5 class="fw-bold text-warning text-dark"><i class="fas fa-arrows-alt"></i> 2. ตั้งค่าฟอนต์ ความหนา ตำแหน่ง และขนาดตัวอักษร</h5>
            <form method="post">
                <div class="row mt-2">
                    
                    <div class="col-md-12 mb-4 border-bottom pb-3">
                        <label class="form-label fw-bold text-dark"><i class="fas fa-font text-primary"></i> เลือกรูปแบบฟอนต์ (Google Fonts)</label>
                        <select name="font_family" class="form-select border-primary shadow-sm" style="max-width: 400px;">
                            <option value="sarabun" <?php echo ($event['font_family']=='sarabun' || !$eid) ? 'selected' : ''; ?>>Sarabun (สารบรรณ มาตรฐานราชการ)</option>
                            <option value="angsa" <?php echo ($event['font_family']=='angsa') ? 'selected' : ''; ?>>Thasadith (ทรงทางการ คล้าย Angsana)</option>
                            <option value="charmonman" <?php echo ($event['font_family']=='charmonman') ? 'selected' : ''; ?>>Charmonman (ตัวอักษรคัดลายมือโบราณ/อ่อนช้อย)</option>
                            <option value="kanit" <?php echo ($event['font_family']=='kanit') ? 'selected' : ''; ?>>Kanit (ตัวอักษรสมัยใหม่/ไม่มีหัว)</option>
                        </select>
                    </div>

                    <div class="col-md-12 fw-bold text-primary small mb-2">ตั้งค่า "ชื่อ-สกุล"</div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">สีฟอนต์ (คลิกเลือกสี)</label>
                        <input type="color" name="font_color_name" class="form-control form-control-color w-100" value="<?php echo $event['font_color_name']; ?>">
                    </div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">ความหนาอักษร</label>
                        <select name="font_weight_name" class="form-select border-primary">
                            <option value="bold" <?php echo ($event['font_weight_name']=='bold' || !$eid) ? 'selected' : ''; ?>>ตัวหนา (Bold)</option>
                            <option value="normal" <?php echo ($event['font_weight_name']=='normal') ? 'selected' : ''; ?>>ตัวธรรมดา (Regular)</option>
                        </select>
                    </div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">ขนาด Font</label>
                        <input type="number" name="font_size_name" class="form-control text-center border-primary" value="<?php echo $event['font_size_name']; ?>">
                    </div>
                    <div class="col-md-3 mb-3">
                        <label class="form-label small text-muted">ตำแหน่ง แกน Y (mm)</label>
                        <input type="number" name="pos_name_y" class="form-control text-center" value="<?php echo $event['pos_name_y']; ?>">
                    </div>

                    <div class="col-md-12 fw-bold text-info small mb-2 border-top pt-3">ตั้งค่า "ชื่อโรงเรียน/หน่วยงาน"</div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">สีฟอนต์ (คลิกเลือกสี)</label>
                        <input type="color" name="font_color_school" class="form-control form-control-color w-100" value="<?php echo $event['font_color_school']; ?>">
                    </div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">ความหนาอักษร</label>
                        <select name="font_weight_school" class="form-select border-info">
                            <option value="normal" <?php echo ($event['font_weight_school']=='normal' || !$eid) ? 'selected' : ''; ?>>ตัวธรรมดา (Regular)</option>
                            <option value="bold" <?php echo ($event['font_weight_school']=='bold') ? 'selected' : ''; ?>>ตัวหนา (Bold)</option>
                        </select>
                    </div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">ขนาด Font</label>
                        <input type="number" name="font_size_school" class="form-control text-center border-info" value="<?php echo $event['font_size_school']; ?>">
                    </div>
                    <div class="col-md-3 mb-3">
                        <label class="form-label small text-muted">ตำแหน่ง แกน Y (ต้องมากกว่าชื่อ)</label>
                        <input type="number" name="pos_school_y" class="form-control text-center" value="<?php echo $event['pos_school_y']; ?>">
                    </div>

                    <div class="col-md-12 fw-bold text-success small mb-2 border-top pt-3">ตั้งค่า "เลขที่เกียรติบัตร"</div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">สีฟอนต์ (คลิกเลือกสี)</label>
                        <input type="color" name="font_color_cert" class="form-control form-control-color w-100" value="<?php echo $event['font_color_cert']; ?>">
                    </div>
                    <div class="col-md-3 mb-2">
                        <label class="form-label small text-muted">ความหนาอักษร</label>
                        <select name="font_weight_cert" class="form-select border-success">
                            <option value="normal" <?php echo ($event['font_weight_cert']=='normal' || !$eid) ? 'selected' : ''; ?>>ตัวธรรมดา (Regular)</option>
                            <option value="bold" <?php echo ($event['font_weight_cert']=='bold') ? 'selected' : ''; ?>>ตัวหนา (Bold)</option>
                        </select>
                    </div>
                    <div class="col-md-2 mb-2">
                        <label class="form-label small text-muted">ขนาด Font</label>
                        <input type="number" name="font_size_cert" class="form-control text-center border-success" value="<?php echo $event['font_size_cert']; ?>">
                    </div>
                    <div class="col-md-2 mb-2">
                        <label class="form-label small text-muted">ตำแหน่ง แกน X (mm)</label>
                        <input type="number" name="pos_cert_x" class="form-control text-center" value="<?php echo $event['pos_cert_x']; ?>">
                    </div>
                    <div class="col-md-2 mb-3">
                        <label class="form-label small text-muted">ตำแหน่ง แกน Y (mm)</label>
                        <input type="number" name="pos_cert_y" class="form-control text-center" value="<?php echo $event['pos_cert_y']; ?>">
                    </div>
                </div>
                <div class="text-end mt-2">
                    <button type="submit" name="save_position" class="btn btn-warning text-dark px-4 fw-bold"><i class="fas fa-save"></i> อัปเดตการตั้งค่าตัวอักษร</button>
                </div>
            </form>
        </div>

        <div class="card p-4 mb-4 shadow-sm border-top border-4 border-info">
            <h5 class="fw-bold text-info text-dark"><i class="fas fa-images"></i> 3. อัปโหลด Template พื้นหลัง <small class="text-muted fw-normal">(A4 แนวนอน 297x210 mm)</small></h5>
            <form method="post" enctype="multipart/form-data">
                <div class="row mt-3">
                    <div class="col-md-4 mb-3">
                        <div class="p-3 border rounded bg-light text-center h-100">
                            <h6 class="fw-bold text-success">ประเภท 1 (ผู้เข้าอบรม)</h6>
                            <input type="file" name="template_1" class="form-control form-control-sm mb-2" accept=".jpg,.jpeg,.png">
                            <?php if($event['template_bg_1']): ?>
                                <span class="badge bg-success mb-2"><i class="fas fa-check"></i> มี Template แล้ว</span><br>
                                <a href="img/<?php echo $event['template_bg_1']; ?>" target="_blank" class="btn btn-outline-success btn-sm">ดูรูปภาพปัจจุบัน</a>
                            <?php else: ?>
                                <span class="badge bg-secondary"><i class="fas fa-times"></i> ยังไม่มีรูปภาพ</span>
                            <?php endif; ?>
                        </div>
                    </div>
                    <div class="col-md-4 mb-3">
                        <div class="p-3 border rounded bg-light text-center h-100">
                            <h6 class="fw-bold text-warning">ประเภท 2 (คณะทำงาน)</h6>
                            <input type="file" name="template_2" class="form-control form-control-sm mb-2" accept=".jpg,.jpeg,.png">
                            <?php if($event['template_bg_2']): ?>
                                <span class="badge bg-success mb-2"><i class="fas fa-check"></i> มี Template แล้ว</span><br>
                                <a href="img/<?php echo $event['template_bg_2']; ?>" target="_blank" class="btn btn-outline-warning btn-sm">ดูรูปภาพปัจจุบัน</a>
                            <?php else: ?>
                                <span class="badge bg-secondary"><i class="fas fa-times"></i> ยังไม่มีรูปภาพ</span>
                            <?php endif; ?>
                        </div>
                    </div>
                    <div class="col-md-4 mb-3">
                        <div class="p-3 border rounded bg-light text-center h-100">
                            <h6 class="fw-bold text-info">ประเภท 3 (วิทยากร)</h6>
                            <input type="file" name="template_3" class="form-control form-control-sm mb-2" accept=".jpg,.jpeg,.png">
                            <?php if($event['template_bg_3']): ?>
                                <span class="badge bg-success mb-2"><i class="fas fa-check"></i> มี Template แล้ว</span><br>
                                <a href="img/<?php echo $event['template_bg_3']; ?>" target="_blank" class="btn btn-outline-info btn-sm">ดูรูปภาพปัจจุบัน</a>
                            <?php else: ?>
                                <span class="badge bg-secondary"><i class="fas fa-times"></i> ยังไม่มีรูปภาพ</span>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
                <div class="text-end mt-2">
                    <button type="submit" name="save_template" class="btn btn-info text-white px-4 fw-bold"><i class="fas fa-upload"></i> อัปเดต Template</button>
                </div>
            </form>
        </div>

        <div class="row">
            <div class="col-md-6 mb-4">
                <div class="card p-4 h-100 shadow-sm border-top border-4 border-success">
                    <h5 class="fw-bold text-success"><i class="fas fa-file-excel"></i> 4. นำเข้ารายชื่อจาก Excel</h5>
                    <p class="text-muted small">A: ชื่อ-สกุล | B: รหัส | C: ประเภท (1,2,3) | <strong>D: โรงเรียน (ถ้ามี)</strong></p>
                    <form method="post" enctype="multipart/form-data">
                        <input type="file" name="excel_file" class="form-control mb-3" accept=".xls,.xlsx" required>
                        <div class="d-flex justify-content-between">
                            <a href="sample.xlsx" class="btn btn-sm btn-outline-secondary" download><i class="fas fa-download"></i> ไฟล์ตัวอย่าง</a>
                            <button type="submit" name="upload_excel" class="btn btn-success fw-bold"><i class="fas fa-upload"></i> อัปโหลด Excel</button>
                        </div>
                    </form>
                </div>
            </div>

            <div class="col-md-6 mb-4">
                <div class="card p-4 h-100 shadow-sm border-top border-4 border-secondary">
                    <h5 class="fw-bold text-secondary"><i class="fas fa-user-plus"></i> 5. เพิ่มรายชื่อ (กรอกเอง)</h5>
                    <form method="post">
                        <div class="mb-2">
                            <input type="text" name="manual_nm" class="form-control" placeholder="ชื่อ - นามสกุล" required>
                        </div>
                        <div class="mb-2">
                            <input type="text" name="manual_school" class="form-control" placeholder="โรงเรียน / หน่วยงาน (ถ้ามี)">
                        </div>
                        <div class="row">
                            <div class="col-6 mb-3">
                                <input type="text" name="manual_cer_id" class="form-control" placeholder="เลขที่ (เช่น 001)" required>
                            </div>
                            <div class="col-6 mb-3">
                                <select name="manual_type" class="form-select">
                                    <option value="1">ประเภท 1 (ผู้อบรม)</option>
                                    <option value="2">ประเภท 2 (คณะทำงาน)</option>
                                    <option value="3">ประเภท 3 (วิทยากร)</option>
                                </select>
                            </div>
                        </div>
                        <div class="text-end">
                            <button type="submit" name="add_manual" class="btn btn-secondary text-white fw-bold"><i class="fas fa-plus"></i> เพิ่มรายชื่อ</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

        <div class="card p-4 shadow-sm border-top border-4 border-dark">
            <?php 
                $c_q = mysqli_query($condb, "SELECT COUNT(*) as c FROM cert_names WHERE event_id='$eid'");
                $c_count = mysqli_fetch_assoc($c_q)['c'];
            ?>
            
            <div class="d-flex flex-column flex-md-row justify-content-between align-items-center mb-3">
                <h5 class="fw-bold text-dark m-0 mb-3 mb-md-0"><i class="fas fa-list-ul"></i> รายชื่อทั้งหมดในกิจกรรมนี้ (รวม <?php echo $c_count; ?> คน)</h5>
                
                <div class="input-group" style="max-width: 300px;">
                    <span class="input-group-text bg-white"><i class="fas fa-search text-muted"></i></span>
                    <input type="text" id="nameSearchBox" class="form-control" placeholder="ค้นหาจากชื่อ..." onkeyup="loadNames(1)">
                </div>
            </div>
            
            <div class="table-responsive mt-3">
                <table class="table table-bordered table-hover">
                    <thead class="table-light text-center">
                        <tr>
                            <th width="8%">ที่</th>
                            <th>ชื่อ - นามสกุล</th>
                            <th>โรงเรียน/หน่วยงาน</th>
                            <th width="15%">เลขที่เกียรติบัตร</th>
                            <th width="15%">ประเภท</th>
                            <th width="12%">จัดการ</th>
                        </tr>
                    </thead>
                    <tbody id="nameList">
                        <tr><td colspan="6" class="text-center py-5"><i class="fas fa-spinner fa-spin fa-2x text-primary"></i> <span class="d-block mt-2 text-muted">กำลังโหลดข้อมูล...</span></td></tr>
                    </tbody>
                </table>
            </div>
            
            <div id="namePagination" class="mt-3"></div>
            
        </div>
        
        <?php endif; ?>

    </div>
</div>

<div class="modal fade" id="editNameModal" tabindex="-1" aria-labelledby="editNameModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header bg-warning">
        <h5 class="modal-title fw-bold text-dark" id="editNameModalLabel"><i class="fas fa-edit"></i> แก้ไขข้อมูลรายชื่อ</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <form method="post">
          <div class="modal-body">
              <input type="hidden" name="edit_nid" id="edit_nid">
              <div class="mb-3">
                  <label class="form-label fw-bold">ชื่อ - นามสกุล</label>
                  <input type="text" name="edit_nm" id="edit_nm" class="form-control" required>
              </div>
              <div class="mb-3">
                  <label class="form-label fw-bold">โรงเรียน / หน่วยงาน</label>
                  <input type="text" name="edit_school" id="edit_school" class="form-control">
              </div>
              <div class="row">
                  <div class="col-6 mb-3">
                      <label class="form-label fw-bold">เลขที่เกียรติบัตร</label>
                      <input type="text" name="edit_cer_id" id="edit_cer_id" class="form-control" required>
                  </div>
                  <div class="col-6 mb-3">
                      <label class="form-label fw-bold">ประเภท</label>
                      <select name="edit_type" id="edit_type" class="form-select">
                          <option value="1">ประเภท 1 (ผู้อบรม)</option>
                          <option value="2">ประเภท 2 (คณะทำงาน)</option>
                          <option value="3">ประเภท 3 (วิทยากร)</option>
                      </select>
                  </div>
              </div>
          </div>
          <div class="modal-footer">
              <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">ยกเลิก</button>
              <button type="submit" name="edit_name_submit" class="btn btn-warning fw-bold text-dark"><i class="fas fa-save"></i> บันทึกการแก้ไข</button>
          </div>
      </form>
    </div>
  </div>
</div>

<script>
let nameTimeout;
function loadNames(page) {
    clearTimeout(nameTimeout);
    nameTimeout = setTimeout(() => {
        let q = document.getElementById('nameSearchBox') ? document.getElementById('nameSearchBox').value : '';
        fetch('manage_event.php?ajax_names=1&eid=<?php echo isset($_GET['eid']) ? urlencode($_GET['eid']) : ''; ?>&page=' + page + '&q=' + encodeURIComponent(q))
        .then(res => res.json())
        .then(data => {
            document.getElementById('nameList').innerHTML = data.html;
            document.getElementById('namePagination').innerHTML = data.pagination;
        });
    }, 300); 
}

<?php if($eid): ?>
document.addEventListener('DOMContentLoaded', () => loadNames(1));
<?php endif; ?>

function openEditModal(id, name, school, cer_id, type) {
    document.getElementById('edit_nid').value = id;
    document.getElementById('edit_nm').value = name;
    document.getElementById('edit_school').value = school;
    document.getElementById('edit_cer_id').value = cer_id;
    document.getElementById('edit_type').value = type;
    
    var editModal = new bootstrap.Modal(document.getElementById('editNameModal'));
    editModal.show();
}
</script>

<?php renderFooter(); ?>

Youez - 2016 - github.com/yon3zu
LinuXploit