protected static function _init() { $session = Registry::get("session"); if (!self::$_courses || !self::$_classes) { if (!$session->get('TeacherService:$courses') || !$session->get('TeacherService:$classes')) { $teaches = \Teach::all(array("user_id = ?" => self::$_teacher->user_id)); $session->set('TeacherService:$teaches', $teaches); $session->set('TeacherService:$courses', self::_findCourses($teaches)); $session->set('TeacherService:$classes', self::_findClasses($teaches)); } self::$_courses = $session->get('TeacherService:$courses'); self::$_classes = $session->get('TeacherService:$classes'); self::$_teaches = $session->get('TeacherService:$teaches'); } }
/** * Find all the courses to which the teacher is assigned * @before _secure, _teacher */ public function courses() { $this->setSEO(array("title" => "Manage Your Courses | Teacher")); $view = $this->getActionView(); $teaches = \Teach::all(array("user_id = ?" => $this->user->id, "live = ?" => true)); $grades = \Grade::all(array("organization_id = ?" => $this->organization->id), array("id", "title")); $storedGrades = array(); foreach ($grades as $g) { $storedGrades[$g->id] = $g; } $courses = TeacherService::$_courses; $classes = TeacherService::$_classes; $result = array(); foreach ($teaches as $t) { $grade = $storedGrades[$t->grade_id]; $class = $classes[$t->classroom_id]; $course = $courses[$t->course_id]; $asgmnt = \Assignment::count(array("course_id = ?" => $t->course_id)); $data = array("grade" => $grade->title, "grade_id" => $g->id, "section" => $class->section, "course" => $course->title, "course_id" => $course->id, "classroom_id" => $class->id, "assignments" => $asgmnt); $data = ArrayMethods::toObject($data); $result[] = $data; } $session = Registry::get("session"); if ($session->get('Notification\\Students:$sent')) { $view->set("success", "Notification sent to students"); $session->erase('Notification\\Students:$sent'); } $view->set("courses", $result); }