updated frontend course list page

Cette révision appartient à :
Ibrahim Khail Shakil 2023-12-03 13:37:33 +06:00
Parent 758c8b570b
révision f45213b3e4
10 fichiers modifiés avec 3292 ajouts et 3543 suppressions

Voir le fichier

@ -7,7 +7,7 @@
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Requests\Backend\Course\Courses\AddNewRequest; use App\Http\Requests\Backend\Course\Courses\AddNewRequest;
use App\Http\Requests\Backend\Course\Courses\UpdateRequest; use App\Http\Requests\Backend\Course\Courses\UpdateRequest;
use App\Models\CourseCategory; use App\Models\CourseCategory;
use App\Models\Instructor; use App\Models\Instructor;
use Exception; use Exception;
use File; use File;
@ -23,6 +23,12 @@ public function index()
return view('backend.course.courses.index', compact('course')); 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. * Show the form for creating a new resource.
*/ */
@ -47,14 +53,18 @@ public function store(AddNewRequest $request)
$course->category_id = $request->categoryId; $course->category_id = $request->categoryId;
$course->instructor_id = $request->instructorId; $course->instructor_id = $request->instructorId;
$course->type = $request->courseType; $course->type = $request->courseType;
$course->price = $request->coursePrice; $course->price = $request->coursePrice;
$course->old_price = $request->courseOldPrice;
$course->subscription_price = $request->subscriptionPrice; $course->subscription_price = $request->subscriptionPrice;
$course->start_from = $request->start_from; $course->start_from = $request->start_from;
$course->duration = $request->duration; $course->duration = $request->duration;
$course->lesson = $request->lesson;
$course->review_id = $request->reviewId;
$course->difficulty = $request->courseDifficulty; $course->difficulty = $request->courseDifficulty;
$course->course_code = $request->course_code; $course->course_code = $request->course_code;
$course->prerequisites_en = $request->prerequisites_en; $course->prerequisites_en = $request->prerequisites_en;
$course->prerequisites_bn = $request->prerequisites_bn; $course->prerequisites_bn = $request->prerequisites_bn;
$course->thumbnail_video = $request->thumbnail_video;
$course->status = $request->status; $course->status = $request->status;
$course->language = 'en'; $course->language = 'en';
@ -63,6 +73,11 @@ public function store(AddNewRequest $request)
$request->image->move(public_path('uploads/courses'), $imageName); $request->image->move(public_path('uploads/courses'), $imageName);
$course->image = $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()) if ($course->save())
return redirect()->route('course.index')->with('success', 'Data Saved'); return redirect()->route('course.index')->with('success', 'Data Saved');
else else
@ -76,11 +91,19 @@ public function store(AddNewRequest $request)
/** /**
* Display the specified resource. * 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. * Show the form for editing the specified resource.
*/ */
@ -107,9 +130,11 @@ public function update(UpdateRequest $request, $id)
$course->instructor_id = $request->instructorId; $course->instructor_id = $request->instructorId;
$course->type = $request->courseType; $course->type = $request->courseType;
$course->price = $request->coursePrice; $course->price = $request->coursePrice;
$course->old_price = $request->courseOldPrice;
$course->subscription_price = $request->subscriptionPrice; $course->subscription_price = $request->subscriptionPrice;
$course->start_from = $request->start_from; $course->start_from = $request->start_from;
$course->duration = $request->duration; $course->duration = $request->duration;
$course->lesson = $request->lesson;
$course->difficulty = $request->courseDifficulty; $course->difficulty = $request->courseDifficulty;
$course->course_code = $request->course_code; $course->course_code = $request->course_code;
$course->prerequisites_en = $request->prerequisites_en; $course->prerequisites_en = $request->prerequisites_en;
@ -122,6 +147,11 @@ public function update(UpdateRequest $request, $id)
$request->image->move(public_path('uploads/courses'), $imageName); $request->image->move(public_path('uploads/courses'), $imageName);
$course->image = $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()) if ($course->save())
return redirect()->route('course.index')->with('success', 'Data Saved'); return redirect()->route('course.index')->with('success', 'Data Saved');
else else

Voir le fichier

@ -21,14 +21,18 @@ public function up(): void
$table->unsignedBigInteger('instructor_id')->index(); $table->unsignedBigInteger('instructor_id')->index();
$table->enum('type', ['free', 'paid', 'subscription'])->default('paid'); $table->enum('type', ['free', 'paid', 'subscription'])->default('paid');
$table->decimal('price', 10, 2)->default(0.00)->nullable(); $table->decimal('price', 10, 2)->default(0.00)->nullable();
$table->decimal('old_price', 10, 2)->nullable();
$table->decimal('subscription_price', 10, 2)->nullable(); $table->decimal('subscription_price', 10, 2)->nullable();
$table->timestamp('start_from')->nullable(); $table->timestamp('start_from')->nullable();
$table->integer('duration')->nullable(); $table->integer('duration')->nullable();
$table->integer('lesson')->nullable();
$table->text('prerequisites_en')->nullable(); $table->text('prerequisites_en')->nullable();
$table->text('prerequisites_bn')->nullable(); $table->text('prerequisites_bn')->nullable();
$table->enum('difficulty', ['beginner', 'intermediate', 'advanced'])->nullable(); $table->enum('difficulty', ['beginner', 'intermediate', 'advanced'])->nullable();
$table->string('course_code')->nullable(); $table->string('course_code')->nullable();
$table->string('image')->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->boolean('status')->default(1)->comment('1 active, 0 inactive');
$table->string('language')->default('en'); $table->string('language')->default('en');
$table->timestamps(); $table->timestamps();

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 151 KiB

