Files

10 lines
2.6 KiB
PHP

<?php
require __DIR__ . '/bootstrap.php'; require_admin();
$q=substr(trim($_GET['q']??''),0,100); $category=(int)($_GET['kat']??0); $where=' WHERE 1=1'; $params=[]; $types='';
if($q!=='') { $where.=' AND s.soal LIKE ?'; $params[]='%'.$q.'%'; $types.='s'; }
if(isset(CATEGORIES[$category])) { $where.=' AND s.kat=?'; $params[]=$category; $types.='i'; }
$total=(int)one('SELECT COUNT(*) n FROM in_soal s'.$where,$types,$params)['n']; $pages=max(1,(int)ceil($total/20)); $page=max(1,min($pages,(int)($_GET['page']??1)));
$questions=rows('SELECT s.*, (SELECT COUNT(*) FROM in_jawab j WHERE j.isoal=s.id) used FROM in_soal s'.$where.' ORDER BY s.kat,s.id LIMIT 20 OFFSET '.(($page-1)*20),$types,$params);
page_start('Bank Soal Psikotest','questions');
?><section class="card"><div class="card-heading"><div><h2>Kelola bank soal <span class="count"><?=$total?></span></h2><p>Lima kategori untuk mengeksplorasi potensi peserta.</p></div><a class="button" href="question-edit.php">+ Tambah soal</a></div><form class="filters"><input aria-label="Cari soal" name="q" value="<?=e($q)?>" placeholder="Cari isi soal…"><select aria-label="Kategori soal" name="kat"><option value="0">Semua kategori</option><?php foreach(CATEGORIES as $k=>$v): ?><option value="<?=$k?>" <?=$category===$k?'selected':''?>><?=e($v)?></option><?php endforeach; ?></select><button class="button secondary">Terapkan</button></form><div class="table-wrap"><table><thead><tr><th>ID</th><th>Soal</th><th>Kategori</th><th>Kunci / Pilihan R</th><th>Riwayat</th><th></th></tr></thead><tbody><?php foreach($questions as $s): ?><tr><td class="muted">#<?=(int)$s['id']?></td><td class="question-text"><?=nl2br(e($s['soal']))?></td><td><span class="badge"><?=e(CATEGORIES[(int)$s['kat']]??'Lainnya')?></span></td><td class="question-text"><?=e((int)$s['kat']===5?$s['soal1']:$s['kunci'])?></td><td><?=(int)$s['used']?> jawaban</td><td><a class="text-link" href="question-edit.php?id=<?=(int)$s['id']?>"><?=$s['used']?'Lihat':'Edit'?> →</a></td></tr><?php endforeach; if(!$questions): ?><tr><td colspan="6" class="empty">Tidak ada soal yang sesuai pencarian.</td></tr><?php endif; ?></tbody></table></div><div class="pagination"><span><?=$total?> soal · Halaman <?=$page?> dari <?=$pages?></span><div><?php if($page>1): ?><a class="button secondary compact" href="?<?=e(http_build_query(['q'=>$q,'kat'=>$category,'page'=>$page-1]))?>">← Sebelumnya</a><?php endif; ?><?php if($page<$pages): ?><a class="button secondary compact" href="?<?=e(http_build_query(['q'=>$q,'kat'=>$category,'page'=>$page+1]))?>">Selanjutnya →</a><?php endif; ?></div></div></section><?php page_end(); ?>