From db1d5e038b416a6c47e972ba1be85937f7fbd1df Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Tue, 14 Oct 2025 14:25:48 +0000 Subject: [PATCH] 2.0 --- dashboard.php | 108 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 91 insertions(+), 17 deletions(-) diff --git a/dashboard.php b/dashboard.php index 19cdd08..c080b71 100644 --- a/dashboard.php +++ b/dashboard.php @@ -8,6 +8,42 @@ if (!isset($_SESSION['user_id'])) { } $userId = $_SESSION['user_id']; +$message = ''; +$message_type = ''; + +// Handle Enrollment +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['enroll_skill_id'])) { + $skillId = $_POST['enroll_skill_id']; + + // Check if already enrolled + $stmt = db()->prepare("SELECT id FROM enrollments WHERE user_id = ? AND skill_id = ?"); + $stmt->execute([$userId, $skillId]); + if ($stmt->fetch()) { + $_SESSION['message'] = "You are already enrolled in this skill."; + $_SESSION['message_type'] = 'warning'; + } else { + // Enroll user + $stmt = db()->prepare("INSERT INTO enrollments (user_id, skill_id, progress, date_enrolled) VALUES (?, ?, 0, NOW())"); + if ($stmt->execute([$userId, $skillId])) { + $_SESSION['message'] = "Enrollment successful! You can now continue learning from your dashboard."; + $_SESSION['message_type'] = 'success'; + } else { + $_SESSION['message'] = "An error occurred. Please try again."; + $_SESSION['message_type'] = 'danger'; + } + } + header("Location: dashboard.php"); + exit; +} + +if (isset($_SESSION['message'])) { + $message = $_SESSION['message']; + $message_type = $_SESSION['message_type']; + unset($_SESSION['message']); + unset($_SESSION['message_type']); +} + + $stmt = db()->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$userId]); $user = $stmt->fetch(PDO::FETCH_ASSOC); @@ -18,11 +54,29 @@ if (!$user) { exit; } -// Fetch all skills +// Fetch all skills, excluding those the user is already enrolled in for the explorer +$enrolled_skill_ids = []; +$stmt_enrolled_ids = db()->prepare("SELECT skill_id FROM enrollments WHERE user_id = ?"); +$stmt_enrolled_ids->execute([$userId]); +$enrolled_skill_ids = $stmt_enrolled_ids->fetchAll(PDO::FETCH_COLUMN); + $skills_by_category = []; -$stmt = db()->query("SELECT * FROM skills ORDER BY category, title"); +$sql = "SELECT * FROM skills"; +if (!empty($enrolled_skill_ids)) { + $placeholders = implode(',', array_fill(0, count($enrolled_skill_ids), '?')); + $sql .= " WHERE id NOT IN ($placeholders)"; +} +$sql .= " ORDER BY category, title"; + +$stmt = db()->prepare($sql); +if (!empty($enrolled_skill_ids)) { + $stmt->execute($enrolled_skill_ids); +} else { + $stmt->execute(); +} $all_skills = $stmt->fetchAll(PDO::FETCH_ASSOC); + foreach ($all_skills as $skill) { $skills_by_category[$skill['category']][] = $skill; } @@ -83,6 +137,13 @@ $enrolled_skills = $stmt->fetchAll(PDO::FETCH_ASSOC);

Welcome, !

+ + + +
@@ -132,23 +193,36 @@ $enrolled_skills = $stmt->fetchAll(PDO::FETCH_ASSOC);

Skill Explorer

- $skills): ?> -

-
- -
-
- <?php echo htmlspecialchars($skill['title']); ?> -
-
-

- Enroll + +
+
+
+

You've enrolled in all available skills. Great job!

+
+
+
+ + $skills): ?> +

+
+ +
+
+ <?php echo htmlspecialchars($skill['title']); ?> +
+
+

+
+ + +
+
-
- -
- + +
+ +