File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/views/admin/announcements/index.php
Back
<div class="cargoo-card"> <div class="cargoo-card-header d-flex flex-column flex-sm-row justify-content-between align-items-sm-center gap-3"> <div> <h5 class="mb-1 fw-bold"><i class="bi bi-megaphone-fill text-primary me-2"></i>จัดการประกาศ Marketplace (Announcements)</h5> <p class="text-muted small mb-0">ควบคุมประกาศและแจ้งเตือนสำหรับผู้ซื้อ ผู้ขาย และผู้ใช้ทุกคนบนแพลตฟอร์ม</p> </div> <a href="<?= url('/admin/announcements/create') ?>" class="btn btn-cargoo-primary btn-sm px-3 py-2"> <i class="bi bi-plus-lg me-1"></i> สร้างประกาศใหม่ </a> </div> <!-- Filter Toolbar --> <div class="p-3 border-bottom bg-light"> <form action="<?= url('/admin/announcements') ?>" method="GET" class="row g-2 align-items-center"> <div class="col-md-3"> <div class="input-group input-group-sm"> <span class="input-group-text bg-white"><i class="bi bi-search text-muted"></i></span> <input type="text" name="q" class="form-control" placeholder="ค้นหาประกาศ..." value="<?= e($filters['q'] ?? '') ?>"> </div> </div> <div class="col-md-2 col-sm-6"> <select name="target_audience" class="form-select form-select-sm"> <option value="all">ทุกกลุ่มเป้าหมาย</option> <option value="customer" <?= ($filters['target_audience'] ?? '') === 'customer' ? 'selected' : '' ?>>ผู้ซื้อ (Customer)</option> <option value="seller" <?= ($filters['target_audience'] ?? '') === 'seller' ? 'selected' : '' ?>>ผู้ขาย (Seller)</option> </select> </div> <div class="col-md-2 col-sm-6"> <select name="display_location" class="form-select form-select-sm"> <option value="all">ทุกตำแหน่ง</option> <option value="global_top_bar" <?= ($filters['display_location'] ?? '') === 'global_top_bar' ? 'selected' : '' ?>>Global Top Bar</option> <option value="homepage" <?= ($filters['display_location'] ?? '') === 'homepage' ? 'selected' : '' ?>>Homepage</option> <option value="user_dashboard" <?= ($filters['display_location'] ?? '') === 'user_dashboard' ? 'selected' : '' ?>>User Dashboard</option> <option value="seller_dashboard" <?= ($filters['display_location'] ?? '') === 'seller_dashboard' ? 'selected' : '' ?>>Seller Dashboard</option> <option value="product_page" <?= ($filters['display_location'] ?? '') === 'product_page' ? 'selected' : '' ?>>Product Page</option> </select> </div> <div class="col-md-2 col-sm-6"> <select name="status" class="form-select form-select-sm"> <option value="all">ทุกสถานะ</option> <option value="active" <?= ($filters['status'] ?? '') === 'active' ? 'selected' : '' ?>>เผยแพร่อยู่ (Active)</option> <option value="scheduled" <?= ($filters['status'] ?? '') === 'scheduled' ? 'selected' : '' ?>>ตามกำหนดเวลา (Scheduled)</option> <option value="draft" <?= ($filters['status'] ?? '') === 'draft' ? 'selected' : '' ?>>แบบร่าง (Draft)</option> <option value="disabled" <?= ($filters['status'] ?? '') === 'disabled' ? 'selected' : '' ?>>หยุดชั่วคราว (Paused)</option> </select> </div> <div class="col-md-3 d-flex gap-2"> <button type="submit" class="btn btn-cargoo-primary btn-sm flex-grow-1"> <i class="bi bi-funnel me-1"></i> กรอง </button> <a href="<?= url('/admin/announcements') ?>" class="btn btn-outline-secondary btn-sm">ล้าง</a> </div> </form> </div> <!-- Announcements Table --> <div class="cargoo-card-body p-0"> <?php if (empty($announcements)): ?> <div class="text-center py-5"> <i class="bi bi-megaphone text-muted" style="font-size: 3rem;"></i> <h6 class="mt-3 text-dark fw-bold">ไม่พบรายการประกาศ</h6> <p class="text-muted small">สร้างประกาศแรกของคุณเพื่อแจ้งข่าวสารให้ผู้ใช้งานทราบ</p> <a href="<?= url('/admin/announcements/create') ?>" class="btn btn-cargoo-primary btn-sm px-4 py-2 mt-2"> <i class="bi bi-plus-lg me-1"></i> สร้างประกาศใหม่ </a> </div> <?php else: ?> <div class="table-responsive"> <table class="table align-middle mb-0"> <thead class="table-light small"> <tr> <th class="ps-3">หัวข้อประกาศ</th> <th>กลุ่มเป้าหมาย</th> <th>ตำแหน่งแสดงผล</th> <th>ระดับความสำคัญ</th> <th>ช่วงเวลาแสดงผล</th> <th class="text-center">สถิติ (View/Click)</th> <th class="text-center">สถานะ</th> <th class="text-end pe-3" style="width: 170px;">จัดการ</th> </tr> </thead> <tbody> <?php foreach ($announcements as $ann): ?> <tr> <td class="ps-3"> <h6 class="fw-bold text-dark mb-1 small text-truncate" style="max-width: 250px;"> <?= e($ann['title']) ?> </h6> <small class="text-muted text-truncate-2 d-block" style="max-width: 250px; font-size: 0.75rem;"> <?= e($ann['content']) ?> </small> </td> <td class="small"> <?php if ($ann['target_audience'] === 'customer'): ?> <span class="badge bg-info-subtle text-info-emphasis border border-info-subtle">Customer</span> <?php elseif ($ann['target_audience'] === 'seller'): ?> <span class="badge bg-warning-subtle text-warning-emphasis border border-warning-subtle">Seller</span> <?php else: ?> <span class="badge bg-secondary-subtle text-secondary border border-secondary-subtle">Everyone</span> <?php endif; ?> </td> <td class="small text-muted"> <code><?= e($ann['display_location']) ?></code> </td> <td class="small"> <?php if ($ann['priority'] === 'critical'): ?> <span class="badge bg-danger">Critical</span> <?php elseif ($ann['priority'] === 'important'): ?> <span class="badge bg-warning text-dark">Important</span> <?php else: ?> <span class="badge bg-light text-muted border">Normal</span> <?php endif; ?> </td> <td class="small text-muted" style="font-size: 0.75rem;"> <div><i class="bi bi-play me-1"></i><?= $ann['start_at'] ? date('d/m/Y H:i', strtotime($ann['start_at'])) : 'ทันที' ?></div> <div><i class="bi bi-stop me-1"></i><?= $ann['end_at'] ? date('d/m/Y H:i', strtotime($ann['end_at'])) : 'ไม่จำกัด' ?></div> </td> <td class="text-center small"> <span class="text-dark fw-semibold"><?= number_format((int)$ann['view_count']) ?></span> / <span class="text-primary fw-semibold"><?= number_format((int)$ann['click_count']) ?></span> </td> <td class="text-center small"> <?php if ($ann['status'] === 'active'): ?> <span class="badge bg-success-subtle text-success border border-success-subtle px-2 py-1">Active</span> <?php elseif ($ann['status'] === 'scheduled'): ?> <span class="badge bg-primary-subtle text-primary border border-primary-subtle px-2 py-1">Scheduled</span> <?php elseif ($ann['status'] === 'draft'): ?> <span class="badge bg-secondary-subtle text-secondary border border-secondary-subtle px-2 py-1">Draft</span> <?php else: ?> <span class="badge bg-dark-subtle text-dark border px-2 py-1">Paused</span> <?php endif; ?> </td> <td class="text-end pe-3"> <div class="d-flex justify-content-end gap-1"> <!-- Toggle Publish / Pause --> <form action="<?= url('/admin/announcements/' . $ann['id'] . '/toggle-status') ?>" method="POST" class="d-inline"> <?= Security::csrfField() ?> <button type="submit" class="btn btn-sm <?= $ann['status'] === 'active' ? 'btn-outline-warning' : 'btn-outline-success' ?>" title="<?= $ann['status'] === 'active' ? 'หยุดประกาศชั่วคราว' : 'เผยแพร่ประกาศ' ?>"> <i class="bi <?= $ann['status'] === 'active' ? 'bi-pause-fill' : 'bi-play-fill' ?>"></i> </button> </form> <!-- Edit --> <a href="<?= url('/admin/announcements/' . $ann['id'] . '/edit') ?>" class="btn btn-outline-primary btn-sm" title="แก้ไขประกาศ"> <i class="bi bi-pencil"></i> </a> <!-- History --> <a href="<?= url('/admin/announcements/' . $ann['id'] . '/history') ?>" class="btn btn-outline-secondary btn-sm" title="ประวัติการแก้ไข"> <i class="bi bi-clock-history"></i> </a> <!-- Delete --> <form action="<?= url('/admin/announcements/' . $ann['id'] . '/delete') ?>" method="POST" class="d-inline" onsubmit="return confirm('คุณต้องการลบประกาศนี้ใช่หรือไม่?');"> <?= Security::csrfField() ?> <button type="submit" class="btn btn-outline-danger btn-sm" title="ลบประกาศ"> <i class="bi bi-trash"></i> </button> </form> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> <!-- Pagination --> <?php if ($pages > 1): ?> <nav aria-label="Announcement pagination" class="d-flex justify-content-center p-3 border-top"> <ul class="pagination pagination-sm mb-0"> <?php for ($i = 1; $i <= $pages; $i++): ?> <?php $queryParams = array_merge($filters, ['page' => $i]); $pageUrl = url('/admin/announcements?' . http_build_query($queryParams)); ?> <li class="page-item <?= $i === $page ? 'active' : '' ?>"> <a class="page-link" href="<?= $pageUrl ?>"><?= $i ?></a> </li> <?php endfor; ?> </ul> </nav> <?php endif; ?> <?php endif; ?> </div> </div>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings