public function __construct() { parent::__construct(); //$this->storage = new Storage ('../private/materials'); $this->storage = Resources::getInstance()->materials_storage; $this->attachObserver(Model_ControlWork::create()); $this->_checkRightsObject = Model_CheckRigths::create(); }
/** * Отображение списка слушателей, изучающих дисциплину. * * @params['discipline_id'] Идентификатор дисциплины. */ public function action_discipline($params) { $modelEducationPrograms = Model_Education_Programs::create(); $modelOpenSect = Model_OpenSection::create(); $modelCredit = Model_Credit::create(); $modelControlWork = Model_ControlWork::create(); $modelUser = Model_User::create(); $data = array(); $userList = $modelEducationPrograms->getStudentsByDiscipline($params['discipline_id']); $openSections = $modelOpenSect->getOpenSectionsByDiscipline($params['discipline_id']); $creditSections = $modelCredit->getCreditsByDiscipline($params['discipline_id']); //print_r($creditSections); die(); $modelEducationPrograms->getDiscipline($params['discipline_id'], $title, $labourIntensive, $coef); $sections = $modelEducationPrograms->getSectionsByDiscipline($params['discipline_id']); // вот чисто философский вопрос: а этот код действительно должн быть здесь? //print_r($userList); die(); foreach ($userList as &$rec) { $userInfo = $modelUser->getUserInfo($rec['user_id']); $name = $userInfo['surname'] . ' ' . $userInfo['name'] . ' ' . $userInfo['patronymic']; $data[$rec['user_id']] = array('name' => $name, 'open_sections' => array(), 'credit_sections' => array('ids' => array(), 'dates' => array())); for ($i = 0; $i < count($openSections); $i++) { if ($openSections[$i]['student_id'] == $rec['user_id']) { array_push($data[$rec['user_id']]['open_sections'], $openSections[$i]['section_id']); unset($openSections[$i][$rec['user_id']]); } } $lastCreditedSection = -1; for ($i = 0; $i < count($creditSections); $i++) { if ($creditSections[$i]['student_id'] == $rec['user_id']) { $lastCreditedSection = $creditSections[$i]['section_id']; array_push($data[$rec['user_id']]['credit_sections']['ids'], $creditSections[$i]['section_id']); array_push($data[$rec['user_id']]['credit_sections']['dates'], $creditSections[$i]['created_date']); unset($creditSections[$i][$rec['user_id']]); } } if (!$modelCredit->isDisciplineCredited($params['discipline_id'], $rec['user_id'])) { if ($lastCreditedSection == -1) { $firstSectAr = $modelEducationPrograms->getFirstSectionIdOfDiscipline($params['discipline_id']); $data[$rec['user_id']]['first_uncredited_section'] = $firstSectAr; } else { $data[$rec['user_id']]['first_uncredited_section'] = $modelEducationPrograms->getNextSectionOfDiscipline($params['discipline_id'], $lastCreditedSection); } $data[$rec['user_id']]['cur_control_works'] = $modelControlWork->getStudentMarksBySection($rec['user_id'], $data[$rec['user_id']]['first_uncredited_section']); } } //print_r($data); die(); $this->set('discipline_id', $params['discipline_id']); $this->set('discipline_title', $title); $this->set('data', $data); $this->set('sections', $sections); $this->set('TYPE_NAMES', $modelControlWork->getControlNamesMap()); $this->set('MARK_NAMES', $modelControlWork->getMarkNamesMap()); $this->render('teacher_courses/discipline'); }
/** * Отображение куратору успеваемости слушателя по дисциплине. * * @params['student_id'] Идентификатор студента. * @params['discipline_id'] Идентификатор дисциплины. */ public function action_discipline($params) { $model_credit = Model_Credit::create(); $model_control_work = Model_ControlWork::create(); $model_education_programs = Model_Education_Programs::create(); $model_user = Model_User::create(); $model_education_programs->getDiscipline($params['discipline_id'], $title, $labourIntensive, $coef); $this->set('test_results', $model_control_work->getStudentTestResultsByDiscipline($params['student_id'], $params['discipline_id'])); $this->set('credits', $model_credit->getStudentCreditsByDiscipline($params['student_id'], $params['discipline_id'])); $this->set('control_works', $model_control_work->getStudentMarksByDiscipline($params['student_id'], $params['discipline_id'])); $this->set('control_names_map', $model_control_work->getControlNamesMap()); $this->set('mark_names_map', $model_control_work->getMarkNamesMap()); $this->set('discipline_title', $title); $this->set('sections', $model_education_programs->getSectionsByDiscipline($params['discipline_id'])); $this->set('user_id', $params['student_id']); $this->set('user_info', $model_user->getUserInfo($params['student_id'])); $this->render('teacher_students/discipline'); }
/** * Отображение доступных учебных материалов. */ public function action_show(array $params = array()) { $a = Model_Test::create(); $a->test(); $links = Resources::getInstance()->links; if (!isset($params['discipline_id']) || is_int($params['discipline_id'])) { $this->flash('Не указан идентификатор дисциплины', $links->get('student.programs')); } $discipline_id = intval($params['discipline_id']); $user = Model_User::create(); $udata = (object) $user->getAuth(); $session = Resources_Abstract::getInstance()->session; // если данных о доступных дисциплинах нет - вычислить if (!isset($session->availDisciplines)) { $student = Model_Education_Students::create(); $avail_programs = $student->getAvailDisciplinesForPrograms($udata->user_id); $avail_disciplines = $student->getAvailDisciplinesSeparate($udata->user_id); } $discipline_open = in_array($discipline_id, $session->availDisciplines); if ($discipline_open) { // дисциплина доступна $disc = Model_Discipline::create(); $discipline_data = $disc->get($discipline_id); $section = Model_Section::create(); $sections = $section->getAllByDiscipline($discipline_id); $modelApps = Model_Application::create(); $statuses = $modelApps->getAppsStatus($discipline_id, $udata->user_id); //== Model_Application::STATUS_FINISHED; $statusFinished = array_key_exists(Model_Application::STATUS_FINISHED, $statuses); $material = Model_Educational_Materials::create(); $materials = $material->getAllByDiscipline($discipline_id, $statusFinished); $control_work = Model_ControlWork::create(); $tests = $control_work->getTestsByDiscipline($discipline_id); $this->set('discipline', $discipline_data); $this->set('sections', $sections); $this->set('materials', $materials); $this->set('tests', $tests); $this->set('user_id', $udata->user_id); //print_r($materials); $this->render(); } else { $this->flash('Данная дисциплина на данный Вам недоступна. Возможно Вы не полностью оплатили заявку по данной дисциплине или программе, содержащей данную дисциплину, либо вообще не подавали заявку на ее изучение.', $links->get('student.programs'), 5); } }
function __construct() { parent::__construct(); $this->attachObserver(Model_ControlWork::create()); }