prepare('INSERT INTO assessment_categories (name, description, status) VALUES (?, ?, ?)');
$stmt->execute([$name, $description, $status]);
set_flash('success', 'تمت إضافة الفئة بنجاح.');
} else {
set_flash('error', 'اسم الفئة مطلوب.');
}
header('Location: assessment_categories.php');
exit;
}
if ($action === 'edit') {
$id = (int)($_POST['id'] ?? 0);
$name = clean_text($_POST['name'] ?? '', 255);
$description = clean_text($_POST['description'] ?? '', 1000);
$status = in_array($_POST['status'] ?? '', ['enabled', 'disabled']) ? $_POST['status'] : 'enabled';
if ($id > 0 && $name !== '') {
$stmt = db()->prepare('UPDATE assessment_categories SET name = ?, description = ?, status = ? WHERE id = ?');
$stmt->execute([$name, $description, $status, $id]);
set_flash('success', 'تم تحديث الفئة بنجاح.');
} else {
set_flash('error', 'تأكد من إدخال اسم الفئة.');
}
header('Location: assessment_categories.php');
exit;
}
if ($action === 'delete') {
$id = (int)($_POST['id'] ?? 0);
if ($id > 0) {
$stmt = db()->prepare('DELETE FROM assessment_categories WHERE id = ?');
$stmt->execute([$id]);
set_flash('success', 'تم حذف الفئة بنجاح.');
}
header('Location: assessment_categories.php');
exit;
}
}
// Read list
$search = clean_text($_GET['search'] ?? '', 255);
$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT) ?: 1;
$limit = 10;
$offset = ($page - 1) * $limit;
$query = 'SELECT * FROM assessment_categories';
$countQuery = 'SELECT COUNT(*) FROM assessment_categories';
$params = [];
if ($search !== '') {
$where = ' WHERE name LIKE ? OR description LIKE ?';
$query .= $where;
$countQuery .= $where;
$params[] = "%$search%";
$params[] = "%$search%";
}
$stmtCount = db()->prepare($countQuery);
$stmtCount->execute($params);
$totalItems = (int)$stmtCount->fetchColumn();
$query .= ' ORDER BY id DESC LIMIT ' . $limit . ' OFFSET ' . $offset;
$stmt = db()->prepare($query);
$stmt->execute($params);
$assessment_categories = $stmt->fetchAll();
$flash = consume_flash();
render_page_start('فئات التقييم', 'assessment_categories', 'إدارة فئات التقييم الخاصة بالمراكز');
render_flash($flash);
?>