<?php namespace App\View\Components; use Illuminate\View\Component; use Modules\CourseSetting\Entities\Course; class TrendingMostPopuler extends Component { private $title, $subtitle; public function __construct($title, $subtitle) { $this->title = $title; $this->subtitle = $subtitle; } /** * Get the view / contents that represent the component. * * @return \Illuminate\View\View|string */ public function render() { $title = $this->title; $subtitle = $this->subtitle; $with = ['user', 'category', 'subCategory', 'enrolls', 'comments', 'reviews', 'lessons', 'activeReviews', 'enrollUsers', 'cartUsers', 'courseLevel', 'BookmarkUsers']; $query = Course::where('scope', 1); if (routeIs('courses')) { $query->where('type', 1); } elseif (routeIs('quizzes')) { $with[] = 'quiz.assign'; $query->where('type', 2); } elseif (routeIs('classes')) { $with[] = 'class.zoomMeetings'; if (isModuleActive('BBB')) { $with[] = 'class.bbbMeetings'; } if (isModuleActive('Jisti')) { $with[] = 'class.jitsiMeetings'; } $query->where('type', 3); } $query->with($with); $query->where('status', 1); $populers = $query->orderBy('total_enrolled', 'desc')->take(4)->get(); $trands = $query->orderBy('view', 'desc')->take(4)->get(); $latest = $query->orderBy('created_at', 'desc')->take(4)->get(); return view(theme('components.trending-most-populer'), compact('title', 'subtitle', 'populers', 'trands', 'latest')); } }