Newer
Older
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Teacher_Rating extends Controller_UserEnvi {
public function before() {
Cookie::set('fD', 'true'); // Без куки файл качаться не будет, типа защита
parent::before();
}
private function GetSGID($id)
{
# $id = disciplineID
$SG_ar = json_decode(Cookie::get('SGID', null), true);
if ($SG_ar !== null)
if (array_key_exists($id, $SG_ar))
return $SG_ar[$id];
}
return 0;
$id = $this->request->param('id');
// Шапка таблицы: структура УКД (модули и мероприятия)
$structure = $db->GetMapForDiscipline($this->UserInfo['TeacherID'], $id);
throw HTTP_Exception::factory (404, "Для дисциплины с ID $id не создана УКД или такой дисциплины не существует!");
$maxRate = 0; $i = 0; $module = 0;
if($row['ModuleID'] != $module)
{
$i++;
$module = $row['ModuleID'];
}
if ($i == 1)
$twig->SubjectName = $row['SubjectName'];
if(!isset($structureHandled[$i]['SubmodulesCount']))
$structureHandled[$i]['SubmodulesCount'] = 0;
$structureHandled[$i]['MaxRate'] = 0;
$j = $structureHandled[$i]['SubmodulesCount'] += 1;
$structureHandled[$i]['MaxRate'] += (int) $row['MaxRate'];
$structureHandled[$i]['ModuleTitle'] = $row['ModuleName'];
$structureHandled[$i]['ModuleType'] = $row['ModuleType'];
$twig->examSubmoduleID = $row['SubmoduleID'];
$structureHandled[$i][$j]['SubmoduleID'] = $row['SubmoduleID'];
$structureHandled[$i][$j]['Title'] = $row['SubModuleName'];
//$structureHandled[$i][$j]['Description'] = $row['SubmoduleDescription']; // Описание
$structureHandled[$i][$j]['MaxRate'] = (int) $row['MaxRate'];
$maxRate += $row['MaxRate'];
if ($row['ModuleType'] == "exam" || $row['ModuleType'] == "extra") {
$structureHandled[$i][$j]['SubmoduleID'] = -1;
}
$structureHandled['ModulesCount'] = $i;
$structureHandled['MaxRate'] = (int) $maxRate;
$twig->headerRate = $structureHandled;
//echo debug::vars($structureHandled);
// end Шапка таблицы
// Студенты и их баллы
$students = $db->GetStudentsForRating($this->UserInfo['TeacherID'], $id);
$rateHandled = array();
$groupsHandled = array();
$i_g = 0; $i_s = 0; $curGroup = 0;
foreach($students as $row) {
// Группа
if ($curGroup !== $row['GroupID']) {
$curGroup = $row['GroupID'];
$i_g++;
$rateHandled[$i_g]['GroupID'] = $row['GroupID'];
$rateHandled[$i_g]['GroupNum'] = $row['GroupNum']; // № группы
$rateHandled[$i_g]['GradeNum'] = $row['GradeNum']; // № курса
$rateHandled[$i_g]['isAttached'] = $row['isAttached']; // #1
if ($row['Degree'] == 'bachelor')
$rateHandled[$i_g]['GradeTitle'] = $row['GradeNum'].' курс';
if ($row['Degree'] == 'specialist')
$rateHandled[$i_g]['GradeTitle'] = $row['GradeNum'].' курс';
if ($row['Degree'] == 'master')
$rateHandled[$i_g]['GradeTitle'] = 'Магистратура, '.$row['GradeNum'].' год';
$groupsHandled[$curGroup] = $rateHandled[$i_g]['GradeTitle']." ".$row['GroupNum']." группа";
}
// Студенты
$i_s++;
$rateHandled[$i_g]['Students'][$i_s]['ID'] = $row['ID'];
$rateHandled[$i_g]['Students'][$i_s]['Last'] = $row['Last'];
$rateHandled[$i_g]['Students'][$i_s]['First'] = $row['First'];
$rateHandled[$i_g]['Students'][$i_s]['Second'] = $row['Second'];
$rateHandled[$i_g]['Students'][$i_s]['isAttached'] = $row['isAttached']; // #1
// Баллы студента
$rate = $db->getMapForStudent($row['ID'], $id);
$i_r = 0;
$rateHandled[$i_g]['Students'][$i_s]['RateResult'] = 0;
foreach($rate as $r) {
$i_r++;
$rateHandled[$i_g]['Students'][$i_s]['Rates'][$i_r]['Rate'] = $r['Rate'];
$rateHandled[$i_g]['Students'][$i_s]['RateResult'] += $r['Rate'];
if ($r['ModuleType'] == 'exam' || $r['ModuleType'] == 'extra')
$rateHandled[$i_g]['Students'][$i_s]['Rates'][$i_r]['SubmoduleID'] = -1;
else
$rateHandled[$i_g]['Students'][$i_s]['Rates'][$i_r]['SubmoduleID'] = $r['SubmoduleID'];
}
$twig->rateTable = $rateHandled;
$twig->groups = $groupsHandled;
$twig->studyGroupID = $this->GetSGID($id);
{
$twig = Twig::factory('teacher/exam');
$twig->User = $this->UserInfo;
$id = $this->request->param('id');
$db = new Model_Teacher_Rating;
$dbMap = new Model_Teacher_Map;
$disc_temp = $dbMap->getDisciplineInfoByID($id);
$disciplineInfo['ExamType'] = $disc_temp[0]['ExamType'];
// Шапка таблицы: структура УКД (модули и мероприятия)
$structure = $db->GetMapForDisciplineExam($this->UserInfo['TeacherID'], $id);
if($structure->count() == 0)
throw HTTP_Exception::factory (404, "Страница не найдена");
$structureHandled = array();
$maxRate = 0; $i = 0; $module = 0; $try_1 = 0; // try = 1 - экзамен, = 2, 3 - пересдачи
$examRate = 0;
if($row['ModuleID'] != $module)
{
++$i;
$module = $row['ModuleID'];
}
if ($i == 1)
$twig->SubjectName = $row['SubjectName'];
if(!isset($structureHandled[$i]['SubmodulesCount']))
{
$structureHandled[$i]['SubmodulesCount'] = 0;
$structureHandled[$i]['MaxRate'] = 0;
}
$j = $structureHandled[$i]['SubmodulesCount'] += 1;
$structureHandled[$i]['MaxRate'] += (int) $row['MaxRate'];
$structureHandled[$i]['ModuleTitle'] = $row['ModuleName'];
$structureHandled[$i]['ModuleType'] = $row['ModuleType'];
if ($row['ModuleType'] == "exam")
$twig->examSubmoduleID = $row['SubmoduleID'];
$structureHandled[$i][$j]['SubmoduleID'] = $row['SubmoduleID'];
$structureHandled[$i][$j]['Title'] = 'Добор баллов';
if ($try === 0)
$structureHandled[$i][$j]['Title'] = 'Основная сдача';
else
$structureHandled[$i][$j]['Title'] = 'Пересдача '.$try;
//$structureHandled[$i][$j]['Description'] = $row['SubmoduleDescription']; // Описание
$structureHandled[$i][$j]['MaxRate'] = (int) $row['MaxRate'];
}
$structureHandled['ModulesCount'] = $i;
$structureHandled['MaxRate'] = (int) $maxRate;
$twig->headerRate = $structureHandled;
// end Шапка таблицы
// Студенты и их баллы по экзамену
$students = $db->GetStudentsForRating($this->UserInfo['TeacherID'], $id);
$rateHandled = array();
$groupsHandled = array();
if ($curGroupID !== $row['GroupID']) {
$curGroupID = $row['GroupID'];
$i_g++;
$rateHandled[$i_g]['GroupID'] = $row['GroupID'];
$rateHandled[$i_g]['GroupNum'] = $row['GroupNum']; // № группы
$rateHandled[$i_g]['GradeNum'] = $row['GradeNum']; // № курса
$rateHandled[$i_g]['isAttached'] = $row['isAttached']; // #1
if ($row['Degree'] == 'bachelor')
$rateHandled[$i_g]['GradeTitle'] = $row['GradeNum'].' курс';
if ($row['Degree'] == 'specialist')
$rateHandled[$i_g]['GradeTitle'] = $row['GradeNum'].' курс';
if ($row['Degree'] == 'master')
$rateHandled[$i_g]['GradeTitle'] = 'Магистратура, '.$row['GradeNum'].' год';
$groupsHandled[$curGroupID] = $rateHandled[$i_g]['GradeTitle']." ".$row['GroupNum']." группа";
$curStudent = $rateHandled[$i_g]['Students'][$i_s];
$curStudent['ID'] = $row['ID'];
$curStudent['Last'] = $row['Last'];
$curStudent['First'] = $row['First'];
$curStudent['Second'] = $row['Second'];
$curStudent['isAttached'] = $row['isAttached']; // #1
// Баллы студента
$rate = $db->getMapForStudentExam($row['ID'], $id);
$i_r = 0;
$curRate['SubmoduleID'] = $r['SubmoduleID'];
$curRate['Rate'] = $r['Rate'];
$curRate['ModuleType'] = $r['ModuleType'];
if (!is_null($r['Rate'])) {
for ($k = 1; $k < $i_r; $k++)
if ($curStudent['Rates'][$k]['ModuleType'] == 'exam')
$curStudent['Rates'][$k]['Block'] = 'True';
$total = $total[0]['Num'];
if (is_null($total)) $total = 0;
$curStudent['RateSemesterResult'] = $total - $curStudent['RateResult'];
$curStudent['RateResult'] = $total;
$rateHandled[$i_g]['Students'][$i_s] = $curStudent;
//echo Debug::vars($structureHandled);
$twig->rateTable = $rateHandled;
$twig->groups = $groupsHandled;
$twig->studyGroupID = $this->GetSGID($id);