diff --git a/app/Http/Controllers/Backend/Courses/CourseController.php b/app/Http/Controllers/Backend/Courses/CourseController.php index 007e363..c4eb8e0 100644 --- a/app/Http/Controllers/Backend/Courses/CourseController.php +++ b/app/Http/Controllers/Backend/Courses/CourseController.php @@ -7,7 +7,7 @@ use Illuminate\Http\Request; use App\Http\Requests\Backend\Course\Courses\AddNewRequest; use App\Http\Requests\Backend\Course\Courses\UpdateRequest; -use App\Models\CourseCategory; +use App\Models\CourseCategory; use App\Models\Instructor; use Exception; use File; @@ -23,6 +23,12 @@ public function index() return view('backend.course.courses.index', compact('course')); } + public function frontIndex() + { + $course = Course::paginate(10); + return view('frontend.searchCourse', compact('course')); + } + /** * Show the form for creating a new resource. */ @@ -47,14 +53,18 @@ public function store(AddNewRequest $request) $course->category_id = $request->categoryId; $course->instructor_id = $request->instructorId; $course->type = $request->courseType; - $course->price = $request->coursePrice; + $course->price = $request->coursePrice; + $course->old_price = $request->courseOldPrice; $course->subscription_price = $request->subscriptionPrice; $course->start_from = $request->start_from; $course->duration = $request->duration; + $course->lesson = $request->lesson; + $course->review_id = $request->reviewId; $course->difficulty = $request->courseDifficulty; $course->course_code = $request->course_code; $course->prerequisites_en = $request->prerequisites_en; $course->prerequisites_bn = $request->prerequisites_bn; + $course->thumbnail_video = $request->thumbnail_video; $course->status = $request->status; $course->language = 'en'; @@ -63,6 +73,11 @@ public function store(AddNewRequest $request) $request->image->move(public_path('uploads/courses'), $imageName); $course->image = $imageName; } + if ($request->hasFile('thumbnail_image')) { + $thumbnailImageName = rand(111, 999) . time() . '.' . $request->thumbnail_image->extension(); + $request->thumbnail_image->move(public_path('uploads/courses/thumbnails'), $thumbnailImageName); + $course->thumbnail_image = $thumbnailImageName; + } if ($course->save()) return redirect()->route('course.index')->with('success', 'Data Saved'); else @@ -76,11 +91,19 @@ public function store(AddNewRequest $request) /** * Display the specified resource. */ - public function show(Course $course) + public function show($id) { - // + // } + public function frontShow($id) + { + $course = Course::findOrFail(encryptor('decrypt', $id)); + // dd($course); + return view('frontend.courseDetails', compact('course')); + } + + /** * Show the form for editing the specified resource. */ @@ -107,9 +130,11 @@ public function update(UpdateRequest $request, $id) $course->instructor_id = $request->instructorId; $course->type = $request->courseType; $course->price = $request->coursePrice; + $course->old_price = $request->courseOldPrice; $course->subscription_price = $request->subscriptionPrice; $course->start_from = $request->start_from; $course->duration = $request->duration; + $course->lesson = $request->lesson; $course->difficulty = $request->courseDifficulty; $course->course_code = $request->course_code; $course->prerequisites_en = $request->prerequisites_en; @@ -122,6 +147,11 @@ public function update(UpdateRequest $request, $id) $request->image->move(public_path('uploads/courses'), $imageName); $course->image = $imageName; } + if ($request->hasFile('thumbnail_image')) { + $thumbnailImageName = rand(111, 999) . time() . '.' . $request->thumbnail_image->extension(); + $request->thumbnail_image->move(public_path('uploads/courses/thumbnails'), $thumbnailImageName); + $course->thumbnail_image = $thumbnailImageName; + } if ($course->save()) return redirect()->route('course.index')->with('success', 'Data Saved'); else diff --git a/database/migrations/2023_11_26_034558_create_courses_table.php b/database/migrations/2023_11_26_034558_create_courses_table.php index f3d6e4c..9219a70 100644 --- a/database/migrations/2023_11_26_034558_create_courses_table.php +++ b/database/migrations/2023_11_26_034558_create_courses_table.php @@ -21,14 +21,18 @@ public function up(): void $table->unsignedBigInteger('instructor_id')->index(); $table->enum('type', ['free', 'paid', 'subscription'])->default('paid'); $table->decimal('price', 10, 2)->default(0.00)->nullable(); + $table->decimal('old_price', 10, 2)->nullable(); $table->decimal('subscription_price', 10, 2)->nullable(); $table->timestamp('start_from')->nullable(); $table->integer('duration')->nullable(); + $table->integer('lesson')->nullable(); $table->text('prerequisites_en')->nullable(); $table->text('prerequisites_bn')->nullable(); $table->enum('difficulty', ['beginner', 'intermediate', 'advanced'])->nullable(); $table->string('course_code')->nullable(); $table->string('image')->nullable(); + $table->string('thumbnail_image')->nullable(); + $table->string('thumbnail_video')->nullable(); $table->boolean('status')->default(1)->comment('1 active, 0 inactive'); $table->string('language')->default('en'); $table->timestamps(); diff --git a/public/uploads/courses/thumbnails/2061701588065.png b/public/uploads/courses/thumbnails/2061701588065.png new file mode 100644 index 0000000..84fa104 Binary files /dev/null and b/public/uploads/courses/thumbnails/2061701588065.png differ diff --git a/public/uploads/courses/thumbnails/2481701588826.jpg b/public/uploads/courses/thumbnails/2481701588826.jpg new file mode 100644 index 0000000..04edb3a Binary files /dev/null and b/public/uploads/courses/thumbnails/2481701588826.jpg differ diff --git a/resources/views/backend/course/courses/create.blade.php b/resources/views/backend/course/courses/create.blade.php index c5c5ef8..8ab96e8 100644 --- a/resources/views/backend/course/courses/create.blade.php +++ b/resources/views/backend/course/courses/create.blade.php @@ -58,7 +58,8 @@
- Created by
-Created by
+5.0 Star (2,54,879)
-3 Hours
-5.0 Star (2,54,879)
19,97,2547 Enrolled
-35 Lesson
-{{$course->duration}} Hours
+19,97,2547 Enrolled
+{{$course->lesson}} Lesson
+ Duis placerat eleifend leo nec mattis. Phasellus scelerisque arcu quis + feugiat + efficitur. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer + laoreet est eget est sagittis, et + scelerisque quam convallis. Praesent at tortor facilisis, tempus ex quis, + tempor + arcu. Duis id velit mattis diam fermentum tincidunt. Sed et vehicula lectus. +
++ Sed ut tincidunt velit, eu bibendum turpis. Fusce in posuere felis, sed + lobortis + elit. Integer mollis sodales congue +
++ Donec tristique ligula id tellus porta, dapibus imperdiet mi ullamcorper. + Vivamus suscipit, nisi eu tincidunt interdum. +
+Mauris ut libero ut mauris + sagittis consectetur quis eget elit.
+Praesent egestas sapien vel + ante + gravida pharetra.
+Pellentesque sit amet odio + interdum, mollis eros id, tincidunt augue.
+Donec eget nunc vel nisl + blandit + facilisis.
+Quisque faucibus nisi eu diam + placerat, dapibus ullamcorper augue mollis.
++ Sed arcu odio, ornare ac porttitor at, placerat nec dui. Nulla nec euismod + tellus. Donec facilisis condimentum commodo. Pellentesque ultricies dolor ut + magna aliquet, vitae sodales massa + euismod. +
++ + This Course for Complete Beginner Students who want learn UI/UX. +
++ + Nunc a ex sodales sem accumsan tristique. +
++ + Suspendisse eget eros eget leo pellentesque ullamcorper ac non augue. +
++ Sed arcu odio, ornare ac porttitor at, placerat nec dui. Nulla nec euismod + tellus. Donec facilisis condimentum commodo. Pellentesque ultricies dolor ut + magna aliquet, vitae sodales massa + euismod. +
++ + This Course for Complete Beginner Students who want learn UI/UX. +
++ + + Nunc a ex sodales sem accumsan tristique. +
++ + Suspendisse eget eros eget leo pellentesque ullamcorper ac non augue. +
++ + Suspendisse eget eros eget leo pellentesque ullamcorper ac non augue. +
+- Duis placerat eleifend leo nec mattis. Phasellus scelerisque arcu quis - feugiat - efficitur. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer - laoreet est eget est sagittis, et - scelerisque quam convallis. Praesent at tortor facilisis, tempus ex quis, - tempor - arcu. Duis id velit mattis diam fermentum tincidunt. Sed et vehicula lectus. -
-- Sed ut tincidunt velit, eu bibendum turpis. Fusce in posuere felis, sed - lobortis - elit. Integer mollis sodales congue -
-- Donec tristique ligula id tellus porta, dapibus imperdiet mi ullamcorper. - Vivamus suscipit, nisi eu tincidunt interdum. -
-Mauris ut libero ut mauris - sagittis consectetur quis eget elit.
-Praesent egestas sapien vel - ante - gravida pharetra.
-Pellentesque sit amet odio - interdum, mollis eros id, tincidunt augue.
-Donec eget nunc vel nisl - blandit - facilisis.
-Quisque faucibus nisi eu diam - placerat, dapibus ullamcorper augue mollis.
-- Sed arcu odio, ornare ac porttitor at, placerat nec dui. Nulla nec euismod - tellus. Donec facilisis condimentum commodo. Pellentesque ultricies dolor ut - magna aliquet, vitae sodales massa - euismod. -
-- - This Course for Complete Beginner Students who want learn UI/UX. -
-- - Nunc a ex sodales sem accumsan tristique. -
-- - Suspendisse eget eros eget leo pellentesque ullamcorper ac non augue. -
-- Sed arcu odio, ornare ac porttitor at, placerat nec dui. Nulla nec euismod - tellus. Donec facilisis condimentum commodo. Pellentesque ultricies dolor ut - magna aliquet, vitae sodales massa - euismod. -
-- - This Course for Complete Beginner Students who want learn UI/UX. -
-- - - Nunc a ex sodales sem accumsan tristique. -
-- - Suspendisse eget eros eget leo pellentesque ullamcorper ac non augue. -
-- - Suspendisse eget eros eget leo pellentesque ullamcorper ac non augue. -
-