public function listAll() { $toReturn = array(); $teachers = User::where('role', 'teacher')->get()->toArray(); $toReturn['dormitory'] = dormitories::get()->toArray(); $toReturn['subject'] = array(); $subjects = subject::get(); foreach ($subjects as $value) { $toReturn['subject'][$value->id] = $value->subjectTitle; } $toReturn['classes'] = array(); $classes = \DB::table('classes')->leftJoin('dormitories', 'dormitories.id', '=', 'classes.dormitoryId')->select('classes.id as id', 'classes.className as className', 'classes.classTeacher as classTeacher', 'classes.classSubjects as classSubjects', 'dormitories.id as dormitory', 'dormitories.dormitory as dormitoryName')->where('classAcademicYear', $this->panelInit->selectAcYear)->get(); $toReturn['teachers'] = array(); while (list($teacherKey, $teacherValue) = each($teachers)) { $toReturn['teachers'][$teacherValue['id']] = $teacherValue; } while (list($key, $class) = each($classes)) { $toReturn['classes'][$key] = $class; $toReturn['classes'][$key]->classSubjects = json_decode($toReturn['classes'][$key]->classSubjects); if ($toReturn['classes'][$key]->classTeacher != "") { $toReturn['classes'][$key]->classTeacher = json_decode($toReturn['classes'][$key]->classTeacher, true); if (is_array($toReturn['classes'][$key]->classTeacher)) { while (list($teacherKey, $teacherID) = each($toReturn['classes'][$key]->classTeacher)) { if (isset($toReturn['teachers'][$teacherID]['fullName'])) { $toReturn['classes'][$key]->classTeacher[$teacherKey] = $toReturn['teachers'][$teacherID]['fullName']; } else { unset($toReturn['classes'][$key]->classTeacher[$teacherKey]); } } $toReturn['classes'][$key]->classTeacher = implode($toReturn['classes'][$key]->classTeacher, ", "); } } } return $toReturn; }
public function listAll() { $toReturn = array(); $toReturn['classes'] = classes::where('classAcademicYear', $this->panelInit->selectAcYear)->get()->toArray(); $classesArray = array(); while (list(, $class) = each($toReturn['classes'])) { $classesArray[$class['id']] = array("classTitle" => $class['className'], "subjects" => json_decode($class['classSubjects'])); } if ($this->data['users']->role == "teacher") { $subjects = subject::where('teacherId', $this->data['users']->id)->get()->toArray(); } else { $subjects = subject::get()->toArray(); } $subjectArray = array(); while (list(, $subject) = each($subjects)) { $subjectArray[$subject['id']] = $subject['subjectTitle']; } $toReturn['onlineExams'] = array(); $onlineExams = new onlineExams(); if ($this->data['users']->role == "teacher") { $onlineExams = $onlineExams->where('examTeacher', $this->data['users']->id); } if ($this->data['users']->role == "student") { $onlineExams = $onlineExams->where('examClass', 'LIKE', '%"' . $this->data['users']->studentClass . '"%'); } $onlineExams = $onlineExams->where('exAcYear', $this->panelInit->selectAcYear); $onlineExams = $onlineExams->get(); foreach ($onlineExams as $key => $onlineExam) { $classId = json_decode($onlineExam->examClass); if ($this->data['users']->role == "student" and !in_array($this->data['users']->studentClass, $classId)) { continue; } $toReturn['onlineExams'][$key]['id'] = $onlineExam->id; $toReturn['onlineExams'][$key]['examTitle'] = $onlineExam->examTitle; $toReturn['onlineExams'][$key]['examDescription'] = $onlineExam->examDescription; if (isset($subjectArray[$onlineExam->examSubject])) { $toReturn['onlineExams'][$key]['examSubject'] = $subjectArray[$onlineExam->examSubject]; } $toReturn['onlineExams'][$key]['ExamEndDate'] = date("F j, Y", $onlineExam->ExamEndDate); $toReturn['onlineExams'][$key]['ExamShowGrade'] = $onlineExam->ExamShowGrade; $toReturn['onlineExams'][$key]['classes'] = ""; while (list(, $value) = each($classId)) { if (isset($classesArray[$value])) { $toReturn['onlineExams'][$key]['classes'] .= $classesArray[$value]['classTitle'] . ", "; } } } $toReturn['userRole'] = $this->data['users']->role; return $toReturn; }
function fetch($id) { $arrayOfDays = array(0 => $this->panelInit->language['Sunday'], 1 => $this->panelInit->language['Monday'], 2 => $this->panelInit->language['Tuesday'], 3 => $this->panelInit->language['Wednesday'], 4 => $this->panelInit->language['Thurusday'], 5 => $this->panelInit->language['Friday'], 6 => $this->panelInit->language['Saturday']); $subjectArray = array(); $subjectObject = subject::get(); foreach ($subjectObject as $subject) { $subjectArray[$subject->id] = $subject->subjectTitle; } $toReturn = array(0 => array('dayName' => $arrayOfDays[0], 'data' => array()), 1 => array('dayName' => $arrayOfDays[1]), 2 => array('dayName' => $arrayOfDays[2]), 3 => array('dayName' => $arrayOfDays[3]), 4 => array('dayName' => $arrayOfDays[4]), 5 => array('dayName' => $arrayOfDays[5]), 6 => array('dayName' => $arrayOfDays[6])); $classSchedule = classSchedule::where('classId', $id)->orderBy('startTime')->get(); foreach ($classSchedule as $schedule) { $toReturn[$schedule->dayOfWeek]['sub'][] = array('id' => $schedule->id, 'classId' => $schedule->classId, 'subjectId' => isset($subjectArray[$schedule->subjectId]) ? $subjectArray[$schedule->subjectId] : "", 'start' => wordwrap($schedule->startTime, 2, ':', true), 'end' => wordwrap($schedule->endTime, 2, ':', true)); } return $toReturn; }
public function listAll() { $toReturn = array(); $toReturn['classes'] = classes::where('classAcademicYear', $this->panelInit->selectAcYear)->get()->toArray(); $classesArray = array(); while (list(, $class) = each($toReturn['classes'])) { $classesArray[$class['id']] = $class['className']; } $toReturn['subject'] = subject::get()->toArray(); $subjectArray = array(); while (list(, $subject) = each($toReturn['subject'])) { $subjectArray[$subject['id']] = $subject['subjectTitle']; } $toReturn['materials'] = array(); $studyMaterial = new studyMaterial(); if ($this->data['users']->role == "student") { $studyMaterial = $studyMaterial->where('class_id', 'LIKE', '%"' . $this->data['users']->studentClass . '"%'); } if ($this->data['users']->role == "teacher") { $studyMaterial = $studyMaterial->where('teacher_id', $this->data['users']->id); } $studyMaterial = $studyMaterial->get(); foreach ($studyMaterial as $key => $material) { $classId = json_decode($material->class_id); if ($this->data['users']->role == "student" and !in_array($this->data['users']->studentClass, $classId)) { continue; } $toReturn['materials'][$key]['id'] = $material->id; $toReturn['materials'][$key]['subjectId'] = $material->subject_id; $toReturn['materials'][$key]['subject'] = $subjectArray[$material->subject_id]; $toReturn['materials'][$key]['material_title'] = $material->material_title; $toReturn['materials'][$key]['material_description'] = $material->material_description; $toReturn['materials'][$key]['material_file'] = $material->material_file; $toReturn['materials'][$key]['classes'] = ""; if (is_array($classId)) { while (list(, $value) = each($classId)) { if (isset($classesArray[$value])) { $toReturn['materials'][$key]['classes'] .= $classesArray[$value] . ", "; } } } } $toReturn['userRole'] = $this->data['users']->role; return $toReturn; exit; }
function attendance($id) { $toReturn = array(); $toReturn['attendanceModel'] = $this->data['panelInit']->settingsArray['attendanceModel']; $toReturn['attendance'] = attendance::where('studentId', $id)->get()->toArray(); if ($this->data['panelInit']->settingsArray['attendanceModel'] == "subject") { $subjects = subject::get(); $toReturn['subjects'] = array(); foreach ($subjects as $subject) { $toReturn['subjects'][$subject->id] = $subject->subjectTitle; } } return $toReturn; }
public function search() { $sql = "select * from attendance where "; $sqlArray = array(); $toReturn = array(); $students = array(); $studentArray = User::where('role', 'student')->get(); foreach ($studentArray as $stOne) { $students[$stOne->id] = array('name' => $stOne->fullName, 'studentRollId' => $stOne->studentRollId, 'attendance' => ''); } $subjectsArray = subject::get(); $subjects = array(); foreach ($subjectsArray as $subject) { $subjects[$subject->id] = $subject->subjectTitle; } if (Input::get('classId') and Input::get('classId') != "") { $sqlArray[] = "classId='" . Input::get('classId') . "'"; } if (Input::get('subjectId') and Input::get('subjectId') != "") { $sqlArray[] = "subjectId='" . Input::get('subjectId') . "'"; } if (Input::get('status') and Input::get('status') != "All") { $sqlArray[] = "status='" . Input::get('status') . "'"; } if (Input::get('attendanceDay') and Input::get('attendanceDay') != "") { $sqlArray[] = "date='" . Input::get('attendanceDay') . "'"; } $sql = $sql . implode(" AND ", $sqlArray); $attendanceArray = DB::select(DB::raw($sql)); foreach ($attendanceArray as $stAttendance) { $toReturn[$stAttendance->id] = $stAttendance; if (isset($students[$stAttendance->studentId])) { $toReturn[$stAttendance->id]->studentName = $students[$stAttendance->studentId]['name']; if ($stAttendance->subjectId != "") { $toReturn[$stAttendance->id]->studentSubject = $subjects[$stAttendance->subjectId]; } $toReturn[$stAttendance->id]->studentRollId = $students[$stAttendance->studentId]['studentRollId']; } } return $toReturn; }
public function dashboardData() { $toReturn = array(); $toReturn['selectedAcYear'] = $this->panelInit->selectAcYear; $toReturn['language'] = $this->panelInit->language; $toReturn['role'] = $this->data['users']->role; $toReturn['stats'] = array(); $toReturn['stats']['classes'] = classes::count(); $toReturn['stats']['students'] = User::where('role', 'student')->where('activated', 1)->count(); $toReturn['stats']['teachers'] = User::where('role', 'teacher')->where('activated', 1)->count(); $toReturn['stats']['newMessages'] = messagesList::where('userId', $this->data['users']->id)->where('messageStatus', 1)->count(); $toReturn['messages'] = DB::select(DB::raw("SELECT messagesList.id as id,messagesList.lastMessageDate as lastMessageDate,messagesList.lastMessage as lastMessage,messagesList.messageStatus as messageStatus,users.fullName as fullName,users.id as userId FROM messagesList LEFT JOIN users ON users.id=IF(messagesList.userId = '" . $this->data['users']->id . "',messagesList.toId,messagesList.userId) where userId='" . $this->data['users']->id . "' order by id DESC limit 5")); $toReturn['attendanceModel'] = $this->data['panelInit']->settingsArray['attendanceModel']; if ($this->data['panelInit']->settingsArray['attendanceModel'] == "subject") { $subjects = subject::get(); foreach ($subjects as $subject) { $toReturn['subjects'][$subject->id] = $subject->subjectTitle; } } $date = date('m/Y'); $date = explode("/", $date); if ($this->data['users']->role == "student") { $attendanceArray = attendance::where('studentId', $this->data['users']->id)->where('date', 'like', $date[0] . "%")->where('date', 'like', "%" . $date[1])->get(); foreach ($attendanceArray as $value) { $toReturn['studentAttendance'][] = array("date" => $value->date, "status" => $value->status, "subject" => isset($toReturn['subjects'][$value->subjectId]) ? $toReturn['subjects'][$value->subjectId] : ""); } } elseif ($this->data['users']->role == "parent") { if ($this->data['users']->parentOf != "") { $parentOf = json_decode($this->data['users']->parentOf, true); $ids = array(); while (list(, $value) = each($parentOf)) { $ids[] = $value['id']; } $studentArray = User::where('role', 'student')->whereIn('id', $ids)->get(); foreach ($studentArray as $stOne) { $students[$stOne->id] = array('name' => $stOne->fullName, 'studentRollId' => $stOne->studentRollId); } if (count($ids) > 0) { $attendanceArray = attendance::whereIn('studentId', $ids)->where('date', 'like', $date[0] . "%")->where('date', 'like', "%" . $date[1])->get(); foreach ($attendanceArray as $value) { if (!isset($toReturn['studentAttendance'][$value->studentId])) { $toReturn['studentAttendance'][$value->studentId]['n'] = $students[$value->studentId]; $toReturn['studentAttendance'][$value->studentId]['d'] = array(); } $toReturn['studentAttendance'][$value->studentId]['d'][] = array("date" => $value->date, "status" => $value->status, "subject" => $value->subjectId); } } } } $toReturn['teacherLeaderBoard'] = User::where('role', 'teacher')->where('isLeaderBoard', '!=', '')->where('isLeaderBoard', '!=', '0')->get()->toArray(); $toReturn['studentLeaderBoard'] = User::where('role', 'student')->where('isLeaderBoard', '!=', '')->where('isLeaderBoard', '!=', '0')->get()->toArray(); $toReturn['newsEvents'] = array(); $newsboard = newsboard::where('newsFor', $this->data['users']->role)->orWhere('newsFor', 'all')->orderBy('id', 'desc')->limit(5)->get(); foreach ($newsboard as $event) { $eventsArray['id'] = $event->id; $eventsArray['title'] = $event->newsTitle; $eventsArray['type'] = "news"; $eventsArray['start'] = date("F j, Y", strtotime($event->newsDate)); $toReturn['newsEvents'][] = $eventsArray; } $events = events::orderBy('id', 'desc')->where('eventFor', $this->data['users']->role)->orWhere('eventFor', 'all')->limit(5)->get(); foreach ($events as $event) { $eventsArray['id'] = $event->id; $eventsArray['title'] = $event->eventTitle; $eventsArray['type'] = "event"; $eventsArray['start'] = date("F j, Y", strtotime($event->eventDate)); $toReturn['newsEvents'][] = $eventsArray; } $toReturn['academicYear'] = academicYear::get()->toArray(); $toReturn['baseUser'] = array("id" => $this->data['users']->id, "fullName" => $this->data['users']->fullName, "username" => $this->data['users']->username); $polls = polls::where('pollTarget', $this->data['users']->role)->orWhere('pollTarget', 'all')->where('pollStatus', '1')->first(); if (count($polls) > 0) { $toReturn['polls']['title'] = $polls->pollTitle; $toReturn['polls']['id'] = $polls->id; $toReturn['polls']['view'] = "vote"; $userVoted = json_decode($polls->userVoted, true); if (is_array($userVoted) and in_array($this->data['users']->id, $userVoted)) { $toReturn['polls']['voted'] = true; $toReturn['polls']['view'] = "results"; } $toReturn['polls']['items'] = json_decode($polls->pollOptions, true); $toReturn['polls']['totalCount'] = 0; if (is_array($toReturn['polls']['items']) and count($toReturn['polls']['items']) > 0) { while (list($key, $value) = each($toReturn['polls']['items'])) { if (isset($value['count'])) { $toReturn['polls']['totalCount'] += $value['count']; } if (!isset($toReturn['polls']['items'][$key]['prec'])) { $toReturn['polls']['items'][$key]['prec'] = 0; } } } } return json_encode($toReturn); }
function notifications($id) { if ($this->data['users']->role != "admin") { exit; } if ($this->panelInit->settingsArray['examDetailsNotif'] == "0") { return json_encode(array("jsTitle" => $this->panelInit->language['examDetailsNot'], "jsMessage" => $this->panelInit->language['adjustExamNot'])); } $examsList = examsList::where('id', $id)->first(); $subjectArray = array(); $subject = subject::get(); foreach ($subject as $value) { $subjectArray[$value->id] = $value->subjectTitle; } $usersArray = array(); if ($this->data['panelInit']->settingsArray['examDetailsNotifTo'] == "parent" || $this->data['panelInit']->settingsArray['examDetailsNotifTo'] == "both") { $users = User::where('role', 'student')->orWhere('role', 'parent')->get(); } else { $users = User::where('role', 'student')->get(); } foreach ($users as $value) { if ($value->parentOf == "" and $value->role == "parent") { continue; } if (!isset($usersArray[$value->id])) { $usersArray[$value->id] = array(); } if ($value->parentOf != "") { $value->parentOf = json_decode($value->parentOf); if (!is_array($value->parentOf)) { continue; } if (count($value->parentOf) > 0) { $usersArray[$value->id]['parents'] = array(); } foreach ($value->parentOf as $parentOf) { $usersArray[$parentOf->id]['parents'][$value->id] = array('username' => $value->username, "email" => $value->email, "fullName" => $value->fullName, "mobileNo" => $value->mobileNo); } } $usersArray[$value->id]['student'] = array('username' => $value->username, "studentRollId" => $value->studentRollId, "mobileNo" => $value->mobileNo, "email" => $value->email, "fullName" => $value->fullName); } $return['marks'] = array(); $examMarks = examMarks::where('examId', $id)->get(); foreach ($examMarks as $value) { if (!isset($return['marks'][$value->studentId])) { $return['marks'][$value->studentId] = array(); } if (isset($subjectArray[$value->subjectId])) { $return['marks'][$value->studentId][$subjectArray[$value->subjectId]] = array("examMark" => $value->examMark, "attendanceMark" => $value->attendanceMark, "markComments" => $value->markComments); } } $mailTemplate = mailsmsTemplates::where('templateTitle', 'Exam Details')->first(); if ($this->panelInit->settingsArray['examDetailsNotif'] == "mail" || $this->panelInit->settingsArray['examDetailsNotif'] == "mailsms") { $mail = true; } if ($this->panelInit->settingsArray['examDetailsNotif'] == "sms" || $this->panelInit->settingsArray['examDetailsNotif'] == "mailsms") { $sms = true; } $sms = true; $MailSmsHandler = new MailSmsHandler(); while (list($key, $value) = each($return['marks'])) { if (isset($mail)) { $studentTemplate = $mailTemplate->templateMail; $examGradesTable = ""; while (list($keyG, $valueG) = each($value)) { if ($valueG['examMark'] == "" and $valueG['attendanceMark'] == "") { continue; } $examGradesTable .= $keyG . " Grade : " . $valueG['examMark'] . " - Attendance : " . $valueG['attendanceMark'] . " - Comments : " . $valueG['markComments'] . "<br/>"; } if ($examGradesTable == "") { continue; } $searchArray = array("{studentName}", "{studentRoll}", "{studentEmail}", "{studentUsername}", "{examTitle}", "{examDescription}", "{examDate}", "{schoolTitle}", "{examGradesTable}"); $replaceArray = array($usersArray[$key]['student']['fullName'], $usersArray[$key]['student']['studentRollId'], $usersArray[$key]['student']['email'], $usersArray[$key]['student']['username'], $examsList->examTitle, $examsList->examDescription, $examsList->examDate, $this->panelInit->settingsArray['siteTitle'], $examGradesTable); $studentTemplate = str_replace($searchArray, $replaceArray, $studentTemplate); $MailSmsHandler->mail($usersArray[$key]['student']['email'], "Exam grade details", $studentTemplate, $usersArray[$key]['student']['fullName']); if (isset($usersArray[$key]['parents'])) { while (list($keyP, $valueP) = each($usersArray[$key]['parents'])) { // $MailSmsHandler->mail($valueP['email'],"Exam grade details",$studentTemplate,$usersArray[$key]['student']['fullName']); } } } if (isset($sms)) { $studentTemplate = $mailTemplate->templateSMS; $examGradesTable = ""; reset($value); while (list($keyG, $valueG) = each($value)) { if ($valueG['examMark'] == "" and $valueG['attendanceMark'] == "") { continue; } $examGradesTable .= $keyG . " Grade : " . $valueG['examMark'] . " - Attendance : " . $valueG['attendanceMark'] . " "; } if ($examGradesTable == "") { continue; } $searchArray = array("{studentName}", "{studentRoll}", "{studentEmail}", "{studentUsername}", "{examTitle}", "{examDescription}", "{examDate}", "{schoolTitle}", "{examGradesTable}"); $replaceArray = array($usersArray[$key]['student']['fullName'], $usersArray[$key]['student']['studentRollId'], $usersArray[$key]['student']['email'], $usersArray[$key]['student']['username'], $examsList->examTitle, $examsList->examDescription, $examsList->examDate, $this->panelInit->settingsArray['siteTitle'], $examGradesTable); $studentTemplate = str_replace($searchArray, $replaceArray, $studentTemplate); if ($usersArray[$key]['student']['mobileNo'] != "") { $MailSmsHandler->sms($usersArray[$key]['student']['mobileNo'], $studentTemplate); } if (isset($usersArray[$key]['parents'])) { reset($usersArray[$key]['parents']); while (list($keyP, $valueP) = each($usersArray[$key]['parents'])) { if (trim($valueP['mobileNo']) != "") { $MailSmsHandler->sms($valueP['mobileNo'], $studentTemplate); } } } } } return $this->panelInit->apiOutput(true, $this->panelInit->language['examDetailsNot'], $this->panelInit->language['examNotSent']); }