WP File Manager
Current Path:
/
home
/
itutorethiopia
/
public_html
/
app
/
Http
/
Controllers
/
Core
/
Name
Action
..
GroupsController.php
Edit
LogsController.php
Edit
PagesController.php
Edit
UsersController.php
Edit
Editing: UsersController.php
<?php namespace App\Http\Controllers\core; use App\Http\Controllers\Controller; use App\Models\Core\Users; use App\Models\Core\Groups; use App\Models\Categories; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator as Paginator; use Validator, Input, Redirect,File ; use App\Models\CourseImages; use Intervention\Image\ImageManagerStatic as Image; use App\Models\Instructor; use App\Models\Course; use Excel; use App\Http\Controllers\CommonmailController; class UsersController extends Controller { protected $layout = "layouts.main"; protected $data = array(); public $module = 'users'; static $per_page = '10'; public function __construct() { $this->model = new Users(); $this->categories = new Categories(); $this->sendmail = new CommonmailController(); $this->info = $this->model->makeInfo( $this->module); $this->access = $this->model->validAccess($this->info['id']); $this->data = array( 'pageTitle' => $this->info['title'], 'pageNote' => $this->info['note'], 'pageModule'=> 'users', 'return' => self::returnUrl() ); } public function Index( Request $request ) { if($this->access['is_view'] ==0) return Redirect::to('dashboard') ->with('messagetext', \Lang::get('core.note_restric'))->with('msgstatus','error'); $sort = (!is_null($request->input('sort')) ? $request->input('sort') : 'id'); $order = (!is_null($request->input('order')) ? $request->input('order') : 'asc'); if(is_null($request->input('sort'))){ $sort = 'created_at'; $order = 'desc'; } // End Filter sort and order for query // Filter Search for query $filter = (!is_null($request->input('search')) ? $this->buildSearch() : ''); $filter .= " AND ".\bsetecHelpers::getdbprefix()."users.group_id >= '".\Session::get('gid')."'" ; $this->data['searchParams'] = (!is_null($request->input('search')) ? $this->getSearch() : ''); $page = $request->input('page', 1); $params = array( 'page' => $page , 'limit' => (!is_null($request->input('rows')) ? filter_var($request->input('rows'),FILTER_VALIDATE_INT) : static::$per_page ) , 'sort' => $sort, 'order' => $order, 'params' => $filter, 'global' => (isset($this->access['is_global']) ? $this->access['is_global'] : 0 ) ); // Get Query $results = $this->model->getRows( $params ); $page = $page >= 1 && filter_var($page, FILTER_VALIDATE_INT) !== false ? $page : 1; $pagination = new Paginator($results['rows'], $results['total'], $params['limit']); $pagination->setPath('users'); $this->data['rowData'] = $results['rows']; // Build Pagination $this->data['pagination'] = $pagination; // Build pager number and append current param GET $this->data['pager'] = $this->injectPaginate(); // Row grid Number $this->data['i'] = ($page * $params['limit'])- $params['limit']; // Grid Configuration $this->data['tableGrid'] = $this->info['config']['grid']; $this->data['tableForm'] = $this->info['config']['forms']; $this->data['colspan'] = \SiteHelpers::viewColSpan($this->info['config']['grid']); // Group users permission $this->data['access'] = $this->access; // Detail from master if any // Master detail link if any $this->data['subgrid'] = (isset($this->info['config']['subgrid']) ? $this->info['config']['subgrid'] : array()); // Render into template return view('core.users.index',$this->data); } function getUpdate(Request $request, $id = null) { if($id =='') { if($this->access['is_add'] ==0 ) return Redirect::to('dashboard')->with('messagetext',\Lang::get('core.note_restric'))->with('msgstatus','error'); } if($id !='') { if($this->access['is_edit'] ==0 ) return Redirect::to('dashboard')->with('messagetext',\Lang::get('core.note_restric'))->with('msgstatus','error'); } $row = $this->model->find($id); if($row) { $this->data['row'] = $row; } else { $this->data['row'] = $this->model->getColumnTable('users'); } $this->data['id'] = $id; $this->data['user_groups'] = Groups::pluck('name', 'group_id'); $category = $this->categories ->select('id','name') ->where('status','enable') ->get(); $this->data['category_id'] = $category->pluck('name', 'id'); return view('core.users.form',$this->data); } public function getShow( $id = null) { if($this->access['is_detail'] ==0) return Redirect::to('dashboard') ->with('messagetext', Lang::get('core.note_restric'))->with('msgstatus','error'); $row = $this->model->getRow($id); if($row) { $this->data['row'] = $row; } else { $this->data['row'] = $this->model->getColumnTable('users'); } $this->data['id'] = $id; $this->data['access'] = $this->access; //check for instructor $this->data['instructor'] = Instructor::where('user_id',$id)->first(); // exit; return view('core.users.view',$this->data); } function postValidateunique(Request $request,$id=null){ if($request->input('id') ==null) { $validator = Validator::make($request->all(), [ 'username' => 'check_spaces|min:2|unique:users', 'email' => 'check_spaces|unique:users', ]); if ($validator->passes()) { return response()->json(['success'=>'True']); } return response()->json(['error'=>$validator->errors()->all()]); } else{ $validator = Validator::make($request->all(), [ 'username' => 'check_spaces|min:2|unique:users,username,'.$request->input('id'), 'email' => 'unique:users,email,'.$request->input('id'), ]); if ($validator->passes()) { return response()->json(['success'=>'True']); } return response()->json(['error'=>$validator->errors()->all()]); } } function postSave( Request $request, $id=null) { // echo "<pre>"; // print_r($request->input()); // exit; $rules = $this->validateForm(); $messages =['avatar:required' => 'Profile image field is required.']; if($request->input('id') ==null) { $rules['active'] = 'required'; $rules['password'] = 'required|check_spaces|between:6,12|confirmed'; $rules['password_confirmation'] = 'required|check_spaces|between:6,12'; $rules['email'] = 'required|email|unique:users'; $rules['phone'] = 'required|min:10|numeric|unique:users'; $rules['dob'] = 'required'; $rules['first_name'] = 'required'; $rules['category_id'] = 'required'; $rules['last_name'] = 'required'; $rules['username'] = 'required|check_spaces|min:2|unique:users'; //$rules['username'] = 'required|alpha_spaces_dashes|unique:users|min:2'; $rules['avatar'] = 'mimes:jpg,jpeg,gif,png'; $user = new Users; $uploadProcess = true; } else { $rules['active'] = 'required'; $rules['email'] = 'required|email|unique:users,email,'.$request->input('id'); $rules['first_name'] = 'required'; $rules['last_name'] = 'required'; $rules['category_id'] = 'required'; $rules['phone'] = 'required|min:10|numeric|unique:users,phone,'.$request->input('id'); $rules['dob'] = 'required'; $rules['username'] = 'required|check_spaces|min:2|unique:users,username,'.$request->input('id'); //$rules['username'] = 'required|alpha_spaces_dashes|min:2|unique:users,username,'.$request->input('id'); $rules['avatar'] = 'mimes:jpg,jpeg,gif,png'; $user = Users::find($request->input('id')); $uploadProcess = false; } if(!$user){ return Redirect::to("home/nodatafound")->with('messagetext', 'Data Removed')->with('msgstatus', 'error'); } $avatar = $request->file('avatar'); if($id != null){ if($avatar){ $getImage = CourseImages::find($user->avatar); if($getImage != null){ $image_path = $getImage->id.".".$getImage->image_type; if(file_exists('./uploads/users/'.$image_path)){ File::Delete('./uploads/users/'.$image_path); File::Delete('./uploads/users/'.$getImage->id."_lg.".$getImage->image_type); File::Delete('./uploads/users/'.$getImage->id."_medium.".$getImage->image_type); File::Delete('./uploads/users/'.$getImage->id."_small.".$getImage->image_type); $getImage->delete(); } } $rules['avatar'] = 'mimes:jpg,jpeg,gif,png'; $uploadProcess = true; } if($request->input('removeeligible')){ $getImage = CourseImages::find($user->avatar); if($getImage){ $image_path = $getImage->id.".".$getImage->image_type; if(file_exists('./uploads/users/'.$image_path)){ File::Delete('./uploads/users/'.$image_path); File::Delete('./uploads/users/'.$getImage->id."_lg.".$getImage->image_type); File::Delete('./uploads/users/'.$getImage->id."_medium.".$getImage->image_type); File::Delete('./uploads/users/'.$getImage->id."_small.".$getImage->image_type); $getImage->delete(); $user = Users::find($request->get('id')); $user->avatar = 0; $user->save(); } } } } $validator = Validator::make($request->all(), $rules,$messages); if (count($request->input('category_id')) != 0) { $cat_id = implode(',', $request->input('category_id')); } if ($validator->passes()) { //$data = $this->validatePost('users'); $user->username = $request->input('username'); $user->group_id = $request->input('group_id'); $user->first_name = $request->input('first_name'); $user->last_name = $request->input('last_name'); $user->email = $request->input('email'); $user->phone = $request->input('phone'); $user->dob = $request->input('dob'); $user->active = $request->input('active'); $user->category_id = $cat_id; //password process if($request->input('password')) $user->password = \Hash::make($request->input('password')); $user->save(); $id = ($id=="") ? $user->id : $id; if($uploadProcess && $avatar){ // image process $type = $avatar->getClientOriginalExtension(); $courseImages = new CourseImages; $courseImages->image_title = $request->input('username'); $courseImages->image_type = $type; $courseImages->image_tag = "dummy tag"; $courseImages->uploader_id = $id; $courseImages->created_at = time(); $courseImages->updated_at = time(); $courseImages->save(); $image_id = $courseImages->id; $image_update = CourseImages::find($image_id); $image_update->image_hash = md5($image_id.$image_update->created_at); $image_update->save(); // resize image width and height $image_size[] = array('imgW'=>'500','imgH'=>'500','value'=>'normal'); $image_size[] = array('imgW'=>'150','imgH'=>'150','value'=>'medium'); $image_size[] = array('imgW'=>'64','imgH'=>'64','value'=>'small'); foreach($image_size as $size){ $save_path = ($size['value'] =='normal') ? $image_id.'.'.$type : $image_id.'_'.$size['value'].'.'.$type; Image::make($avatar->getRealPath())->resize($size['imgW'],$size['imgH'])->save('./uploads/users/'.$save_path); } Image::make($avatar->getRealPath())->save('./uploads/users/'.$image_id.'_lg.'.$type); $user_update = Users::find($user->id); $user_update->avatar = $image_id; $user_update->save(); } // mail for user activation if($request->input('active')==1){ $toMail = $user->email; $subject = CNF_APPNAME." Activation "; if(!empty($user->username)){ $uname = $user->username; }else{ $uname = $user->first_name.' '.$user->last_name; } $data = array('username'=>$uname); $fromMail = CNF_EMAIL; $tempname = 'mailtemplates.email_activation'; $this->sendmail->getMail($fromMail,$toMail,$subject,$data,$tempname); } //$this->model->insertRow($data , $request->input('id')); if(!is_null($request->input('apply'))) { $return = 'core/users/update/'.$id.'?return='.self::returnUrl(); } else { $return = 'core/users?return='.self::returnUrl(); } return Redirect::to($return)->with('messagetext',\Lang::get('core.note_success'))->with('msgstatus','success'); } else { return Redirect::to('core/users/update/'.$id)->with('messagetext',\Lang::get('core.note_error'))->with('msgstatus','error') ->withErrors($validator)->withInput(); } } public function postDelete( Request $request) { if($this->access['is_remove'] ==0) return Redirect::to('dashboard') ->with('messagetext', \Lang::get('core.note_restric'))->with('msgstatus','error'); // delete multipe rows if(count($request->input('id')) >=1) { foreach ($request->input('id') as $user_id) { $delete_user = true; $user_learning_courses = Course::join('course_taken','course_taken.course_id','=','course.course_id')->where('course.user_id',$user_id)->get(); $user_learning_courses_id = $user_learning_courses->pluck('course_id')->toArray(); $user_learning_courses_images = $user_learning_courses->pluck('image')->toArray(); if(count($user_learning_courses)>0){ $delete_user = false; } if($delete_user){ // delete user data's \DB::table('blogcomments')->where('user_id',$user_id)->delete(); \DB::table('forum_comments')->where('user_id',$user_id)->delete(); \DB::table('favorite')->where('user_id',$user_id)->delete(); \DB::table('curriculum_quiz_results')->where('user_id',$user_id)->delete(); \DB::table('featured')->where('user_id',$user_id)->delete(); \DB::table('invitation_users')->where('user_id',$user_id)->delete(); \DB::table('lectures_comments')->where('user_id',$user_id)->delete(); \DB::table('lectures_comment_reply')->where('user_id',$user_id)->delete(); \DB::table('logs')->where('user_id',$user_id)->delete(); \DB::table('notifications')->where('user_id',$user_id)->delete(); \DB::table('report_abuse')->where('user_id',$user_id)->delete(); \DB::table('subscriber_list')->where('user_id',$user_id)->delete(); \DB::table('withdraw_requests')->where('user_id',$user_id)->delete(); \DB::table('course_progress')->where('user_id',$user_id)->delete(); \DB::table('instructor')->where('user_id',$user_id)->delete(); $courses = Course::where('user_id',$user_id)->get(); if(count($courses)>0){ foreach ($courses as $course) { $this->deleteCourse($user_id,$course->course_id); } } $user = Users::find($user_id); if(!empty($user->avatar)){ $user_image = CourseImages::find($user->avatar); $image_size = array('','_small','_medium','_lg'); foreach ($image_size as $key1 => $value1) { if (file_exists('./uploads/users/'.$user_image->id.$value1.'.'.$user_image->image_type)) { File::Delete('./uploads/users/'.$user_image->id.$value1.'.'.$user_image->image_type); } } $user_image->delete(); } $user->delete(); }else{ $delete_courses = Course::where('user_id',$user_id)->whereNotIn('course_id',$user_learning_courses)->get(); foreach ($delete_courses as $courses) { $this->deleteCourse($user_id,$courses->course_id); } $user = Users::find($user_id); $user->active = 0; $user->save(); \DB::table('instructor')->where('user_id','=',$user_id)->update(['status'=>0]); } } // redirect return Redirect::to('core/users') ->with('messagetext', \Lang::get('core.note_success_delete'))->with('msgstatus','success'); } else { return Redirect::to('core/users') ->with('messagetext','No Item Deleted')->with('msgstatus','error'); } } public function deleteUsersimage( Request $request ){ $getImage = CourseImages::where('uploader_id',$request->get('id'))->first(); if($getImage != null){ $image_path = $getImage->id.".".$getImage->image_type; if(file_exists('./uploads/users/'.$image_path)){ File::Delete('./uploads/users/'.$image_path); File::Delete('./uploads/users/'.$getImage->id."_lg.".$getImage->image_type); File::Delete('./uploads/users/'.$getImage->id."_medium.".$getImage->image_type); File::Delete('./uploads/users/'.$getImage->id."_small.".$getImage->image_type); $getImage->delete(); $user = Users::find($request->get('id')); $user->avatar = 0; $user->save(); } } } function getBlast() { $this->data = array( 'groups' => Groups::all(), 'pageTitle' => 'Blast Email', 'pageNote' => 'Send email to users' ); return view('core.users.blast',$this->data); } function getUpload(Request $request) { \Session::forget('reg-errors'); \Session::forget('reg-success'); $errors = \Session::get('error'); $user_data = \Session::get('user_data'); \Session::put('reg-errors',$errors); \Session::put('reg-success',$user_data); \Session::save(); $this->data = array(); $this->data['errors'] = $errors; $this->data['user_data'] = $user_data; $notIn = array('1'); $groups = Groups::whereNotIn('group_id',$notIn)->pluck('name','group_id')->toArray(); $this->data['group'] = $groups; $this->data['pageTitle'] = 'Bulk Upload'; $this->data['pageNote'] = 'Send email to users'; return view('core.users.upload',$this->data); } public function postUpload(Request $request) { $excel = $request->file('upload_file'); $ext = $excel->getClientOriginalExtension(); $err = array(); $error = $userid_array = array(); $group_id = ''; $user_data = array(); if($ext == 'csv' || $ext == 'xls') { // echo "string"; $filename = $request->file('upload_file'); $csv_file = $filename; //Import uploaded file to Database $handle = fopen($csv_file, "r"); //to count number of rows $fp = file($csv_file, FILE_SKIP_EMPTY_LINES); $count = count($fp) - 1; if($count == '0') { return redirect('core/users/upload')->with('messagetext','Your excel sheet is empty')->with('msgstatus','error'); } $firstRow = true; $row = 0; while (($csvdata1 = fgetcsv($handle, 1000, ",")) !== FALSE) { if(isset($csvdata1[1]) && isset($csvdata1[0]) && isset($csvdata1[6])){ if ($firstRow) { $firstRow = false; // echo "string"; } else { // echo "string"; // print_r($csvdata1); // echo $csvdata1[1]; $email_c = $this->checkemail($csvdata1[1]); $username_c = $this->checkusername($csvdata1[0]); $phone_p = $this->checkphone($csvdata1[6]); $phone_c = $this->checkphonenumber($csvdata1[6]); $cat = trim($csvdata1[7]); $check_cat = $this->checkcategory($cat); if(preg_match('/[a-z||0-9]@[a-z||0-9].[a-z]/', $csvdata1[1])) { $email_p = true; } else { $email_p = false; } if($email_c > 0 || !$email_p || $csvdata1[1] == '' || $username_c > 0 || !$phone_p || $phone_c > 0 || $check_cat == '') { // echo "string"; if($csvdata1[1] == ''){ $err['email_required'] = 'Row '.$row.' Email is required'; } if($csvdata1[1] != '' && $email_c > 0){ $err['email_exist'] = 'Already exist'; } if($csvdata1[1] != '' && !$email_p){ $err['email_invalid'] = 'Invalid Email id'; } if($csvdata1[6] == ''){ $err['phone_required'] = 'Row '.$row.' Phone is required'; } if($csvdata1[6] != '' && $phone_c > 0){ $err['phone_exist'] = 'Phone Already exist'; } if($csvdata1[6] != '' && $phone_p){ $err['phone_invalid'] = 'Invalid Phone Number'; } if($csvdata1[0] == ''){ $err['username_required'] = 'Row '.$row.' User Name is required'; } if($csvdata1[0] != '' && $username_c > 0){ $err['username_exist'] = 'User Name Already exist'; } if($check_cat == ''){ $err['category_invalid'] = "Category Doesn't Exist"; } $error[$csvdata1[1]] = $err; } else { // Insert Users start $code = rand(10000,10000000); $authen = new Users; $authen->email = trim($csvdata1[1]); $authen->activation = $code; if($request->get('group_id') != '') { $group_id = $authen->group_id = $request->get('group_id'); } else{ $group_id = $authen->group_id = 3; } $authen->password = \Hash::make(trim($csvdata1[2])); $authen->mypass = \Crypt::encrypt(trim($csvdata1[2])); $authen->phone = trim($csvdata1[6]); $authen->username = trim($csvdata1[0]); $authen->first_name = isset($csvdata1[3]) ? trim($csvdata1[3]) : ''; $authen->last_name = isset($csvdata1[4]) ? trim($csvdata1[4]) : ''; $authen->dob = isset($csvdata1[5]) ? date("Y-m-d", strtotime($csvdata1[5])) : ''; $authen->register_type = 'excel'; $authen->active = '1'; $authen->mail_status = '1'; $authen->category_id = $check_cat; $authen->save(); $userid_array[] = $authen->id; $fname = isset($csvdata1[3]) ? trim($csvdata1[3]) : ''; $lname = isset($csvdata1[4]) ? trim($csvdata1[4]) : ''; $phone = (isset($csvdata1[6]))?$csvdata1[6]:''; $username = trim($csvdata1[0]); $password = trim($csvdata1[2]); $user_data[] = array( 'email'=>trim($csvdata1[1]), 'phone'=>$phone, 'username'=>$username, 'first_name'=>$fname, 'last_name'=>$lname, 'password'=>$password, ); } } $row++; } } fclose($handle); return Redirect::to('/core/users/upload')->with('messagetext',\Lang::get('core.note_success'))->with('msgstatus','success')->with('error',$error)->with('user_data',$user_data); } else{ return Redirect::to('/core/users/upload')->with('messagetext',\Lang::get('core.note_error'))->with('msgstatus','error') ->withErrors(\Lang::get('core.pls_upload_csv'))->withInput(); } } function checkemail($email) { $retcheckemail = $this->model->where('email','=',$email)->count(); return $retcheckemail; } function checkusername($name) { $chkusername = $this->model->where('username','=',$name)->count(); return $chkusername; } function checkphonenumber($phone) { $chkusername = $this->model->where('phone','=',$phone)->count(); return $chkusername; } function checkcategory($category) { $category_name = trim($category); $result = ''; $res = \DB::table('categories')->select('id','name')->where('status', 'enable')->get(); if (isset($res) && !empty($res)) { foreach ($res as $key => $value) { if ($category_name == trim($value->name)) { $result = $value->id; break; } } } return $result; } function checkphone($number) { if(!preg_match ("/[^0-9]/", $number)){ return true; }else{ return false; } } function sendRegistrationMail() { $users = \DB::table('users')->where('mail_status','=', '1')->get(); // echo "<pre>"; // print_r($users); // exit; foreach ($users as $key => $value) { // echo $value->email; $code = rand(10000,10000000); $data = array( 'firstname' => $value->first_name , 'lastname' => $value->last_name , 'email' => $value->email , 'phone' => $value->phone , 'password' => \Crypt::decrypt($value->mypass) , 'code' => $code ); if(CNF_ACTIVATION == 'confirmation') { // echo "<pre>"; $toMail = $value->email; $subject = CNF_APPNAME." REGISTRATION "; $message = view('user.emails.registration', $data); $fromMail = CNF_EMAIL; $tempname = 'user.emails.registration'; // echo $tempname; // // $headers = 'MIME-Version: 1.0' . "\r\n"; // // $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // // $headers .= 'From: '.CNF_APPNAME.' <'.CNF_EMAIL.'>' . "\r\n"; // // mail($to, $subject, $message, $headers); $res = $this->sendmail->getMail($fromMail,$toMail,$subject,$data,$tempname); \DB::table('users')->where('id','=',$value->id)->update(['mail_status'=>0]); // if ($res === true) { // echo "string"; // } $message = \Lang::get('core.reg_inbox'); } } } function csvToArray($filename = '', $delimiter = ',') { if (!file_exists($filename) || !is_readable($filename)) return false; $header = null; $data = array(); if (($handle = fopen($filename, 'r')) !== false) { while (($row = fgetcsv($handle, 1000, $delimiter)) !== false) { if (!$header) $header = $row; else $data[] = array_combine($header, $row); } fclose($handle); } return $data; } function postDoblast( Request $request) { $messsages = array( 'groups.required'=>'The Send To field is required.', ); $rules = array( 'subject' => 'required', 'message' => 'required|min:10', 'groups' => 'required', 'status' => 'required', ); $validator = Validator::make($request->all(), $rules, $messsages); if ($validator->passes()) { if(!is_null($request->input('groups'))) { $groups = $request->input('groups'); for($i=0; $i<count($groups); $i++) { if($request->input('status') == '3') { $users = \DB::table('users')->where('group_id','=',$groups[$i])->get(); } else { $users = \DB::table('users')->where('active','=',$request->input('status'))->where('group_id','=',$groups[$i])->get(); } $count = 0; foreach($users as $row) { //subject content $subject = str_replace('[fullname]',$row->first_name.' '. $row->last_name,$request->input('subject')); $subject = str_replace('[first_name]',$row->first_name,$subject); $subject = str_replace('[last_name]',$row->last_name,$subject); $subject = str_replace('[email]',$row->email,$subject); //message content $message = str_replace('[fullname]',$row->first_name.' '. $row->last_name,$request->input('message')); $message = str_replace('[first_name]',$row->first_name,$message); $message = str_replace('[last_name]',$row->last_name,$message); $message = str_replace('[email]',$row->email,$message); $toMail = $row->email; $message = view('user.emails.blast-mail', array('content'=>$message)); $fromMail = CNF_EMAIL; $tempname = 'user.emails.blast-mail'; $this->sendmail->getMail($fromMail,$toMail,$subject,array('content'=>$message),$tempname); $count = ++$count; } } return Redirect::to('core/users/blast')->with('messagetext','Total '.$count.' Message has been sent')->with('msgstatus','success'); } return Redirect::to('core/users/blast')->with('messagetext','No Message has been sent')->with('msgstatus','info'); } else { return Redirect::to('core/users/blast')->with('messagetext', 'The following errors occurred')->with('msgstatus','error') ->withErrors($validator)->withInput(); } } public function deleteCourse($user_id, $course_id){ $course = Course::find($course_id); if(count($course)>0){ $image = courseImages::find($course->image); if(count($image)>0){ $image_size = array('','_small','_medium','_lg'); foreach ($image_size as $key1 => $value1) { if(file_exists('./uploads/course/'.$course->image.$value1.'.'.$course->image_type)) { File::Delete('./uploads/course/'.$course->image.$value1.'.'.$course->image_type); } } $image->delete(); } } $course_video = array(); if(!empty($course->video)){ array_push($course_video,$course->video); } if(!empty($course->test_video)){ array_push($course_video,$course->test_video); } $course_videos = \DB::table('course_videos')->whereIn('id',$course_video)->get(); if(count($course_videos)>0){ foreach ($course_videos as $video) { if(file_exists('./uploads/videos/raw_'.$video->created_at.'_'.$video->video_title.'.'.$video->video_type)) { File::Delete('./uploads/videos/raw_'.$video->created_at.'_'.$video->video_title.'.'.$video->video_type); }else{ if(file_exists($video->video_title.'.webm')) File::Delete($video->video_title.'.webm'); if(file_exists($video->video_title.'.mp4')) File::Delete($video->video_title.'.mp4'); if(file_exists($video->video_title.'.ogv')) File::Delete($video->video_title.'.ogv'); } if(file_exists('./uploads/images/'.$video->video_title.'.jpg')) File::Delete('./uploads/images/'.$video->video_title.'.jpg'); } \DB::table('course_videos')->whereIn('id',$course_video)->delete(); } $curriculum_sections = \DB::table('curriculum_sections')->where('course_id','=',$course_id)->get()->pluck('section_id')->toArray(); $curriculum_lectures_quiz = \DB::table('curriculum_lectures_quiz')->whereIn('section_id',$curriculum_sections)->get()->pluck('lecture_quiz_id')->toArray(); $curriculum_quiz_questions = \DB::table('curriculum_quiz_questions')->whereIn('quiz_id',$curriculum_lectures_quiz)->delete(); \DB::table('curriculum_sections')->whereIn('section_id',$curriculum_sections)->delete(); \DB::table('curriculum_lectures_quiz')->whereIn('lecture_quiz_id',$curriculum_lectures_quiz)->delete(); Course::destroy($course_id); return true; } }