<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Teacher_Rating extends Controller_UserEnvi { private function GetSGID($id) { # $id = disciplineID $SG_json = json_decode(Cookie::get('SGID', null), true); if ($SG_json !== null) { //var_dump($SG_json); if (array_key_exists($id, $SG_json)) return $SG_json[$id]; else return 0; } else return 0; } public function action_edit() { $twig = Twig::factory('teacher/rating'); $twig->User = $this->UserInfo; $id = $this->request->param('id'); $db = new Model_Teacher_Rating; // Шапка: модули и подмодули $discipline = $db->GetMapForDiscipline($this->UserInfo['TeacherID'], $id); if($discipline->count() == 0) throw HTTP_Exception::factory (404, "Для дисциплины с ID $id не создана УКД или такой дисциплины не существует!"); $disciplineHandled = array(); $maxRate = 0; $i = 0; $module = 0; foreach($discipline as $row) { if($row['ModuleID'] != $module) { $i++; $module = $row['ModuleID']; } if ($i == 1) $disciplineHandled['SubjectName'] = $row['SubjectName']; if(!isset($disciplineHandled[$i]['SubmodulesCount'])) { $disciplineHandled[$i]['SubmodulesCount'] = 0; $disciplineHandled[$i]['MaxRate'] = 0; } $j = $disciplineHandled[$i]['SubmodulesCount'] += 1; $disciplineHandled[$i]['MaxRate'] += (int) $row['MaxRate']; $disciplineHandled[$i]['ModuleTitle'] = $row['ModuleName']; $disciplineHandled[$i]['ModuleType'] = $row['ModuleType']; $disciplineHandled[$i][$j]['SubmoduleID'] = $row['SubmoduleID']; $disciplineHandled[$i][$j]['Title'] = $row['SubModuleName']; $disciplineHandled[$i][$j]['Description'] = $row['SubmoduleDescription']; $disciplineHandled[$i][$j]['MaxRate'] = (int) $row['MaxRate']; $maxRate += $row['MaxRate']; } $disciplineHandled['ModulesCount'] = $i; $disciplineHandled['MaxRate'] = (int) $maxRate; //echo debug::vars($disciplineHandled); $twig->headerRate = $disciplineHandled; // Студенты и баллы $students = $db->GetStudentsForRating($this->UserInfo['TeacherID'], $id); $studentsHandled = array(); $i = 0; $curGroup = 0; $groups = array(); foreach($students as $row) { $i++; $studentsHandled[$i]['ID'] = $row['ID']; $studentsHandled[$i]['Last'] = $row['Last']; $studentsHandled[$i]['First'] = $row['First']; $studentsHandled[$i]['Second'] = $row['Second']; $studentsHandled[$i]['GradeNum'] = $row['GradeNum']; if ($row['Degree'] == 'bachelor') $studentsHandled[$i]['GradeTitle'] = $row['GradeNum'].' курс'; if ($row['Degree'] == 'specialist') $studentsHandled[$i]['GradeTitle'] = $row['GradeNum'].' курс'; if ($row['Degree'] == 'master') $studentsHandled[$i]['GradeTitle'] = 'Магистратура, '.$row['GradeNum'].' год'; $studentsHandled[$i]['GroupNum'] = $row['GroupNum']; $studentsHandled[$i]['GroupID'] = $row['GroupID']; if ($row['GroupID'] != $curGroup) { $curGroup = $row['GroupID']; $groups[$curGroup] = $studentsHandled[$i]['GradeTitle']." ".$row['GroupNum']." группа"; } $studentsHandled[$i]['isAttached'] = $row['isAttached']; $rate = $db->getMapForStudent($row['ID'], $id); $j = 0; foreach($rate as $r) { $j += 1; $studentsHandled[$i][$j]['SubmoduleID'] = $r['SubmoduleID']; $studentsHandled[$i][$j]['Rate'] = $r['Rate']; } $studentsHandled[$i]['RateCount'] = $j; } $twig->tableRate = $studentsHandled; $twig->groups = $groups; $twig->studyGroupID = $this->GetSGID($id); $this->response->body($twig); } }