public function coursedetileAction() { if (Zend_Auth::getInstance()->hasIdentity()) { $courseid = $this->_getParam('iCourseId'); $course = new Model_Course($courseid); if ($course->iCourseId) { $this->view->list = $course->getDetiles(); $this->view->detiles = $course; } } }
/** * Method to get all users for an examgroup * @param int $examgroup_id * @param string $return_type (array|object) * @return array eg. (array(10 => 'Students Name') | array of user objects) */ public static function get_students($examgroup_id, $return_type = 'array') { $exams = self::get_exams($examgroup_id); // handle the cas_e that no exam is added to this exam group yet if (!$exams->as_array()) { // echo 'No exams found for the examgroup #' . $examgroup_id; return array(); } $course_assoc = $exams->as_array('id', 'course_id'); // get the courses $courses = ORM::factory('course')->where('id', ' IN ', array_values($course_assoc))->find_all(); $students = array(); $students_object = array(); foreach ($courses as $course) { $users = Model_Course::get_students($course); $course_students = array(); foreach ($users as $user) { $course_students[$user->id] = $user->firstname . ' ' . $user->lastname; $students_object[] = $user; } // concat arrays with students instead of array_merge // so that re-indexing doesn't happen $students = $students + $course_students; } if ($return_type == 'array') { return $students; } return $students_object; }
/** * Generic function just to keep the code DRY */ public static function notice_exam_email($exam, $subject, $template) { $users = Model_Course::get_users($exam->course_id); $recipients = Notice::email_recipients($users); $view = View::factory($template)->set('exam', $exam); $body = $view->render(); $subject = 'Kodelearn Exam Notice: ' . $subject; Notice::email($recipients, $subject, $body); }
public function action_delete($id = null) { if ($course = Model_Course::find($id)) { $course->delete(); Session::set_flash('success', e('Deleted course #' . $id)); } else { Session::set_flash('error', e('Could not delete course #' . $id)); } Response::redirect('site/courses'); }
public function render() { $user = ORM::factory('user', $this->actor_id); $course = ORM::factory('course', $this->respective_id); if ($this->check_deleted($course)) { return View::factory('feed/unavaliable')->render(); } $count_user = Model_Course::get_users_count($this->respective_id, 'student'); $span = Date::fuzzy_span($this->time); $feed_id = $this->id; $comment = ORM::factory('feedcomment'); $comment->where('feed_id', '=', $feed_id)->order_by('date', 'DESC'); $comments = $comment->find_all(); $curr_user = Auth::instance()->get_user(); $role = $curr_user->role()->name; $url = Url::site('profile/view/id/'); $view = View::factory('feed/' . $this->type . '_' . $this->action)->bind('user', $user)->bind('count_user', $count_user)->bind('course', $course)->bind('span', $span)->bind('role', $role)->bind('feed_id', $feed_id)->bind('comments', $comments)->bind('url', $url); return $view->render(); }
public static function all_courses() { $students = Model_Course::count(); return $students; }
/** * Method to save the user to course assignments * @param Model_Course $course * @param Array $user_ids - Array of user_ids * @return null */ public static function assign_users($course, $user_ids) { if ($user_ids) { $feed_exists = ORM::factory('feed')->where('type', '=', 'course')->where('action', '=', 'student_add')->where('respective_id', '=', $course->id)->where('actor_id', '=', Auth::instance()->get_user()->id)->find(); if ($feed_exists->id !== null) { $feed = new Feed_Course($feed_exists->id); $feed->streams(array('user_id' => $user_ids))->update_streams(); } else { $feed = new Feed_Course(); $feed->set_action('student_add'); $feed->set_course_id('0'); $feed->set_respective_id($course->id); $feed->set_actor_id(Auth::instance()->get_user()->id); $feed->streams(array('user_id' => $user_ids)); $feed->save(); } $course->remove('users'); foreach ($user_ids as $user_id) { $course->add('users', ORM::factory('user', $user_id)); } } else { $course->remove('users'); } }
public function action_upload() { $submitted = FALSE; if ($this->request->method() === 'POST' && $this->request->post()) { if (Arr::get($this->request->post(), 'save') !== null) { $submitted = TRUE; $document = ORM::factory('document'); $validator = $document->validator(array_merge($this->request->post(), $_FILES)); $validator->bind(':files', $_FILES['name']); if ($validator->check()) { $filename = Upload::save($_FILES['name'], NULL, UPLOAD_PATH); $document = ORM::factory('document'); $document->values($this->request->post()); $document->name = basename($filename); $document->time = time(); $document->save(); $document->add('courses', $this->request->post('course_id')); $document->add('roles', $this->request->post('role')); foreach ($this->request->post('course_id') as $course_id) { $feed = new Feed_Document(); $feed->set_action('add'); $feed->set_course_id($course_id); $feed->set_respective_id($document->id); $feed->set_actor_id(Auth::instance()->get_user()->id); $stream_data = array('course_id' => $course_id, 'role_id' => $this->request->post('role')); $feed->streams($stream_data); $feed->save(); } Request::current()->redirect('document'); } else { $this->_errors = $validator->errors('document'); } } } $courses = Model_Course::courses()->as_array('id', 'name'); $course_id = Session::instance()->get('course_id'); //remove the current course from the list unset($courses[$course_id]); $form = new Stickyform('document/upload', array('enctype' => "multipart/form-data"), $submitted ? $this->_errors : array()); $form->default_data = array('title' => '', 'user_id' => Auth::instance()->get_user()->id, 'course_id' => 0, 'role' => 0); $form->posted_data = $submitted ? $this->request->post() : array(); $form->append('Title', 'title', 'text'); $form->append('Access To', 'role', 'text'); $form->append('User', 'user_id', 'hidden'); $form->append('File', 'name', 'file'); $form->append('Also add to', 'course_id', 'select', array('options' => $courses, 'attributes' => array('multiple' => 'multiple', 'name' => 'course_id[]'))); $form->append('Upload', 'save', 'submit', array('attributes' => array('class' => 'button'))); $form->process(); $course = ORM::factory('course', $course_id); $roles = ORM::factory('role')->find_all()->as_array('id', 'name'); $view = View::factory('document/form')->bind('form', $form)->bind('course', $course)->bind('roles', $roles); Breadcrumbs::add(array('Courses', Url::site('course'))); Breadcrumbs::add(array('Documents', Url::site('document'))); Breadcrumbs::add(array('Upload', Url::site('document/upload'))); $this->content = $view; }
public function action_edit($id = null) { $where = ['id' => $id]; if (Model_User::is_current_user('teacher')) { $where['user_id'] = Auth::get('id'); } $subject = Model_Subject::find('first', ['where' => $where]); if (empty($subject)) { Session::set_flash('error', 'Subject does not exist.'); Response::redirect('site/subject'); } $val = Model_Subject::validate('edit'); if ($val->run()) { $subject->subject_code = Input::post('subject_code'); $subject->subject_desc = Input::post('subject_desc'); $subject->semester = Input::post('semester'); $subject->year = Input::post('year'); $subject->user_id = Input::post('user_id'); $subject->course_id = Input::post('course_id'); if ($subject->save()) { Session::set_flash('success', e('Updated subject #' . $id)); Response::redirect('site/subject'); } else { Session::set_flash('error', e('Could not update subject #' . $id)); } } else { if (Input::method() == 'POST') { $subject->subject_code = $val->validated('subject_code'); $subject->subject_desc = $val->validated('subject_desc'); $subject->semester = $val->validated('semester'); $subject->year = $val->validated('year'); $subject->user_id = $val->validated('user_id'); $subject->course_id = $val->validated('course_id'); Session::set_flash('error', $val->error()); } $this->template->set_global('subject', $subject, false); } $courses = Model_Course::getCoursesOptions(); $this->template->set_global('courses', $courses, false); // Global variables $teachers = Model_User::get_list_of_teachers(); $this->template->set_global('teachers', $teachers, false); $this->template->title = "Subjects"; $this->template->content = View::forge('site/subject/edit'); }
?> </h1> </div> </div> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="col-md-4"> <div class="panel panel-default"> <div class="panel-heading">All Courses</div> <div class="panel-body"> <h1 class="text-muted text-center"><?php echo Model_Course::all_courses(); ?> </h1> </div> </div> </div> <div class="col-md-4"> <div class="panel panel-default"> <div class="panel-heading">All Subjects</div> <div class="panel-body"> <h1 class="text-muted text-center"><?php echo Model_Subject::all_subjects(); ?> </h1> </div> </div>
public static function getCourseName($course_id) { $courses = Model_Course::find('first', array('where' => array(array('id', $course_id)))); return $courses ? $courses->course_name : ''; }
public function action_get_students() { if (!$this->request->post('course_id')) { $response = '<p>No Course Selected</p>'; echo json_encode(array('html' => $response)); exit; } $course = ORM::factory('course', $this->request->post('course_id')); $users = Model_Course::get_students($course); $cacheimage = CacheImage::instance(); $view = View::factory('course/ajax_show_students')->bind('cacheimage', $cacheimage)->bind('course', $course)->bind('users', $users); $response = $this->response->body($view)->body(); echo json_encode(array('html' => $response)); }
public function action_edit($id = null) { $where = ['id' => $id]; if (Model_User::is_current_user('teacher')) { $where['subject.user_id'] = Auth::get('id'); } $book = Model_Book::find('first', ['where' => $where, 'related' => ['subject']]); if (empty($book)) { Session::set_flash('error', 'Book does not exist.'); Response::redirect('site/book'); } $val = Model_Book::validate('edit'); if ($val->run()) { $bookUploadConfig = Config::get('upload_book_url'); $bookUploadConfig['base_path'] = $bookUploadConfig['path']; $bookUploadConfig['path'] = $this->getFilePath($bookUploadConfig['path'], Input::post('sub_folder'), Input::post('course_id')); $isReuploaded = false; $book->book_name = Input::post('book_name'); $book->subject_id = Input::post('subject_id'); $book->course_id = Input::post('course_id'); $book->is_institutional = Input::post('is_institutional'); $book->sub_folder = Input::post('sub_folder'); Upload::process(Config::get('upload_profile_picture')); if (empty(Upload::get_files()) || Upload::is_valid()) { if (!empty(Upload::get_files())) { Upload::save(); $value = Upload::get_files(); foreach ($value as $files) { $book->cover_photo = $value[0]['saved_as']; } } Upload::process($bookUploadConfig); if (Upload::get_files() || empty(Upload::is_valid())) { if (!empty(Upload::get_files())) { Upload::save(); $value = Upload::get_files(); foreach ($value as $files) { unlink($bookUploadConfig['base_path'] . '/' . $book->book_url); $book->book_url = str_replace($bookUploadConfig['base_path'] . '/', '', $bookUploadConfig['path']) . '/' . $value[0]['saved_as']; $isReuploaded = true; } } $tmpPath = str_replace($bookUploadConfig['base_path'] . '/', '', $bookUploadConfig['path']); if (!$isReuploaded && strpos($book->book_url, $tmpPath) == false) { rename($bookUploadConfig['base_path'] . '/' . $book->book_url, $bookUploadConfig['path'] . '/' . preg_replace('/^.+\\//', '', $book->book_url)); $book->book_url = $tmpPath . '/' . preg_replace('/^.+\\//', '', $book->book_url); } if ($book->save()) { Session::set_flash('success', e('Updated book #' . $id)); Response::redirect('site/book'); } else { Session::set_flash('error', e('Could not update book #' . $id)); } } else { Session::set_flash('error', 'Uploaded book is invalid.'); $this->template->set_global('book', $book, false); } } else { Session::set_flash('error', 'Cover photo is invalid.'); $this->template->set_global('book', $book, false); } } else { if (Input::method() == 'POST') { $book->book_url = $val->validated('book_url'); $book->book_name = $val->validated('book_name'); $book->subject_id = $val->validated('subject_id'); $book->cover_photo = $val->validated('cover_photo'); $book->course_id = $val->validated('course_id'); $book->is_institutional = $val->validated('is_institutional'); $book->sub_folder = $val->validated('sub_folder'); Session::set_flash('error', $val->error()); } $this->template->set_global('book', $book, false); } $subjects = Model_Subject::getSubjectOptions(); $courses = Model_Course::getCoursesOptions(); $this->template->set_global('subjects', $subjects, false); $this->template->set_global('courses', $courses, false); $this->template->title = "Books"; $this->template->content = View::forge('site/book/edit'); }
/** * Zwraca skladniki w tablicy asocjacyjnej pogrupowane wzgledem typu * */ protected function getSortedCourses() { $aResult = array(); $oType = new Model_Type(); $oCourse = new Model_Course(); // $aTypes = $oType->where( 'account_id', (int) $this->oCurrentUser->account_id )-> $aCourses = $oCourse->getCoursesForAccount((int) $this->oCurrentUser->account_id); foreach ($aCourses as $aCourse) { $aResult[$aCourse['type']][] = array('course_id' => $aCourse['course_id'], 'name' => $aCourse['name'], 'price' => $aCourse['price']); } return $aResult; }
protected function getCoursesOfTheme($themeId) { $modelCourse = new Model_Course(); return $modelCourse->getAll(array('ManagementThemeId = ?' => $themeId)); }
public function action_add() { if ($this->request->method() === 'POST' && $this->request->post('selected')) { $event_id = $this->request->post('id'); $course_id = $this->request->post('course_id'); $users = Model_Course::get_users($course_id, 'student'); $marked_users = $this->request->post('selected'); DB::delete('attendances')->where('event_id', '=', $event_id)->execute(Database::instance()); foreach ($users as $user) { $attendance = ORM::factory('attendance'); if (in_array($user->id, $this->request->post('selected'))) { $attendance->user_id = $user->id; $attendance->event_id = $event_id; $attendance->present = '1'; $attendance->save(); } else { $attendance->user_id = $user->id; $attendance->event_id = $event_id; $attendance->present = '0'; $attendance->save(); } } // find an existing feed $feed_exists = ORM::factory('feed')->where('type', '=', 'attendance')->where('action', '=', 'mark')->where('respective_id', '=', $event_id)->where('actor_id', '=', Auth::instance()->get_user()->id)->find(); if ($feed_exists->id !== null) { $feed = new Feed_Attendance($feed_exists->id); $feed->streams(array('user_id' => $marked_users))->update_streams(); } else { $feed = new Feed_Attendance(); $feed->set_action('mark'); $feed->set_respective_id($event_id); $feed->set_actor_id(Auth::instance()->get_user()->id); $feed->streams(array('user_id' => $marked_users)); $feed->save(); } Session::instance()->set('success', 'Attendance marked successfully.'); } $id = $this->request->param('id'); $type = $this->request->param('type'); $param_event_id = $this->request->param('event_id'); if (!$id || !$type || !$param_event_id) { Request::current()->redirect('attendance'); } if ($type == 'exam') { $exam = ORM::factory('exam', $id); $cid = $exam->course_id; $event = $exam->name; } if ($type == 'lecture') { $lecture = ORM::factory('lecture', $id); $cid = $lecture->course_id; $event = $lecture->name; } $course = ORM::factory('course', $cid); $users = Model_Course::get_students($course); /* $user = ORM::factory('user'); $user->join('courses_users','left') ->on('courses_users.user_id','=','id'); $user->where('courses_users.course_id','=',$cid); $users = $user->find_all();*/ $page_title = Kohana::message('page_title', 'attendance_add.title'); $page_title = str_replace('{event}', $event, $page_title); $assigned_attendance = ORM::factory('attendance'); $assigned_attendance->where('event_id', '=', $param_event_id); $assigned_attendances = $assigned_attendance->find_all()->as_array('user_id', 'present'); $data = array('add' => URL::site('/attendance/add'), 'id' => $id, 'course_id' => $cid, 'event_id' => $param_event_id); $view = View::factory('attendance/form')->bind('users', $users)->bind('page_title', $page_title)->bind('assigned_attendances', $assigned_attendances)->bind('data', $data); Breadcrumbs::add(array('Attendance', Url::site('attendance'))); $this->content = $view; }
<div class="form-group"> <?php echo Form::label('Year Level', 'year_level', array('class' => 'control-label')); ?> <?php echo Form::select('year_level', Input::post('year_level', isset($student) ? $student->year_level : ''), Config::get('year_level'), array('class' => 'form-control')); ?> </div> <div class="form-group"> <?php echo Form::label('Courses', 'course_id', array('class' => 'control-label')); ?> <?php echo Form::select('course_id', Input::post('course_id', isset($student) ? $student->course_id : ''), Model_Course::getCoursesOptions(), array('class' => 'form-control')); ?> </div> <?php echo Form::hidden('user_id', Input::post('user_id', $student->user_id, array('class' => 'col-md-4 form-control'))); ?> <br/><br/> <div class="form-group text-center"> <label class='control-label'> </label> <?php echo Form::submit('submit', 'Save', array('class' => 'btn btn-primary')); ?> <?php echo Html::anchor('site/student', 'Back', array('class' => 'btn btn-primary')); ?>