Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace App\Http\Controllers; use App\Common; use App\Models\Lesson; use App\Mode..
Decoded Output download
<?php
namespace App\Http\Controllers; use App\Common; use App\Models\Lesson; use App\Models\LibraryFile; use App\Models\LibraryFileUserPermission; use App\Models\SlideApproveLog; use App\Models\SlideExercise; use App\Models\SlideExerciseAudio; use App\Models\SlideExerciseJson; use App\Models\SlideExerciseMasterJson; use App\Models\SlideExerciseVideo; use App\Models\SlideExerciseZip; use App\Models\Teacher; use App\PermissionManager; use App\Util\EMp3; use FFMpeg\FFMpeg; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\File; class SlideExerciseController extends ControllerTeacher { public function __construct() { $this->middleware("auth"); } function checkPermission($lesson_id, $slide_id = 0) { if (PermissionManager::IsAdmin()) { return true; } if ($lesson_id == 0) { $slide = SlideExercise::find($slide_id); if (!isset($slide)) { abort(403); } $lesson_id = $slide->SectionId; } $libFile = LibraryFile::where("Type", LibraryFile::TYPE_EXERCISE)->where("OrganizationId", Teacher::GetOrganizationId())->where("ContentId", $lesson_id)->where("DeletedFlag", 0)->first(); if (PermissionManager::IsOrganizationAdmin()) { if ($libFile->OrganizationId == Teacher::GetOrganizationId()) { return true; } } if ($libFile->OwnerId == 0 || $libFile->OwnerId == Teacher::Current()->Id) { return true; } $ids = array($libFile->Id, $libFile->P1, $libFile->P2, $libFile->P3, $libFile->P4); $ids = array_filter($ids, function ($item) { return $item > 0; }); $filePermission = LibraryFileUserPermission::whereIn("FileId", $ids)->where("UserId", Teacher::Current()->Id)->where("Action", LibraryFileUserPermission::ACTION_EDIT)->first(); if (isset($filePermission)) { return true; } abort(403); } public function index($lesson_id) { $lesson = Lesson::find($lesson_id); $mgr = new SlideExercise(); $exerciseList = $mgr->getListExerciseBySection($lesson->Id, $lesson->ContentVersion); return view("content.slide_exercise.make", compact("exerciseList", "lesson")); } public function indexBeta($lesson_id) { $this->checkPermission($lesson_id); $lesson = Lesson::find($lesson_id); $mgr = new SlideExercise(); $exerciseList = $mgr->getListExerciseBySection($lesson->Id, $lesson->ContentVersion); return view("beta.content.make_exercise.make", compact("exerciseList", "lesson")); } public function getJsonPage(Request $request) { $slide_id = $request->get("slideId"); $this->checkPermission(0, $slide_id); $slide = SlideExerciseJson::where("ExerciseId", intval($slide_id))->first(); if (isset($slide)) { $json_str = $slide->json_save != '' ? $slide->json_save : Common::SlideDefault(); return response()->json(array("pageJson" => $json_str)); } return response()->json(array("pageJson" => Common::SlideDefault())); } public function newPage(Request $request) { $sectionId = $request->get("sectionId"); $this->checkPermission($sectionId); $slideId = $request->get("slideId"); if ($slideId != '') { $current_slide = SlideExercise::find($slideId); } $json_save = $request->get("json_save"); $object = Lesson::where("Id", $sectionId)->first(); $ex_mgr = new SlideExercise(); $exercise = array(); if (!isset($current_slide)) { $exercise["Index"] = (int) ($ex_mgr->getMaxIndex($object->Id) + 1); } else { $exercise["Index"] = $current_slide->Index + 1; $exercises = SlideExercise::where("Index", ">", $current_slide->Index)->where("DeletedFlag", 0)->where("SectionId", $sectionId)->where("Version", $object->ContentVersion)->get(); foreach ($exercises as $ex) { $ex->increment("Index"); $ex->save(); } } $exercise["Width"] = config("edulive.canvas_size"); $exercise["Height"] = config("edulive.canvas_size") * 297 / 210; $exercise["Version"] = $object->ContentVersion; $exercise["SectionId"] = $object->Id; $ex_obj = $ex_mgr->create($exercise); if (!isset($json_save)) { $json_save = Common::SlideDefault(); } SlideExerciseJson::saveJson($ex_obj->Id, $json_save); $return = array("box" => Common::CreateBox($ex_obj->Id, '', $ex_obj->Id, "it-box-active", $exercise["Index"], $exercise["SectionId"]), "newSlideID" => $ex_obj->Id, "json" => $json_save); return response()->json($return); } public function newPageNew(Request $request) { $sectionId = $request->get("sectionId"); $this->checkPermission($sectionId); $slideId = $request->get("slideId"); if ($slideId != '') { $current_slide = SlideExercise::find($slideId); } $json_save = $request->get("json_save"); $object = Lesson::where("Id", $sectionId)->first(); $ex_mgr = new SlideExercise(); $exercise = array(); if (!isset($current_slide)) { $exercise["Index"] = (int) ($ex_mgr->getMaxIndex($object->Id) + 1); } else { $exercise["Index"] = $current_slide->Index + 1; $exercises = SlideExercise::where("Index", ">", $current_slide->Index)->where("DeletedFlag", 0)->where("SectionId", $sectionId)->where("Version", $object->ContentVersion)->get(); foreach ($exercises as $ex) { $ex->increment("Index"); $ex->save(); } } $exercise["Width"] = config("edulive.canvas_size"); $exercise["Height"] = config("edulive.canvas_size") * 297 / 210; $exercise["Version"] = $object->ContentVersion; $exercise["SectionId"] = $object->Id; $ex_obj = $ex_mgr->create($exercise); if (!isset($json_save)) { $json_save = Common::SlideDefault(); } SlideExerciseJson::saveJson($ex_obj->Id, $json_save); $return = array("box" => Common::CreateBox($ex_obj->Id, '', $ex_obj->Id, '', $exercise["Index"], $exercise["SectionId"]), "newSlideID" => $ex_obj->Id, "json" => $json_save); return response()->json($return); } public function autoSavePage(Request $request) { $slideId = $request->get("slideId"); $this->checkPermission(0, $slideId); $json_save = $request->get("json_save"); $totalPoint = $request->get("totalPoint"); if (isset($json_save)) { SlideExerciseJson::autoSaveJson($slideId, Common::RemoveBom($json_save)); } $exercise = SlideExercise::find($slideId); if (isset($exercise)) { $exercise->TotalPoint = $totalPoint; $exercise->save(); } $return = array("status" => date("m/d/Y H:i:s") . ": Auto Save slide OK"); if (!empty($return)) { return response()->json($return); } else { return response()->json(''); } } public function deletePage(Request $request) { $slideid = $request->get("slideId"); $this->checkPermission(0, $slideid); $slideMgr = new SlideExercise(); $slideMgr->deleteSlide($slideid); $return = array("slideId" => $slideid); return response()->json($return); } public function deleteMultiPages(Request $request) { $slideArr = $request->get("slideArr"); $this->checkPermission(0, $slideArr[0]); $slideMgr = new SlideExercise(); for ($i = 0; $i < count($slideArr); $i++) { $slideMgr->deleteSlide($slideArr[$i]); $return["slideId" . $i] = $slideArr[$i]; } return response()->json($return); } public function approveContent(Request $request) { $sectionId = $request->get("section_id"); $this->checkPermission($sectionId); DB::beginTransaction(); try { $lesson = Lesson::find($sectionId); if (!isset($lesson)) { DB::rollBack(); SlideApproveLog::SaveExerciseLog($sectionId, false, "Lesson not found"); return response()->json(array("status" => false, "message" => "Lesson not found")); } $organizationId = Teacher::GetOrganizationId(); $slides = $lesson->SlideExercises(); $lesson->ContentVersion = $lesson->ContentVersion + 1; $lesson->UpdatedAt = date("Y-m-d H:i:s"); $image_destination = config("env.image_destination"); $zip_json = new \ZipArchive(); $nameFormatZip = Common::GetFileName("/Exercise/{$organizationId}", "/getExercise", "zip"); if (!File::isDirectory($image_destination . "/Exercise/" . $organizationId)) { File::makeDirectory($image_destination . "/Exercise/" . $organizationId); } $zip_json_status = $zip_json->open($image_destination . $nameFormatZip["path"], \ZipArchive::CREATE); foreach ($slides as $slide) { $new = $slide->replicate(); $nameFormatJson = Common::GetFileName("/Exercise/{$organizationId}", "/getExercise", "json"); $new->FileJsonUrl = $nameFormatJson["path"]; $new->Version = $lesson->ContentVersion; $new->save(); SlideExerciseJson::cloneJsonSave($slide->Id, $new->Id); $slideJson = SlideExerciseJson::where("ExerciseId", intval($new->Id))->first(); $slide_json_str = Common::SlideDefault(); if (isset($slideJson) && isset($slideJson->json_save)) { $slide_json_str = $slideJson->json_save; } File::put($image_destination . $new->FileJsonUrl, $slide_json_str); if ($zip_json_status === TRUE) { $zip_json->addFromString($nameFormatJson["name_short"] . ".json", $slide_json_str); } $audios = (new SlideExerciseAudio())->getListAudio($slide->Id); if (isset($audios)) { foreach ($audios as $audio) { $audio->SlideExerciseId = $new->Id; $audio->save(); } } $videos = (new SlideExerciseVideo())->getListVideo($slide->Id); if (isset($videos)) { foreach ($videos as $video) { $video->SlideExerciseId = $new->Id; $video->save(); } } } if ($zip_json_status === TRUE) { $zip_json->close(); $slide_zip = array(); $slide_zip["SectionId"] = $lesson->Id; $slide_zip["FileJsonUrl"] = $nameFormatZip["name"]; $slide_zip["Version"] = $lesson->ContentVersion; $slide_zip["Size"] = File::size($image_destination . $nameFormatZip["path"]) / 1024; Common::IncreaseStorage(Teacher::GetOrganizationId(), $slide_zip["Size"]); SlideExerciseZip::create($slide_zip); } $lesson->save(); foreach ($slides as $slide) { SlideExerciseJson::saveJson(intval($slide->Id), ''); } DB::commit(); SlideApproveLog::SaveExerciseLog($sectionId, true, "Version: {$lesson->ContentVersion}"); return response()->json(array("status" => true)); } catch (\Exception $e) { DB::rollBack(); SlideApproveLog::SaveExerciseLog($sectionId, true, $e->getMessage()); return response()->json(array("status" => false, "message" => "Internal server error")); } } public function changeIndex(Request $request) { $slides = $request->get("slides"); foreach ($slides as $slide) { $arr = explode("_", $slide); $obj = SlideExercise::find($arr[0], array("Id", "Index")); if (isset($obj)) { $obj->Index = $arr[1]; $obj->save(); } } return response()->json(''); } public function zipFileAndDownload(Request $request) { try { $json_all = $request->get("json_all"); $organizationId = Teacher::GetOrganizationId(); $json_all = json_decode($json_all, true); $zip_json = new \ZipArchive(); $image_destination = config("env.image_destination"); $nameFormat = Common::GetFileName("/Exercise/{$organizationId}", "/getExercise", "zip"); if (!File::isDirectory($image_destination . "/Exercise/" . $organizationId)) { File::makeDirectory($image_destination . "/Exercise/" . $organizationId); } $zip_json->open($image_destination . $nameFormat["path"], \ZipArchive::CREATE); foreach ($json_all as $key => $content) { $zip_json->addFromString($key . ".json", $content); $zip_json->setEncryptionName($key . ".json", \ZipArchive::EM_AES_256, "edulive_secret"); } $zip_json->close(); return response()->file($image_destination . $nameFormat["path"]); } catch (\Exception $e) { die; } } public function importZipFile(Request $request) { $zip_file = $request->file("zip_file"); $section_id = $request->get("section_id"); $this->checkPermission($section_id); $lesson = Lesson::where("Id", $section_id)->first(); try { $zip_json = new \ZipArchive(); $slide_mgr = new SlideExercise(); $max_index = $slide_mgr->getMaxIndex($lesson->Id) + 1; if ($zip_json->open($zip_file->getRealPath())) { $zip_json->setPassword("edulive_secret"); for ($i = 0; $i < $zip_json->numFiles; $i++) { $slide_json = $zip_json->getFromIndex($i); $data = array(); $data["Index"] = intval($max_index + $i); $data["Width"] = config("edulive.canvas_size"); $data["Height"] = config("edulive.canvas_size") * 297 / 210; $data["Version"] = $lesson->ContentVersion; $data["SectionId"] = $lesson->Id; $slide_obj = $slide_mgr->create($data); SlideExerciseJson::saveJson($slide_obj->Id, $slide_json); } $zip_json->close(); } return response()->json(array("status" => true)); } catch (\Exception $e) { return response()->json(array("status" => false, "message" => "Internal server error")); } } public function createAudio(Request $request) { $upload_destination = config("env.upload_destination"); $this->checkPermission(0, $request->get("exercise_id")); try { $organizationId = Teacher::GetOrganizationId(); if (!File::isDirectory($upload_destination . "/" . $organizationId)) { File::makeDirectory($upload_destination . "/" . $organizationId); } $data = array(); $audio = $request->file("slide_audio"); $time = uniqid() . Common::generateRandomString(7); $data["SlideExerciseId"] = $request->get("exercise_id"); $data["Size"] = round($audio->getSize() / 1024); if (Common::CheckLimitStorage($organizationId, $audio->getSize())) { return response()->json(array(trans("lang.000200_116"))); } Common::IncreaseStorage($organizationId, $data["Size"]); $audio_url = $organizationId . "/" . "{$time}.mp3"; if (substr(php_uname(), 0, 7) == "Windows") { $ffmpeg = FFMpeg::create(array("ffmpeg.binaries" => config("env.ffmpeg_path") . "ffmpeg.exe", "ffprobe.binaries" => config("env.ffmpeg_path") . "ffprobe.exe", "timeout" => 3600, "ffmpeg.threads" => 12)); } else { $ffmpeg = FFMpeg::create(array("ffmpeg.binaries" => config("env.ffmpeg_path") . "ffmpeg", "ffprobe.binaries" => config("env.ffmpeg_path") . "ffprobe", "timeout" => 3600, "ffmpeg.threads" => 12)); } $audio_ff = $ffmpeg->open($audio->getRealPath()); $duration = $ffmpeg->getFFProbe()->format($audio->getRealPath())->get("duration"); $format = new EMp3(); $audio_ff->save($format, $upload_destination . "/{$audio_url}"); $data["Url"] = $audio_url; $audio = SlideExerciseAudio::create($data); $result = array("Audio_Id" => $audio->Id, "Url" => $audio->Url, "Duration" => $duration, "Size" => $data["Size"]); return response()->json($result); } catch (\Exception $e) { return response()->json(array("Internal server error")); } } public function deleteAudio(Request $request) { $audio_id = $request->get("audio_id"); $audio = SlideExerciseAudio::find($audio_id); if (isset($audio)) { Common::DecreaseStorage(Teacher::GetOrganizationId(), $audio->Size); $audio->delete(); } return response()->json("delete ok"); } public function createVideo(Request $request) { $this->checkPermission(0, $request->get("exercise_id")); $upload_destination = config("env.upload_destination"); $organizationId = Teacher::GetOrganizationId(); try { $video_content = $request->file("slide_video"); $exercise_id = $request->get("exercise_id"); $data = array(); $data["SlideExerciseId"] = $exercise_id; $data["Size"] = $video_content->getSize() / 1024; if (Common::CheckLimitStorage($organizationId, $video_content->getSize())) { return response()->json(array("message" => trans("lang.000200_116"))); } Common::IncreaseStorage($organizationId, $data["Size"]); $file_etc = $video_content->getClientOriginalExtension(); $time = uniqid() . Common::generateRandomString(7); $data["Url"] = "{$organizationId}/{$time}.{$file_etc}"; $destination_path = $upload_destination . "/" . $organizationId; if (!File::isDirectory($destination_path)) { File::makeDirectory($destination_path); } $video_content->move($destination_path, "{$time}.{$file_etc}"); $video = SlideExerciseVideo::create($data); $result = array("Video_Id" => $video->Id, "Video_Url" => $video->Url); return response()->json($result); } catch (\Exception $e) { return response()->json(''); } } public function deleteVideo(Request $request) { $video_id = $request->get("video_id"); $video = SlideExerciseVideo::find($video_id); if (isset($video)) { Common::DecreaseStorage(Teacher::GetOrganizationId(), $video->Size); $video->delete(); } return response()->json("delete ok"); } public function getMasterJson(Request $request) { $sectionId = $request->get("section_id"); $this->checkPermission($sectionId); $slide = SlideExerciseMasterJson::where("SectionId", intval($sectionId))->first(); if (isset($slide)) { return response()->json(array("masterJson" => $slide->master_json)); } return response()->json(array("masterJson" => '')); } public function updateMasterJson(Request $request) { $section_id = $request->get("section_id"); $this->checkPermission($section_id); $json_save = $request->get("master_json"); if (isset($json_save)) { SlideExerciseMasterJson::SaveJson($section_id, Common::RemoveBom($json_save)); } $return = array("status" => date("m/d/Y H:i:s") . ": Save slide OK"); if (!empty($return)) { return response()->json($return); } else { return response()->json(''); } } public function changeCondition(Request $request) { $section_id = $request->get("section_id"); $this->checkPermission($section_id); $condition = $request->get("condition"); $lesson = Lesson::find($section_id); if (isset($lesson)) { $lesson->PassCondition = $condition; $lesson->save(); $return = array("status" => 1); } else { $return = array("status" => 0); } return response()->json($return); } } ?>
Did this file decode correctly?
Original Code
<?php
namespace App\Http\Controllers; use App\Common; use App\Models\Lesson; use App\Models\LibraryFile; use App\Models\LibraryFileUserPermission; use App\Models\SlideApproveLog; use App\Models\SlideExercise; use App\Models\SlideExerciseAudio; use App\Models\SlideExerciseJson; use App\Models\SlideExerciseMasterJson; use App\Models\SlideExerciseVideo; use App\Models\SlideExerciseZip; use App\Models\Teacher; use App\PermissionManager; use App\Util\EMp3; use FFMpeg\FFMpeg; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\File; class SlideExerciseController extends ControllerTeacher { public function __construct() { $this->middleware("\141\165\164\150"); } function checkPermission($lesson_id, $slide_id = 0) { if (PermissionManager::IsAdmin()) { return true; } if ($lesson_id == 0) { $slide = SlideExercise::find($slide_id); if (!isset($slide)) { abort(403); } $lesson_id = $slide->SectionId; } $libFile = LibraryFile::where("\124\171\160\x65", LibraryFile::TYPE_EXERCISE)->where("\x4f\x72\x67\141\x6e\x69\172\141\x74\x69\x6f\156\x49\x64", Teacher::GetOrganizationId())->where("\x43\157\156\164\x65\x6e\164\x49\x64", $lesson_id)->where("\x44\145\154\x65\x74\x65\x64\x46\x6c\x61\x67", 0)->first(); if (PermissionManager::IsOrganizationAdmin()) { if ($libFile->OrganizationId == Teacher::GetOrganizationId()) { return true; } } if ($libFile->OwnerId == 0 || $libFile->OwnerId == Teacher::Current()->Id) { return true; } $ids = array($libFile->Id, $libFile->P1, $libFile->P2, $libFile->P3, $libFile->P4); $ids = array_filter($ids, function ($item) { return $item > 0; }); $filePermission = LibraryFileUserPermission::whereIn("\106\151\154\x65\111\x64", $ids)->where("\x55\x73\145\x72\111\144", Teacher::Current()->Id)->where("\x41\143\x74\151\x6f\156", LibraryFileUserPermission::ACTION_EDIT)->first(); if (isset($filePermission)) { return true; } abort(403); } public function index($lesson_id) { $lesson = Lesson::find($lesson_id); $mgr = new SlideExercise(); $exerciseList = $mgr->getListExerciseBySection($lesson->Id, $lesson->ContentVersion); return view("\143\x6f\x6e\164\x65\156\164\x2e\x73\x6c\x69\144\x65\137\145\x78\x65\x72\x63\x69\x73\x65\56\155\x61\153\145", compact("\x65\x78\x65\162\x63\x69\163\145\114\x69\163\x74", "\x6c\145\x73\x73\x6f\x6e")); } public function indexBeta($lesson_id) { $this->checkPermission($lesson_id); $lesson = Lesson::find($lesson_id); $mgr = new SlideExercise(); $exerciseList = $mgr->getListExerciseBySection($lesson->Id, $lesson->ContentVersion); return view("\x62\x65\164\x61\56\x63\157\x6e\164\145\x6e\164\x2e\155\x61\x6b\145\137\x65\x78\145\162\x63\x69\163\x65\56\x6d\141\153\x65", compact("\145\170\145\162\143\x69\163\x65\x4c\x69\163\x74", "\x6c\x65\163\163\x6f\156")); } public function getJsonPage(Request $request) { $slide_id = $request->get("\163\x6c\151\144\145\111\x64"); $this->checkPermission(0, $slide_id); $slide = SlideExerciseJson::where("\105\170\145\x72\143\151\163\x65\x49\x64", intval($slide_id))->first(); if (isset($slide)) { $json_str = $slide->json_save != '' ? $slide->json_save : Common::SlideDefault(); return response()->json(array("\x70\x61\147\x65\x4a\x73\x6f\x6e" => $json_str)); } return response()->json(array("\x70\141\147\x65\112\163\x6f\156" => Common::SlideDefault())); } public function newPage(Request $request) { $sectionId = $request->get("\x73\145\143\164\151\157\156\111\x64"); $this->checkPermission($sectionId); $slideId = $request->get("\x73\x6c\151\x64\145\111\144"); if ($slideId != '') { $current_slide = SlideExercise::find($slideId); } $json_save = $request->get("\x6a\163\x6f\x6e\x5f\x73\141\x76\145"); $object = Lesson::where("\x49\x64", $sectionId)->first(); $ex_mgr = new SlideExercise(); $exercise = array(); if (!isset($current_slide)) { $exercise["\x49\x6e\144\145\170"] = (int) ($ex_mgr->getMaxIndex($object->Id) + 1); } else { $exercise["\111\156\x64\145\170"] = $current_slide->Index + 1; $exercises = SlideExercise::where("\111\156\x64\145\x78", "\76", $current_slide->Index)->where("\104\145\x6c\x65\x74\145\144\x46\154\x61\x67", 0)->where("\x53\x65\143\x74\x69\157\156\x49\x64", $sectionId)->where("\126\145\x72\163\x69\x6f\156", $object->ContentVersion)->get(); foreach ($exercises as $ex) { $ex->increment("\x49\156\x64\x65\170"); $ex->save(); } } $exercise["\127\x69\x64\164\x68"] = config("\145\x64\x75\x6c\151\166\x65\56\143\141\x6e\x76\x61\163\x5f\x73\x69\x7a\x65"); $exercise["\110\x65\x69\147\x68\164"] = config("\145\144\x75\x6c\151\x76\145\x2e\x63\141\156\166\x61\x73\x5f\163\151\x7a\145") * 297 / 210; $exercise["\126\145\x72\x73\x69\157\156"] = $object->ContentVersion; $exercise["\x53\x65\x63\x74\x69\157\156\x49\x64"] = $object->Id; $ex_obj = $ex_mgr->create($exercise); if (!isset($json_save)) { $json_save = Common::SlideDefault(); } SlideExerciseJson::saveJson($ex_obj->Id, $json_save); $return = array("\142\x6f\170" => Common::CreateBox($ex_obj->Id, '', $ex_obj->Id, "\151\x74\x2d\142\x6f\x78\55\141\143\x74\151\166\x65", $exercise["\111\156\x64\x65\170"], $exercise["\123\x65\143\x74\x69\x6f\x6e\x49\x64"]), "\156\145\167\123\154\x69\x64\x65\111\104" => $ex_obj->Id, "\152\x73\157\156" => $json_save); return response()->json($return); } public function newPageNew(Request $request) { $sectionId = $request->get("\163\x65\143\x74\x69\157\156\111\144"); $this->checkPermission($sectionId); $slideId = $request->get("\x73\x6c\151\x64\145\111\144"); if ($slideId != '') { $current_slide = SlideExercise::find($slideId); } $json_save = $request->get("\152\163\x6f\156\x5f\x73\141\x76\x65"); $object = Lesson::where("\111\144", $sectionId)->first(); $ex_mgr = new SlideExercise(); $exercise = array(); if (!isset($current_slide)) { $exercise["\111\x6e\x64\145\x78"] = (int) ($ex_mgr->getMaxIndex($object->Id) + 1); } else { $exercise["\x49\x6e\x64\x65\x78"] = $current_slide->Index + 1; $exercises = SlideExercise::where("\111\156\144\x65\x78", "\x3e", $current_slide->Index)->where("\x44\145\154\145\164\145\x64\106\x6c\x61\x67", 0)->where("\x53\x65\143\x74\x69\x6f\x6e\x49\144", $sectionId)->where("\126\x65\x72\163\151\x6f\x6e", $object->ContentVersion)->get(); foreach ($exercises as $ex) { $ex->increment("\x49\156\144\145\170"); $ex->save(); } } $exercise["\127\x69\144\164\x68"] = config("\145\x64\165\x6c\151\166\x65\x2e\143\x61\x6e\166\x61\x73\x5f\163\x69\172\145"); $exercise["\110\145\151\x67\150\x74"] = config("\x65\x64\x75\154\x69\166\145\56\143\x61\156\x76\x61\x73\x5f\163\x69\172\145") * 297 / 210; $exercise["\126\145\x72\x73\x69\x6f\x6e"] = $object->ContentVersion; $exercise["\x53\145\143\164\151\x6f\x6e\111\144"] = $object->Id; $ex_obj = $ex_mgr->create($exercise); if (!isset($json_save)) { $json_save = Common::SlideDefault(); } SlideExerciseJson::saveJson($ex_obj->Id, $json_save); $return = array("\142\x6f\170" => Common::CreateBox($ex_obj->Id, '', $ex_obj->Id, '', $exercise["\x49\x6e\144\x65\170"], $exercise["\123\x65\143\x74\x69\x6f\x6e\x49\144"]), "\x6e\x65\x77\x53\154\x69\x64\x65\111\x44" => $ex_obj->Id, "\x6a\x73\157\156" => $json_save); return response()->json($return); } public function autoSavePage(Request $request) { $slideId = $request->get("\x73\x6c\x69\144\145\111\144"); $this->checkPermission(0, $slideId); $json_save = $request->get("\152\x73\x6f\x6e\137\x73\141\166\x65"); $totalPoint = $request->get("\164\x6f\x74\x61\x6c\x50\157\x69\x6e\164"); if (isset($json_save)) { SlideExerciseJson::autoSaveJson($slideId, Common::RemoveBom($json_save)); } $exercise = SlideExercise::find($slideId); if (isset($exercise)) { $exercise->TotalPoint = $totalPoint; $exercise->save(); } $return = array("\163\x74\141\164\165\x73" => date("\x6d\x2f\144\x2f\131\40\110\72\151\72\x73") . "\72\x20\101\x75\164\157\x20\123\141\x76\x65\40\x73\154\x69\144\145\40\x4f\113"); if (!empty($return)) { return response()->json($return); } else { return response()->json(''); } } public function deletePage(Request $request) { $slideid = $request->get("\163\x6c\x69\x64\x65\x49\x64"); $this->checkPermission(0, $slideid); $slideMgr = new SlideExercise(); $slideMgr->deleteSlide($slideid); $return = array("\163\x6c\151\144\145\111\144" => $slideid); return response()->json($return); } public function deleteMultiPages(Request $request) { $slideArr = $request->get("\x73\x6c\151\x64\145\101\162\162"); $this->checkPermission(0, $slideArr[0]); $slideMgr = new SlideExercise(); for ($i = 0; $i < count($slideArr); $i++) { $slideMgr->deleteSlide($slideArr[$i]); $return["\163\154\151\144\x65\x49\144" . $i] = $slideArr[$i]; } return response()->json($return); } public function approveContent(Request $request) { $sectionId = $request->get("\x73\x65\143\x74\151\x6f\156\137\151\144"); $this->checkPermission($sectionId); DB::beginTransaction(); try { $lesson = Lesson::find($sectionId); if (!isset($lesson)) { DB::rollBack(); SlideApproveLog::SaveExerciseLog($sectionId, false, "\x4c\x65\163\x73\157\x6e\x20\x6e\157\164\x20\146\157\165\156\x64"); return response()->json(array("\163\x74\141\164\165\163" => false, "\x6d\145\163\x73\141\x67\145" => "\114\145\163\163\157\156\x20\x6e\157\x74\40\x66\157\x75\x6e\x64")); } $organizationId = Teacher::GetOrganizationId(); $slides = $lesson->SlideExercises(); $lesson->ContentVersion = $lesson->ContentVersion + 1; $lesson->UpdatedAt = date("\131\x2d\x6d\55\144\40\110\x3a\151\x3a\163"); $image_destination = config("\145\156\166\56\x69\155\x61\x67\145\x5f\x64\145\163\x74\151\156\x61\164\151\x6f\x6e"); $zip_json = new \ZipArchive(); $nameFormatZip = Common::GetFileName("\x2f\x45\x78\145\162\143\x69\x73\x65\57{$organizationId}", "\57\x67\145\x74\105\170\x65\x72\x63\151\163\145", "\x7a\x69\x70"); if (!File::isDirectory($image_destination . "\x2f\105\x78\x65\162\x63\151\163\145\57" . $organizationId)) { File::makeDirectory($image_destination . "\x2f\x45\170\x65\162\x63\151\163\x65\x2f" . $organizationId); } $zip_json_status = $zip_json->open($image_destination . $nameFormatZip["\160\x61\164\150"], \ZipArchive::CREATE); foreach ($slides as $slide) { $new = $slide->replicate(); $nameFormatJson = Common::GetFileName("\x2f\105\170\x65\x72\x63\x69\163\145\57{$organizationId}", "\57\x67\x65\x74\x45\170\145\162\x63\151\x73\x65", "\152\x73\157\x6e"); $new->FileJsonUrl = $nameFormatJson["\160\x61\x74\x68"]; $new->Version = $lesson->ContentVersion; $new->save(); SlideExerciseJson::cloneJsonSave($slide->Id, $new->Id); $slideJson = SlideExerciseJson::where("\x45\170\145\162\143\151\x73\145\111\144", intval($new->Id))->first(); $slide_json_str = Common::SlideDefault(); if (isset($slideJson) && isset($slideJson->json_save)) { $slide_json_str = $slideJson->json_save; } File::put($image_destination . $new->FileJsonUrl, $slide_json_str); if ($zip_json_status === TRUE) { $zip_json->addFromString($nameFormatJson["\x6e\141\x6d\145\x5f\x73\x68\x6f\x72\164"] . "\x2e\152\163\157\156", $slide_json_str); } $audios = (new SlideExerciseAudio())->getListAudio($slide->Id); if (isset($audios)) { foreach ($audios as $audio) { $audio->SlideExerciseId = $new->Id; $audio->save(); } } $videos = (new SlideExerciseVideo())->getListVideo($slide->Id); if (isset($videos)) { foreach ($videos as $video) { $video->SlideExerciseId = $new->Id; $video->save(); } } } if ($zip_json_status === TRUE) { $zip_json->close(); $slide_zip = array(); $slide_zip["\x53\x65\x63\164\151\157\x6e\111\x64"] = $lesson->Id; $slide_zip["\x46\x69\154\x65\x4a\x73\x6f\x6e\125\x72\x6c"] = $nameFormatZip["\x6e\141\155\145"]; $slide_zip["\126\x65\x72\163\151\157\x6e"] = $lesson->ContentVersion; $slide_zip["\x53\151\172\x65"] = File::size($image_destination . $nameFormatZip["\160\141\164\x68"]) / 1024; Common::IncreaseStorage(Teacher::GetOrganizationId(), $slide_zip["\123\151\172\145"]); SlideExerciseZip::create($slide_zip); } $lesson->save(); foreach ($slides as $slide) { SlideExerciseJson::saveJson(intval($slide->Id), ''); } DB::commit(); SlideApproveLog::SaveExerciseLog($sectionId, true, "\x56\x65\x72\163\x69\157\x6e\x3a\x20{$lesson->ContentVersion}"); return response()->json(array("\163\x74\141\x74\x75\163" => true)); } catch (\Exception $e) { DB::rollBack(); SlideApproveLog::SaveExerciseLog($sectionId, true, $e->getMessage()); return response()->json(array("\x73\164\x61\164\x75\x73" => false, "\x6d\145\x73\163\x61\x67\145" => "\111\x6e\x74\145\162\x6e\141\154\x20\163\x65\162\x76\x65\x72\x20\145\162\x72\x6f\162")); } } public function changeIndex(Request $request) { $slides = $request->get("\163\154\151\144\145\163"); foreach ($slides as $slide) { $arr = explode("\x5f", $slide); $obj = SlideExercise::find($arr[0], array("\x49\144", "\x49\x6e\x64\x65\x78")); if (isset($obj)) { $obj->Index = $arr[1]; $obj->save(); } } return response()->json(''); } public function zipFileAndDownload(Request $request) { try { $json_all = $request->get("\x6a\x73\157\156\x5f\x61\x6c\x6c"); $organizationId = Teacher::GetOrganizationId(); $json_all = json_decode($json_all, true); $zip_json = new \ZipArchive(); $image_destination = config("\145\x6e\166\56\x69\x6d\x61\147\x65\137\x64\145\163\164\x69\x6e\141\164\151\157\x6e"); $nameFormat = Common::GetFileName("\x2f\x45\x78\x65\162\x63\x69\x73\x65\x2f{$organizationId}", "\x2f\147\x65\164\105\170\145\x72\x63\151\163\145", "\x7a\x69\x70"); if (!File::isDirectory($image_destination . "\57\105\x78\145\162\x63\x69\x73\145\57" . $organizationId)) { File::makeDirectory($image_destination . "\x2f\105\x78\145\x72\143\x69\163\x65\x2f" . $organizationId); } $zip_json->open($image_destination . $nameFormat["\x70\x61\164\150"], \ZipArchive::CREATE); foreach ($json_all as $key => $content) { $zip_json->addFromString($key . "\56\x6a\163\x6f\156", $content); $zip_json->setEncryptionName($key . "\56\x6a\163\x6f\156", \ZipArchive::EM_AES_256, "\x65\144\165\154\151\166\x65\137\x73\x65\x63\x72\x65\164"); } $zip_json->close(); return response()->file($image_destination . $nameFormat["\160\141\164\x68"]); } catch (\Exception $e) { die; } } public function importZipFile(Request $request) { $zip_file = $request->file("\x7a\x69\x70\x5f\x66\x69\154\x65"); $section_id = $request->get("\x73\145\x63\164\x69\157\x6e\x5f\151\144"); $this->checkPermission($section_id); $lesson = Lesson::where("\111\144", $section_id)->first(); try { $zip_json = new \ZipArchive(); $slide_mgr = new SlideExercise(); $max_index = $slide_mgr->getMaxIndex($lesson->Id) + 1; if ($zip_json->open($zip_file->getRealPath())) { $zip_json->setPassword("\x65\144\x75\154\151\x76\145\137\163\145\143\162\145\x74"); for ($i = 0; $i < $zip_json->numFiles; $i++) { $slide_json = $zip_json->getFromIndex($i); $data = array(); $data["\x49\x6e\144\145\x78"] = intval($max_index + $i); $data["\x57\151\144\x74\x68"] = config("\145\144\x75\154\x69\166\145\x2e\x63\x61\x6e\x76\141\x73\137\163\151\x7a\145"); $data["\110\145\151\147\150\x74"] = config("\145\x64\x75\x6c\x69\x76\x65\56\143\141\x6e\x76\141\163\137\x73\151\172\145") * 297 / 210; $data["\126\x65\162\x73\151\x6f\156"] = $lesson->ContentVersion; $data["\x53\145\143\164\151\x6f\156\111\144"] = $lesson->Id; $slide_obj = $slide_mgr->create($data); SlideExerciseJson::saveJson($slide_obj->Id, $slide_json); } $zip_json->close(); } return response()->json(array("\x73\164\141\x74\165\163" => true)); } catch (\Exception $e) { return response()->json(array("\x73\x74\141\164\165\x73" => false, "\155\x65\163\163\x61\147\x65" => "\x49\x6e\x74\x65\162\x6e\141\x6c\40\163\145\162\166\145\x72\40\x65\162\x72\x6f\x72")); } } public function createAudio(Request $request) { $upload_destination = config("\x65\x6e\x76\56\165\x70\x6c\x6f\x61\144\137\144\x65\163\164\151\x6e\x61\164\x69\x6f\x6e"); $this->checkPermission(0, $request->get("\x65\170\x65\162\x63\151\x73\145\137\x69\x64")); try { $organizationId = Teacher::GetOrganizationId(); if (!File::isDirectory($upload_destination . "\x2f" . $organizationId)) { File::makeDirectory($upload_destination . "\57" . $organizationId); } $data = array(); $audio = $request->file("\163\154\151\144\x65\x5f\141\x75\144\x69\157"); $time = uniqid() . Common::generateRandomString(7); $data["\x53\x6c\x69\x64\145\105\x78\x65\x72\143\x69\163\x65\x49\144"] = $request->get("\x65\170\145\162\x63\x69\163\x65\137\x69\144"); $data["\123\x69\x7a\x65"] = round($audio->getSize() / 1024); if (Common::CheckLimitStorage($organizationId, $audio->getSize())) { return response()->json(array(trans("\x6c\141\x6e\147\56\x30\60\60\x32\60\60\137\x31\x31\66"))); } Common::IncreaseStorage($organizationId, $data["\123\x69\x7a\145"]); $audio_url = $organizationId . "\57" . "{$time}\56\155\160\x33"; if (substr(php_uname(), 0, 7) == "\127\151\x6e\x64\157\167\x73") { $ffmpeg = FFMpeg::create(array("\x66\146\155\x70\x65\x67\56\142\151\x6e\141\162\151\x65\163" => config("\145\156\166\x2e\146\x66\155\x70\x65\147\x5f\x70\141\164\150") . "\146\146\x6d\160\x65\147\x2e\145\x78\145", "\146\146\x70\x72\x6f\142\x65\56\x62\151\x6e\x61\162\151\145\x73" => config("\145\156\166\56\146\146\155\x70\145\147\137\x70\x61\x74\150") . "\146\x66\160\162\x6f\142\145\x2e\145\170\145", "\164\x69\155\145\x6f\x75\164" => 3600, "\146\x66\x6d\x70\145\147\x2e\x74\x68\162\x65\141\x64\163" => 12)); } else { $ffmpeg = FFMpeg::create(array("\146\146\x6d\x70\145\x67\x2e\142\151\156\141\162\x69\145\163" => config("\145\156\x76\x2e\146\146\x6d\x70\x65\x67\x5f\160\141\x74\150") . "\x66\146\155\x70\145\x67", "\x66\x66\160\x72\157\x62\x65\x2e\x62\151\156\x61\162\151\x65\163" => config("\x65\156\166\x2e\x66\146\x6d\160\145\147\x5f\x70\141\x74\x68") . "\146\146\160\x72\x6f\x62\145", "\164\151\x6d\x65\157\165\164" => 3600, "\x66\146\155\x70\145\147\x2e\164\150\162\x65\x61\x64\163" => 12)); } $audio_ff = $ffmpeg->open($audio->getRealPath()); $duration = $ffmpeg->getFFProbe()->format($audio->getRealPath())->get("\x64\165\162\141\x74\151\x6f\x6e"); $format = new EMp3(); $audio_ff->save($format, $upload_destination . "\57{$audio_url}"); $data["\125\x72\154"] = $audio_url; $audio = SlideExerciseAudio::create($data); $result = array("\x41\x75\144\151\x6f\x5f\111\144" => $audio->Id, "\125\x72\154" => $audio->Url, "\104\165\x72\x61\164\151\x6f\156" => $duration, "\x53\151\x7a\x65" => $data["\x53\151\x7a\x65"]); return response()->json($result); } catch (\Exception $e) { return response()->json(array("\111\x6e\x74\x65\162\x6e\x61\x6c\x20\x73\145\162\x76\x65\x72\x20\x65\162\x72\157\162")); } } public function deleteAudio(Request $request) { $audio_id = $request->get("\141\x75\x64\x69\x6f\137\151\144"); $audio = SlideExerciseAudio::find($audio_id); if (isset($audio)) { Common::DecreaseStorage(Teacher::GetOrganizationId(), $audio->Size); $audio->delete(); } return response()->json("\x64\145\154\145\164\145\x20\157\153"); } public function createVideo(Request $request) { $this->checkPermission(0, $request->get("\145\170\145\x72\x63\x69\163\x65\x5f\x69\144")); $upload_destination = config("\x65\x6e\166\x2e\x75\160\154\157\141\144\x5f\x64\145\163\x74\151\156\141\x74\151\157\156"); $organizationId = Teacher::GetOrganizationId(); try { $video_content = $request->file("\163\x6c\151\x64\x65\137\x76\151\144\x65\x6f"); $exercise_id = $request->get("\x65\x78\x65\x72\143\x69\163\145\137\151\x64"); $data = array(); $data["\123\154\151\x64\145\105\170\145\x72\143\x69\163\145\111\x64"] = $exercise_id; $data["\x53\151\172\x65"] = $video_content->getSize() / 1024; if (Common::CheckLimitStorage($organizationId, $video_content->getSize())) { return response()->json(array("\x6d\145\163\x73\x61\147\x65" => trans("\154\x61\x6e\147\x2e\60\60\60\x32\60\x30\137\x31\61\x36"))); } Common::IncreaseStorage($organizationId, $data["\123\x69\x7a\145"]); $file_etc = $video_content->getClientOriginalExtension(); $time = uniqid() . Common::generateRandomString(7); $data["\x55\162\x6c"] = "{$organizationId}\57{$time}\56{$file_etc}"; $destination_path = $upload_destination . "\57" . $organizationId; if (!File::isDirectory($destination_path)) { File::makeDirectory($destination_path); } $video_content->move($destination_path, "{$time}\x2e{$file_etc}"); $video = SlideExerciseVideo::create($data); $result = array("\126\151\144\x65\x6f\x5f\111\144" => $video->Id, "\x56\x69\x64\x65\157\137\x55\x72\154" => $video->Url); return response()->json($result); } catch (\Exception $e) { return response()->json(''); } } public function deleteVideo(Request $request) { $video_id = $request->get("\166\151\144\145\x6f\137\151\x64"); $video = SlideExerciseVideo::find($video_id); if (isset($video)) { Common::DecreaseStorage(Teacher::GetOrganizationId(), $video->Size); $video->delete(); } return response()->json("\x64\145\x6c\x65\x74\x65\x20\x6f\153"); } public function getMasterJson(Request $request) { $sectionId = $request->get("\163\145\x63\x74\x69\157\x6e\137\151\x64"); $this->checkPermission($sectionId); $slide = SlideExerciseMasterJson::where("\123\x65\143\x74\x69\x6f\156\x49\144", intval($sectionId))->first(); if (isset($slide)) { return response()->json(array("\x6d\141\x73\164\145\x72\x4a\x73\157\156" => $slide->master_json)); } return response()->json(array("\155\x61\x73\164\145\162\112\x73\157\x6e" => '')); } public function updateMasterJson(Request $request) { $section_id = $request->get("\x73\x65\143\x74\x69\x6f\x6e\x5f\x69\x64"); $this->checkPermission($section_id); $json_save = $request->get("\155\141\163\x74\x65\162\137\x6a\163\x6f\x6e"); if (isset($json_save)) { SlideExerciseMasterJson::SaveJson($section_id, Common::RemoveBom($json_save)); } $return = array("\163\164\x61\x74\165\x73" => date("\155\57\144\x2f\x59\40\x48\72\151\x3a\163") . "\x3a\x20\123\141\166\x65\40\x73\x6c\x69\x64\x65\x20\x4f\113"); if (!empty($return)) { return response()->json($return); } else { return response()->json(''); } } public function changeCondition(Request $request) { $section_id = $request->get("\163\x65\143\x74\151\x6f\x6e\137\151\144"); $this->checkPermission($section_id); $condition = $request->get("\143\x6f\156\144\x69\x74\x69\x6f\x6e"); $lesson = Lesson::find($section_id); if (isset($lesson)) { $lesson->PassCondition = $condition; $lesson->save(); $return = array("\163\164\x61\x74\x75\163" => 1); } else { $return = array("\x73\x74\x61\164\x75\163" => 0); } return response()->json($return); } }
Function Calls
None |
Stats
MD5 | d8f0c085c862f378278e1c02ab1af6e6 |
Eval Count | 0 |
Decode Time | 102 ms |