Newer
Older
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Student_Subject extends Controller_Environment_Student
$rates = Model_Rating::getRates($id, $this->user->StudentID);
$map = self::generateDisciplineMapFrom($rates);
'Discipline' => $discipline,
'Teachers' => self::getTeachersListOf($discipline),
'DisciplineMap' => $map['Modules'],
'Submodules' => $map['Submodules'],
'Semester' => Model_Semesters::load($discipline->SemesterID),
private static function &getTeachersListOf(Model_Discipline $discipline) {
$teachers = $discipline->getTeachers()->as_array();
foreach ($teachers as &$t) {
$name = [ $t['LastName'], $t['FirstName'], $t['SecondName'] ];
$t['Name'] = trim(implode($name, ' '));
Andrew Rudenets
committed
}
}
private static function generateDisciplineMapFrom(Database_Result $rates) {
$disMap = []; # not sure, what it is about :(
$examRate = 0; # completely legacy code, baby
$extraRate = 0;
$examMaxRate = 0;
$disMap['Extra']['Rate'] = 0;
foreach ($rates as $row) {
switch ($row['ModuleType']) {
case 'exam':
$examRate += $row['Rate'];
$examMaxRate += (int)$row['MaxRate'];
$disMap['Exam'] = array(
'Rate' => (int)$row['Rate'],
'MaxRate' => (int)$row['MaxRate'],
'Date' => $row['Date'],
);
break;
case 'bonus':
break;
case 'extra':
$extraRate += (int)$row['Rate'];
$disMap['Extra']['Description'] = $row['Description'];
$disMap['Extra']['Rate'] += (int)$row['Rate'];
break;
default:
$id = $row['ModuleID'];
$module =& $disMap['Modules'][$id];
$module['Title'] = $row['ModuleName'];
$module['Submodules'][] = $row['SubmoduleID'];
'Date' => $row['Date'],
'Title' => $row['SubmoduleName'],
'Description' => $row['SubmoduleDescription'],
'Rate' => $row['Rate'],
'MaxRate' => $row['MaxRate'],
];
}
}
$disMap['ExamRate'] = (int)$examRate;
$disMap['ExamMaxRate'] = (int)$examMaxRate;
$disMap['ExtraRate'] = (int)$extraRate;
return ['Modules' => $disMap, 'Submodules' => $submodules];