From e474bc531589754902982532a1ab03d407c23821 Mon Sep 17 00:00:00 2001 From: imadhigp Date: Tue, 25 Aug 2026 10:19:12 +0530 Subject: [PATCH] module set 2 --- app/Http/Controllers/MyCoursesController.php | 100 +++++++++------- resources/views/mycourse.blade.php | 118 +++++++++---------- 2 files changed, 114 insertions(+), 104 deletions(-) diff --git a/app/Http/Controllers/MyCoursesController.php b/app/Http/Controllers/MyCoursesController.php index fbbd4b0..a5c04db 100644 --- a/app/Http/Controllers/MyCoursesController.php +++ b/app/Http/Controllers/MyCoursesController.php @@ -5,61 +5,73 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Session; +use Illuminate\Support\Collection; +use App\Models\courses; +use App\Models\Module; +use App\Models\StudentDetail; +use App\Models\CourseAssignStudent; + class MyCoursesController extends Controller { public function showMyCourses() - { - - $userId = session('student_portal_log_id') - ?? session('student_id') - ?? session('id') - ?? Auth::id(); +{ + $userId = session('student_portal_log_id') + ?? session('student_id') + ?? session('id') + ?? Auth::id(); - - $student = DB::table('student_details') - ->where('student_portal_log_id', $userId) - ->orWhere('id', $userId) - ->orWhere('student_id', $userId) - ->first(); + $student = DB::table('student_details') + ->where('student_portal_log_id', $userId) + ->orWhere('id', $userId) + ->orWhere('student_id', $userId) + ->first(); - - if (!$student) { - return view('mycourse', [ - 'courses' => collect([]), - 'student' => null - ]); - } - - - $courses = DB::table('courses') - ->join('course_assign_student', 'courses.id', '=', 'course_assign_student.course_id') - ->whereIn('course_assign_student.student_id', [ - $student->id, - $student->student_id, - $student->student_portal_log_id - ]) - ->select('courses.*', 'course_assign_student.assigned_at') - ->distinct() - ->get(); - - return view('mycourse', compact('courses', 'student')); + if (!$student) { + return view('mycourse', [ + 'courses' => collect([]), + 'student' => null + ]); } + // DB::table භාවිතයෙන් SQL join එක නිවැරදිව සිදු කිරීම + $courses = DB::table('courses') + ->join('course_assign_student', 'courses.id', '=', 'course_assign_student.course_id') + ->leftJoin('modules', 'courses.id', '=', 'modules.course_id') // <-- මේ පේළිය එකතු කරන ලදී + ->whereIn('course_assign_student.student_id', array_filter([ + $student->id ?? null, + $student->student_id ?? null, + $student->student_portal_log_id ?? null + ])) + ->select( + 'courses.id as course_id', + 'courses.title as course_title', + 'courses.course_code', + 'modules.id as module_id', + 'modules.title as module_title', + 'modules.description as module_description', + 'modules.semester' + ) + ->get() + ->groupBy('course_id'); - public function showModule($course_id) - { - $course = DB::table('courses')->where('id', $course_id)->first(); + return view('mycourse', compact('courses', 'student')); +} - if (!$course) { - abort(404, 'Course not found'); - } + // public function showModule($course_id) + // { + // $course = DB::table('courses')->where('id', $course_id)->first(); - $modules = DB::table('modules') - ->where('course_id', $course_id) - ->get(); + // if (!$course) { + // abort(404, 'Course not found'); + // } - return view('module', compact('course', 'modules')); - } + // $modules = DB::table('modules') + // ->where('course_id', $course_id) + // ->get(); + + // return view('module', compact('course', 'modules')); + // } } \ No newline at end of file diff --git a/resources/views/mycourse.blade.php b/resources/views/mycourse.blade.php index d8403d5..d218402 100644 --- a/resources/views/mycourse.blade.php +++ b/resources/views/mycourse.blade.php @@ -1,6 +1,6 @@ @extends('layouts.studentportalnav') -@section('title', 'Course Modules') +@section('title', 'My Courses & Modules') @section('content') @@ -8,40 +8,29 @@ :root { --theme-navy: #2D355B; --theme-red: #822424; - --theme-red-hover: #df2c3e; --bg-light: #F6F6F6; --white: #ffffff; } - body { background: var(--bg-light); font-family: 'Segoe UI', sans-serif; } - -.module-header { +.course-header { background: linear-gradient(135deg, #2B293F 0%, #94A6F959 100%); color: var(--white); - border-radius: 16px; - padding: 30px; - margin-bottom: 25px; + border-radius: 12px; + padding: 20px; + margin-bottom: 15px; border-left: 5px solid var(--theme-red); } - .module-card { border: 1px solid #e2e8f0; - border-radius: 12px; + border-radius: 10px; background: var(--white); - box-shadow: 0 4px 10px rgba(0,0,0,0.04); transition: all 0.3s ease; } - -.module-card:hover { - transform: translateY(-2px); - border-color: var(--theme-navy); -} - .semester-badge { background-color: var(--theme-navy); color: #fff; - font-size: 12px; - padding: 5px 12px; + font-size: 11px; + padding: 4px 10px; border-radius: 20px; } @@ -49,56 +38,65 @@ body { background: var(--bg-light); font-family: 'Segoe UI', sans-serif; }
- - - Back to My Courses - +

My Assigned Courses

- -
-

{{ $course->title ?? $course->name ?? 'Course Modules' }}

-

{{ $course->course_code ?? '' }} {{ isset($course->desc) ? '| '.$course->desc : '' }}

-
+ @if(count($courses) > 0) + @foreach($courses as $courseId => $courseItems) + @php + $firstItem = $courseItems->first(); + @endphp -

Modules List

+ +
+

{{ $firstItem->course_title }}

+

{{ $firstItem->course_code }}

+
- @if(isset($modules) && count($modules) > 0) -
- @foreach($modules as $index => $module) -
-
-
-
- @if(!empty($module->semester)) - - Semester {{ $module->semester }} - - @endif - -
- Module {{ $index + 1 }}: {{ $module->title }} -
+ +
Modules
+ +
+ @foreach($courseItems as $index => $module) + @if($module->module_id) +
+
+
+
+ @if(!empty($module->semester)) + + Semester {{ $module->semester }} + + @endif + +
+ Module {{ $index + 1 }}: {{ $module->module_title }} +
-

- {{ $module->description ?? 'No description provided.' }} -

-
-
- - View Content - +

+ {{ $module->module_description ?? 'No description provided.' }} +

+
+ +
-
-
- @endforeach -
+ @else +
+
No modules found for this course.
+
+ @endif + @endforeach +
+ @endforeach @else -
-
No Modules Found
-

There are no modules found for this course.

+
No Courses Assigned
+

There are no courses currently assigned to your profile.

@endif