Fichier binaire non affiché.

Après

Largeur:  |  Hauteur:  |  Taille: 248 KiB

Voir le fichier

@ -58,7 +58,8 @@
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Description</label> <label class="form-label">Description</label>
<textarea class="form-control" name="courseDescription_en" value="{{old('courseDescription_en')}}"></textarea> <textarea class="form-control" name="courseDescription_en"
value="{{old('courseDescription_en')}}"></textarea>
</div> </div>
@if($errors->has('courseDescription_en')) @if($errors->has('courseDescription_en'))
<span class="text-danger"> {{ $errors->first('courseDescription_en') }}</span> <span class="text-danger"> {{ $errors->first('courseDescription_en') }}</span>
@ -67,7 +68,8 @@
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">বিস্তারিত (বাংলায়)</label> <label class="form-label">বিস্তারিত (বাংলায়)</label>
<textarea class="form-control" name="courseDescription_bn" value="{{old('courseDescription_bn')}}"></textarea> <textarea class="form-control" name="courseDescription_bn"
value="{{old('courseDescription_bn')}}"></textarea>
</div> </div>
@if($errors->has('courseDescription_bn')) @if($errors->has('courseDescription_bn'))
<span class="text-danger"> {{ $errors->first('courseDescription_bn') }}</span> <span class="text-danger"> {{ $errors->first('courseDescription_bn') }}</span>
@ -83,7 +85,7 @@
@empty @empty
<option value="">No Category Found</option> <option value="">No Category Found</option>
@endforelse @endforelse
</select> </select>
</div> </div>
@if($errors->has('categoryId')) @if($errors->has('categoryId'))
<span class="text-danger"> {{ $errors->first('categoryId') }}</span> <span class="text-danger"> {{ $errors->first('categoryId') }}</span>
@ -122,10 +124,13 @@
<div class="form-group"> <div class="form-group">
<label class="form-label">Difficulty</label> <label class="form-label">Difficulty</label>
<select class="form-control" name="courseDifficulty"> <select class="form-control" name="courseDifficulty">
<option value="beginner" @if(old('courseDifficulty')=='beginner' ) selected @endif>Beginner</option> <option value="beginner" @if(old('courseDifficulty')=='beginner' ) selected
<option value="intermediate" @if(old('courseDifficulty')=='intermediate' ) selected @endif>Intermediate @endif>Beginner</option>
<option value="intermediate" @if(old('courseDifficulty')=='intermediate' )
selected @endif>Intermediate
</option> </option>
<option value="advanced" @if(old('courseDifficulty')=='advanced' ) selected @endif>Advanced <option value="advanced" @if(old('courseDifficulty')=='advanced' ) selected
@endif>Advanced
</option> </option>
</select> </select>
</div> </div>
@ -140,6 +145,16 @@
<span class="text-danger"> {{ $errors->first('coursePrice') }}</span> <span class="text-danger"> {{ $errors->first('coursePrice') }}</span>
@endif @endif
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Old Price</label>
<input type="number" class="form-control" name="courseOldPrice"
value="{{old('courseOldPrice')}}">
</div>
@if($errors->has('courseOldPrice'))
<span class="text-danger"> {{ $errors->first('courseOldPrice') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Subscription Price</label> <label class="form-label">Subscription Price</label>
@ -170,6 +185,16 @@
<span class="text-danger"> {{ $errors->first('duration') }}</span> <span class="text-danger"> {{ $errors->first('duration') }}</span>
@endif @endif
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Number of Lesson</label>
<input type="number" class="form-control" name="lesson"
value="{{old('lesson')}}">
</div>
@if($errors->has('lesson'))
<span class="text-danger"> {{ $errors->first('lesson') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Prerequisites</label> <label class="form-label">Prerequisites</label>
@ -190,6 +215,25 @@
<span class="text-danger"> {{ $errors->first('prerequisites_bn') }}</span> <span class="text-danger"> {{ $errors->first('prerequisites_bn') }}</span>
@endif @endif
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Course Code</label>
<input type="text" class="form-control" name="course_code"
value="{{old('course_code')}}">
</div>
@if($errors->has('course_code'))
<span class="text-danger"> {{ $errors->first('course_code') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Thumbnail Video URL</label>
<input type="text" class="form-control" name="thumbnail_video" value="{{old('thumbnail_video')}}">
</div>
@if($errors->has('thumbnail_video'))
<span class="text-danger"> {{ $errors->first('thumbnail_video') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Status</label> <label class="form-label">Status</label>
@ -200,23 +244,20 @@
</div> </div>
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Course Code</label>
<input type="text" class="form-control" name="course_code" value="{{old('course_code')}}">
</div>
@if($errors->has('course_code'))
<span class="text-danger"> {{ $errors->first('course_code') }}</span>
@endif
</div>
<div class="col-lg-12 col-md-12 col-sm-12">
<label class="form-label">Image</label> <label class="form-label">Image</label>
<div class="form-group fallback w-100"> <div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="image"> <input type="file" class="dropify" data-default-file="" name="image">
</div> </div>
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<label class="form-label">Thumbnail Image</label>
<div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="thumbnail_image">
</div>
</div>
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-light">Cencel</button> <button type="submit" class="btn btn-light">Cancel</button>
</div> </div>
</div> </div>
</form> </form>

Voir le fichier

@ -160,6 +160,16 @@
<span class="text-danger"> {{ $errors->first('coursePrice') }}</span> <span class="text-danger"> {{ $errors->first('coursePrice') }}</span>
@endif @endif
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Old Price</label>
<input type="number" class="form-control" name="courseOldPrice"
value="{{old('courseOldPrice', $course->old_price)}}">
</div>
@if($errors->has('courseOldPrice'))
<span class="text-danger"> {{ $errors->first('courseOldPrice') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Subscription Price</label> <label class="form-label">Subscription Price</label>
@ -193,6 +203,17 @@
$course->duration) }}</span> $course->duration) }}</span>
@endif @endif
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Number of Lesson</label>
<input type="number" class="form-control" name="lesson"
value="{{old('lesson')}}">
</div>
@if($errors->has('lesson'))
<span class="text-danger"> {{ $errors->first('lesson',
$course->lesson) }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Prerequisites</label> <label class="form-label">Prerequisites</label>
@ -213,6 +234,28 @@
<span class="text-danger"> {{ $errors->first('prerequisites_bn') }}</span> <span class="text-danger"> {{ $errors->first('prerequisites_bn') }}</span>
@endif @endif
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Course Code</label>
<input type="number" class="form-control" name="course_code"
value="{{old('course_code')}}">
</div>
@if($errors->has('course_code'))
<span class="text-danger"> {{ $errors->first('course_code',
$course->course_code) }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Thumbnail Video URL</label>
<input type="text" class="form-control" name="thumbnail_video"
value="{{old('thumbnail_video')}}">
</div>
@if($errors->has('thumbnail_video'))
<span class="text-danger"> {{ $errors->first('thumbnail_video',
$course->thumbnail_video) }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Status</label> <label class="form-label">Status</label>
@ -224,15 +267,21 @@
</select> </select>
</div> </div>
</div> </div>
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<label class="form-label">Image</label> <label class="form-label">Image</label>
<div class="form-group fallback w-100"> <div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="image"> <input type="file" class="dropify" data-default-file="" name="image">
</div> </div>
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12">
<label class="form-label">Thumbnail Image</label>
<div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="thumbnail_image">
</div>
</div>
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-light">Cencel</button> <button type="submit" class="btn btn-light">Cancel</button>
</div> </div>
</div> </div>
</form> </form>

Fichier diff supprimé car celui-ci est trop grand Voir la Diff

Voir le fichier

@ -79,7 +79,6 @@
<ul> <ul>
<li><a href="{{route('studentProfile')}}">Student Profile</a></li> <li><a href="{{route('studentProfile')}}">Student Profile</a></li>
<li><a href="{{route('instructorProfile')}}">Instructor Profile</a></li> <li><a href="{{route('instructorProfile')}}">Instructor Profile</a></li>
<li><a href="{{route('courseDetails')}}">Course details</a></li>
<li><a href="{{route('checkout')}}">Check out</a></li> <li><a href="{{route('checkout')}}">Check out</a></li>
</ul> </ul>
</div> </div>

Fichier diff supprimé car celui-ci est trop grand Voir la Diff

Voir le fichier

@ -93,13 +93,8 @@
return view('frontend.home'); return view('frontend.home');
})->name('home'); })->name('home');
Route::get('/searchCourse', function () { Route::get('searchCourse', [course::class, 'frontIndex'])->name('searchCourse');
return view('frontend.searchCourse'); Route::get('courseDetails/{id}', [course::class, 'frontShow'])->name('courseDetails');
})->name('searchCourse');
Route::get('/courseDetails', function () {
return view('frontend.courseDetails');
})->name('courseDetails');
Route::get('/about', function () { Route::get('/about', function () {
return view('frontend.about'); return view('frontend.about');
@ -110,10 +105,6 @@
return view('frontend.instructorProfile'); return view('frontend.instructorProfile');
})->name('instructorProfile'); })->name('instructorProfile');
Route::get('/courseDetails', function () {
return view('frontend.courseDetails');
})->name('courseDetails');
Route::get('/cart', function () { Route::get('/cart', function () {
return view('frontend.cart'); return view('frontend.cart');