Newer
Older
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Student_Subject extends Controller_UserEnvi {
public function action_show()
{
$id = $this->request->param('id');
$student = $this->UserInfo['StudentID'];
$discipline = Model_Discipline::getMap($id, $student);
Andrew Rudenets
committed
// Информация о предмете
$subject['Title'] = $info['SubjectName'];
if($info['ExamType'] == 'exam')
{
$subject['Control'] = 'Экзамен';
}
elseif($info['ExamType'] == 'credit')
{
$subject['Control'] = 'Зачет';
}
$subject['ExamType'] = $info['ExamType'];
$subject['PracticeCount'] = $info['PracticeCount'];
$subject['DepName'] = $info['DepName'];
Andrew Rudenets
committed
$subject['Teachers'] = $this->getTeachersForDiscipline($id);
$semester = Model_Semesters::getInfo($info['SemesterID']);
$semester['Num'] = $semester['Num'] == 1 ? 'Осенний' : 'Весенний';
$subject['Num'] = $semester['Num'];
$subject['Year'] = $semester['Year'];
Andrew Rudenets
committed
// Учебная карта дисциплины
$examRate = 0; $examMaxRate = 0;
$i = 0; $id = 0;
if($row['ModuleType'] == 'exam')
$disciplineHandled['Exam']['Rate'] = (int) $row['Rate'];
$disciplineHandled['Exam']['MaxRate'] = (int) $row['MaxRate'];
$disciplineHandled['Exam']['Date'] = $row['Date'];
$examRate += $row['Rate'];
$examMaxRate += (int) $row['MaxRate'];
$disciplineHandled['Bonus']['Description'] = $row['Description'];
$disciplineHandled['Bonus']['Rate'] = (int) $row['Rate'];
$disciplineHandled['Bonus']['MaxRate'] = (int) $row['MaxRate'];
$disciplineHandled['Bonus']['Date'] = $row['Date'];
$bonusRate += $row['Rate'];
$bonusMaxRate += (int) $row['MaxRate'];
else if($row['ModuleType'] == 'extra') {
$disciplineHandled['Extra']['Description'] = $row['Description'];
$disciplineHandled['Extra']['Rate'] += (int) $row['Rate'];
if($row['ModuleID'] != $id)
{
$i++;
$id = $row['ModuleID'];
}
if(!isset($disciplineHandled['Modules'][$i]['SubmodulesCount']))
{
$disciplineHandled['Modules'][$i]['SubmodulesCount'] = 0;
$disciplineHandled['Modules'][$i]['Rate'] = 0;
$disciplineHandled['Modules'][$i]['MaxRate'] = 0;
}
$j = $disciplineHandled['Modules'][$i]['SubmodulesCount'] += 1;
$disciplineHandled['Modules'][$i]['Rate'] += (int) $row['Rate'];
$disciplineHandled['Modules'][$i]['MaxRate'] += (int) $row['MaxRate'];
$disciplineHandled['Modules'][$i]['Title'] = $row['ModuleName'];
$disciplineHandled['Modules'][$i]['Submodules'][$j]['Title'] = $row['SubmoduleName'];
$disciplineHandled['Modules'][$i]['Submodules'][$j]['Description'] = $row['SubmoduleDescription'];
$disciplineHandled['Modules'][$i]['Submodules'][$j]['Rate'] = (int) $row['Rate'];
$disciplineHandled['Modules'][$i]['Submodules'][$j]['Date'] = $row['Date'];
$disciplineHandled['Modules'][$i]['Submodules'][$j]['MaxRate'] = (int) $row['MaxRate'];
$sRate += (int) $row['Rate'];
$sMaxRate += (int) $row['MaxRate'];
$disciplineHandled['SemesterRate'] = (int) $sRate;
$disciplineHandled['SemesterMaxRate'] = (int) $sMaxRate;
$disciplineHandled['ExamRate'] = (int) $examRate;
$disciplineHandled['ExamMaxRate'] = (int) $examMaxRate;
$disciplineHandled['BonusRate'] = (int) $bonusRate;
$disciplineHandled['BonusMaxRate'] = (int) $bonusMaxRate;
$disciplineHandled['ExtraRate'] = (int) $extraRate;
Andrew Rudenets
committed
// ПРЕДСТАВЛЕНИЕ
$twig = Twig::factory('student/subject');
$twig->User = $this->UserInfo;
$twig->Discipline = $subject;
$twig->DisciplineMap = $disciplineHandled;
Andrew Rudenets
committed
protected function getTeachersForDiscipline($id) {
$teachers = Model_Teachers::ofDiscipline($id);
Andrew Rudenets
committed
$teachersHandled = array(); $i = 0;
foreach ($teachers as $teacher)
{
$i++;
$teachersHandled[$i] = $teacher['LastName'].' '.$teacher['FirstName'].' ';
if(!empty($teacher['SecondName']))
Andrew Rudenets
committed
{
Andrew Rudenets
committed
}
}
return $teachersHandled;
}