File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/views/admin/users/index.php
Back
<?php $statusOpts = ['all'=>'ทั้งหมด','active'=>'ปกติ','suspended'=>'ระงับ','deleted'=>'ลบบัญชีแล้ว']; $roleOpts = ['all'=>'ทุก Role','customer'=>'Customer','seller'=>'Seller','admin'=>'Admin']; require_once __DIR__ . '/../../../app/Models/DeleteAccountRequest.php'; $pendingDelCount = (new DeleteAccountRequest())->countPending(); ?> <div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center gap-2 mb-3"> <div> <h4 class="fw-bold mb-1 text-dark">จัดการผู้ใช้งาน (User Management)</h4> <p class="text-muted small mb-0">ค้นหา ตรวจสอบข้อมูล และจัดการสถานะผู้ใช้งานทั้งหมดในระบบ</p> </div> <div class="d-flex gap-2"> <a href="<?= url('/admin/users/deletion-requests') ?>" class="btn btn-outline-danger btn-sm py-1 px-3 position-relative"> <i class="bi bi-person-x me-1"></i>คำขอลบบัญชี <?php if ($pendingDelCount > 0): ?> <span class="badge bg-danger rounded-pill ms-1"><?= $pendingDelCount ?></span> <?php endif; ?> </a> </div> </div> <!-- ── Filter Bar ──────────────────────────────────────── --> <div class="admin-filter-bar mb-3"> <form method="GET" class="row g-2 align-items-end"> <div class="col-md-5"> <label class="form-label small fw-semibold text-muted mb-1">ค้นหาผู้ใช้</label> <div class="input-group input-group-sm"> <span class="input-group-text bg-light"><i class="bi bi-search text-muted"></i></span> <input type="text" name="q" value="<?= e($filters['q'] ?? '') ?>" class="form-control" placeholder="ชื่อ, นามสกุล, username, email, เบอร์โทร..."> </div> </div> <div class="col-6 col-md-3"> <label class="form-label small fw-semibold text-muted mb-1">สถานะบัญชี</label> <select name="status" class="form-select form-select-sm"> <?php foreach ($statusOpts as $v => $l): ?> <option value="<?= $v ?>" <?= ($filters['status'] ?? '') === $v ? 'selected' : '' ?>><?= $l ?></option> <?php endforeach; ?> </select> </div> <div class="col-6 col-md-2"> <label class="form-label small fw-semibold text-muted mb-1">สิทธิ์ (Role)</label> <select name="role" class="form-select form-select-sm"> <?php foreach ($roleOpts as $v => $l): ?> <option value="<?= $v ?>" <?= ($filters['role'] ?? '') === $v ? 'selected' : '' ?>><?= $l ?></option> <?php endforeach; ?> </select> </div> <div class="col-12 col-md-2 d-flex gap-2"> <button type="submit" class="btn btn-primary btn-sm w-100"><i class="bi bi-funnel me-1"></i>กรอง</button> <?php if (!empty($filters['q']) || ($filters['status'] ?? 'all') !== 'all' || ($filters['role'] ?? 'all') !== 'all'): ?> <a href="<?= url('/admin/users') ?>" class="btn btn-outline-secondary btn-sm" title="ล้างการกรอง"><i class="bi bi-x-lg"></i></a> <?php endif; ?> </div> </form> </div> <!-- ── Desktop & Tablet Table Container ────────────────── --> <div class="admin-table-container"> <div class="admin-table-header"> <div class="d-flex align-items-center gap-2"> <i class="bi bi-people text-primary"></i> <span class="fw-bold text-dark" style="font-size: 0.9rem;">รายชื่อผู้ใช้งานในระบบ</span> <span class="badge bg-light text-muted border ms-1"><?= number_format($total ?? 0) ?> รายการ</span> </div> </div> <div class="table-responsive d-none d-md-block"> <table class="admin-table"> <thead> <tr> <th>ผู้ใช้งาน</th> <th>อีเมล / เบอร์ติดต่อ</th> <th>Roles</th> <th>สถานะ</th> <th>สมัครเมื่อ</th> <th>Login ล่าสุด</th> <th class="text-end">การจัดการ</th> </tr> </thead> <tbody> <?php if (empty($users)): ?> <tr> <td colspan="7" class="text-center text-muted py-4">ไม่พบข้อมูลผู้ใช้งานตามเงื่อนไขที่ค้นหา</td> </tr> <?php else: foreach ($users as $u): ?> <tr> <td> <div class="d-flex align-items-center gap-2"> <div class="rounded-circle bg-primary bg-opacity-10 text-primary d-flex align-items-center justify-content-center fw-bold" style="width: 32px; height: 32px; font-size: 0.8rem;"> <?= strtoupper(mb_substr($u['first_name'] ?? 'U', 0, 1)) ?> </div> <div> <div class="fw-semibold text-dark"><?= e($u['first_name'] . ' ' . $u['last_name']) ?></div> <div class="text-muted small">@<?= e($u['username']) ?></div> </div> </div> </td> <td> <div class="small"><?= e($u['email']) ?></div> <div class="text-muted small"><?= e($u['phone'] ?? '-') ?></div> </td> <td> <?php foreach (explode(',', $u['roles'] ?? '') as $r): if ($r): ?> <span class="badge bg-light border text-dark me-1" style="font-size: 0.68rem;"><?= e($r) ?></span> <?php endif; endforeach; ?> </td> <td> <?php if ($u['status'] === 'active'): ?> <span class="status-pill status-active">ปกติ</span> <?php elseif ($u['status'] === 'suspended'): ?> <span class="status-pill status-suspended">ระงับ</span> <?php else: ?> <span class="status-pill status-secondary"><?= e($u['status']) ?></span> <?php endif; ?> </td> <td class="text-muted small"><?= date('d/m/Y', strtotime($u['created_at'])) ?></td> <td class="text-muted small"><?= $u['last_login_at'] ? date('d/m/Y H:i', strtotime($u['last_login_at'])) : '—' ?></td> <td class="text-end"> <a href="<?= url('/admin/users/' . (int)$u['id']) ?>" class="btn btn-outline-primary btn-sm py-1 px-2" style="font-size: 0.75rem;"> <i class="bi bi-search me-1"></i>ดูข้อมูล </a> </td> </tr> <?php endforeach; endif; ?> </tbody> </table> </div> <!-- Mobile Card List View --> <div class="d-md-none p-3"> <?php if (empty($users)): ?> <div class="text-center text-muted py-3 small">ไม่พบข้อมูลผู้ใช้งาน</div> <?php else: foreach ($users as $u): ?> <div class="admin-mobile-card"> <div class="d-flex justify-content-between align-items-start mb-2"> <div> <div class="fw-bold text-dark"><?= e($u['first_name'] . ' ' . $u['last_name']) ?></div> <div class="text-muted small">@<?= e($u['username']) ?> • <?= e($u['email']) ?></div> </div> <?php if ($u['status'] === 'active'): ?> <span class="status-pill status-active">ปกติ</span> <?php elseif ($u['status'] === 'suspended'): ?> <span class="status-pill status-suspended">ระงับ</span> <?php endif; ?> </div> <div class="d-flex justify-content-between align-items-center pt-2 border-top"> <span class="text-muted small">สมัคร: <?= date('d/m/Y', strtotime($u['created_at'])) ?></span> <a href="<?= url('/admin/users/' . (int)$u['id']) ?>" class="btn btn-outline-primary btn-sm py-1 px-2" style="font-size: 0.75rem;"> ดูข้อมูล → </a> </div> </div> <?php endforeach; endif; ?> </div> <!-- Pagination --> <?php if (($total_pages ?? 1) > 1): ?> <div class="p-3 border-top d-flex justify-content-center"> <nav> <ul class="pagination pagination-sm mb-0"> <?php for ($i = 1; $i <= $total_pages; $i++): ?> <li class="page-item <?= $i === $page ? 'active' : '' ?>"> <a class="page-link" href="?<?= http_build_query(array_merge($filters, ['page' => $i])) ?>"><?= $i ?></a> </li> <?php endfor; ?> </ul> </nav> </div> <?php endif; ?> </div>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings