_service = 'lms'; $this->_module = 'courses'; $this->_viewname = 'courses'; $this->_title = 'Courses'; $this->_base_url = '/course'; } protected function get_list_fields() { return [ 'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete', 'lessons' => ['icon' => 'progress-question', 'querystring' => 'course_id={ID}']]], 'title' => ['title' => 'Title', 'type' => 'text'], 'description' => ['title' => 'Description', 'type' => 'text'], 'status' => ['title' => 'Status', 'type' => 'select'] ]; } protected function get_form_fields($type, $values) { return [ 'title' => ['title' => 'Title', 'type' => 'text', 'required' => true], 'description' => ['title' => 'Description', 'type' => 'text', 'required' => true], 'is_scheduled' => ['title' => 'Is Scheduled', 'type' => 'radio', 'required' => true, 'values' => ['yes' => 'Yes', 'no' => 'No']], 'is_sequential' => ['title' => 'Is Sequential', 'type' => 'radio', 'required' => true, 'values' => ['yes' => 'Yes', 'no' => 'No']], 'start_date' => ['title' => 'Schedule start date', 'type' => 'date', 'required' => true], 'end_date' => ['title' => 'Schedule end date', 'type' => 'date', 'required' => true], 'deadline' => ['title' => 'Deadline', 'type' => 'date', 'required' => true], 'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']], 'icon' => ['title' => 'Icon', 'type' => 'file', 'required' => true] ]; } protected function _beforesave($type, $request) { $data = $request->except('_token'); if ($request->file('icon')) { $data['icon'] = $this->_uploadMedia($request, 'icon', 'lms_cources'); } return $data; } public function lessons(Request $request) { $course_id = $request->input('course_id', 0); if($course_id === 0) { return redirect('/courses')->withError('Course not found!'); } else { $request->session()->put('course_id', $course_id); return redirect('/lessons'); } } }