public function attachment($course_id, $chapter_id = null) { $course = Model\Kelas\Course::withDrafts()->findOrFail($course_id); $chapters = $course->chapters; $attachments = $chapters->map(function ($chapter, $index) { return ['contents' => $chapter->attachments]; }); $this->output->set_content_type('application/json')->set_output(json_encode($attachments->toArray())); }
public function editExam($id) { if (!$this->input->post()) { $this->template->build('course/exam'); } else { // 1. Prepare from input $input = collect($this->input->post('course')); $course = Model\Kelas\Course::withDrafts()->findOrFail($id); $course = Model\Kelas\Course::withDrafts()->findOrFail($id); $this->repository->set($course); // 2. Remove data $remove = collect($this->input->post('remove')); foreach ($remove->get('exams', []) as $exam_id) { $this->repository->deleteExamQuestion($exam_id); } // 7. Exam $exam = collect($input->get('exam')); if ($exam->get('id')) { $modelExam = Model\Kelas\Exam::findOrFail($exam->get('id')); } else { $modelExam = new Model\Kelas\Exam(); $modelExam->course()->associate($course); } $modelExam->name = $exam->get('name'); $modelExam->time = $exam->get('time'); $modelExam->save(); $questions = collect($exam->get('questions')); $questions->each(function ($question) use($modelExam, $course) { $question = collect($question); if ($question->get('id')) { $modelQuestion = Model\Kelas\ExamQuestion::findOrFail($question->get('id')); } else { $modelQuestion = new Model\Kelas\ExamQuestion(); $modelQuestion->exam()->associate($modelExam); } $modelQuestion->question = $question->get('question'); $modelQuestion->option_a = $question->get('option_a'); $modelQuestion->option_b = $question->get('option_b'); $modelQuestion->option_c = $question->get('option_c'); $modelQuestion->option_d = $question->get('option_d'); $modelQuestion->correct = $question->get('correct'); $modelQuestion->save(); }); redirect('dashboard/course/edit/' . $course->id . '/exam', 'refresh'); } }