Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
tbf.ro
/
app
/
Http
/
Controllers
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
LessonController.php
| Size :
6.16
KB
Copy
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Lesson; use App\Course; use App\Module; use App\LessonQuestion; use Carbon\Carbon; use Illuminate\Support\Facades\Storage; class LessonController extends Controller { public function create(){ $courses = Course::all(); return view('lessons.create', compact('courses')); } public function get_modules(){ $modules = Module::where('course_id', $_GET['courseId'])->get(); return response()->json(['modules' => $modules]); } public function store(Request $request){ $request->validate([ 'name' => 'required', 'course_id' => 'required', 'type' => 'required', 'status' => 'required', ]); $last_lesson = Lesson::where([['course_id', $request->course_id]])->orderBy('order', 'DESC')->first(); if($last_lesson){ $no_order = $last_lesson->order + 1; }else{ $no_order = 0; } $lesson = Lesson::create([ 'name' => $request->name, 'description' => '', 'course_id' => $request->course_id, 'type' => $request->type, 'video_url' => $request->video_url, 'google_url' => $request->google_url, 'free' => 'yes', 'status' => $request->status, 'order' => $no_order ]); if($request->hasFile('file')){ $filename = time().'.'.$request->file->getClientOriginalExtension(); $request->file->move(public_path('attachments'), $filename); $lesson->file = $filename; $lesson->file_name = $request->file->getClientOriginalName(); $lesson->save(); // Storage::disk('local')->put($filename, (string)$request->file, 'public'); } if($request->video_url){ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://fast.wistia.com/oembed.json?url=". $request->video_url ."?embedType=api&handle=oEmbedVideo", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_TIMEOUT => 30000, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( // Set Here Your Requesred Headers 'Content-Type: application/json', ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { $duration = 0; } else { $duration = json_decode($response)->duration; } } if($request->type == 'qa'){ $questions = $request->question_titles; foreach ($questions as $key => $item) { if($item != '' && $request->question_answers[$key] != ''){ LessonQuestion::create([ 'lesson_id' => $lesson->id, 'question' => $item, 'answer' => $request->question_answers[$key], ]); } } } $lesson->time = isset($duration) ? $duration : null; $lesson->save(); return redirect()->route('lesson-show', $lesson->id); } public function show($id){ $lesson = Lesson::findOrFail($id); return view('lessons.show', compact('lesson')); } public function edit($id){ $lesson = Lesson::findOrFail($id); $courses = Course::all(); return view('lessons.edit', compact('lesson', 'courses')); } public function update(Request $request, $id){ $request->validate([ 'name' => 'required', 'course_id' => 'required', 'type' => 'required', 'status' => 'required', ]); $lesson = Lesson::findOrFail($id); $lesson->update([ 'name' => $request->name, 'description' => '', 'course_id' => $request->course_id, 'type' => $request->type, 'video_url' => $request->video_url, 'google_url' => $request->google_url, 'free' => 'yes', 'status' => $request->status, ]); if($request->hasFile('file')){ $filename = time().'.'.$request->file->getClientOriginalExtension(); $request->file->move(public_path('attachments'), $filename); $lesson->file = $filename; $lesson->file_name = $request->file->getClientOriginalName(); $lesson->save(); // Storage::disk('local')->put($filename, (string)$request->file, 'public'); } if($request->video_url){ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://fast.wistia.com/oembed.json?url=". $request->video_url ."?embedType=api&handle=oEmbedVideo", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_TIMEOUT => 30000, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( // Set Here Your Requesred Headers 'Content-Type: application/json', ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { $duration = 0; } else { $duration = json_decode($response)->duration; } } $lesson->time = isset($duration) ? $duration : null; $lesson->save(); if($request->type == 'qa'){ $questions = $request->question_titles; LessonQuestion::where('lesson_id', $lesson->id)->delete(); foreach ($questions as $key => $item) { if($item != '' && $request->question_answers[$key] != ''){ LessonQuestion::create([ 'lesson_id' => $lesson->id, 'question' => $item, 'answer' => $request->question_answers[$key], ]); } } } return redirect()->route('lesson-show', $lesson->id); } public function delete($id){ $lesson = Lesson::findOrFail($id); $lesson->delete(); return redirect()->back(); } public function order_lessons_ajax(Request $request) { $lessons_ids = explode(',', $request->lessons_in_order); foreach ($lessons_ids as $key => $lesson_id) { $lesson = Lesson::findOrFail($lesson_id); $lesson->update(['order' => $key]); } return response()->json(['responseText' => 'Ordinea a fost salvata cu success!'], 200); } }
Back