prepare('INSERT INTO subjects (name, description, status) VALUES (?, ?, ?)');
$stmt->execute([$name, $description, $status]);
set_flash('success', 'تمت إضافة المادة بنجاح.');
} else {
set_flash('error', 'اسم المادة مطلوب.');
}
header('Location: subjects.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 subjects SET name = ?, description = ?, status = ? WHERE id = ?');
$stmt->execute([$name, $description, $status, $id]);
set_flash('success', 'تم تحديث المادة بنجاح.');
} else {
set_flash('error', 'تأكد من إدخال اسم المادة.');
}
header('Location: subjects.php');
exit;
}
if ($action === 'delete') {
$id = (int)($_POST['id'] ?? 0);
if ($id > 0) {
$stmt = db()->prepare('DELETE FROM subjects WHERE id = ?');
$stmt->execute([$id]);
set_flash('success', 'تم حذف المادة بنجاح.');
}
header('Location: subjects.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 subjects';
$countQuery = 'SELECT COUNT(*) FROM subjects';
$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);
$subjects = $stmt->fetchAll();
$flash = consume_flash();
render_page_start('المواد الدراسية', 'subjects', 'إدارة المواد الدراسية الخاصة بالمراكز');
render_flash($flash);
?>