/** * Маршрут home ( <route name="home">) * * Вызов представления (home) для отображения студентов * @param int $id_group - id группы * @param int $number_page_student - номер страницы со студентами */ public function index($id_group, $number_page_student) { if (!BaseService::isId($id_group)) { $id_group = 0; } try { $group = Group::getSelfById($id_group); $nameGroup = $group instanceof NullGroup ? '' : 'группы ' . $group->getName() . ' (кол-во студентов - ' . $group->getCountStudents() . ').'; $this->getView(array('tblstudents' => StudentHelper::getStudentsFromGroup($id_group, $number_page_student, self::MAX_ROWS_ON_PAGE), 'name_group' => $nameGroup, 'tblgroups' => GroupHelper::getGroups($id_group), 'number_page_student' => StudentHelper::getCountPagesStudents($id_group, self::MAX_ROWS_ON_PAGE, $number_page_student), 'id_group' => $id_group)); } catch (FrameworkException $frmExcep) { $this->status = self::$enumResultAction['RES_ACT_ERR']; $frmExcep->redirectToExcepPage(); } }
/** * Возвращает таблицу со студентами для выделенной группы. * * @param int $idGroup - id группы * @param int $numberPage - номер страницы * @param int $maxRowsOnPage - max записей на странице * @return string таблица со студентами для выделенной группы в формате HTML */ public static function getStudentsFromGroup($idGroup, $numberPage, $maxRowsOnPage) { $result = ''; if (!BaseService::isId($idGroup)) { return $result; } if ($maxRowsOnPage < 1) { throw new FrmworkExcep\RunTimeException('Недопустимое значение переменной $maxRowsOnPage - "' . $maxRowsOnPage . '".', StudentHelper::class, __METHOD__, 'Проверьте клиентский код вызова метода getCountPagesStudents.'); } if (!BaseService::isId($numberPage)) { $numberPage = 1; } $startRowIndex = ($numberPage - 1) * $maxRowsOnPage + 1; $endRowIndex = $startRowIndex + $maxRowsOnPage - 1; try { $group = Group::getSelfById($idGroup); } catch (FrameworkException $frmExcep) { $frmExcep->redirectToExcepPage(); } if ($group instanceof NullGroup) { return $result; } $i = 0; foreach ($group->getStudents() as $eachStudent) { $i++; if ($startRowIndex <= $i && $endRowIndex >= $i) { if ($eachStudent instanceof NullStudent) { $prefix = '<tr><td align="center"></td><td>'; $suffix = '</tr>'; } else { $prefix = '<tr><td align="center">' . $i . '</td><td>'; $suffix = '<td align="center"><a href="editstudent?id=' . $eachStudent->getId() . '&submit_val=edit">Редактировать</a> <a href="deletestudent?id=' . $eachStudent->getId() . '" onClick="return confirm (\'Вы хотите удалить студента?\');">Удалить</a> </td></tr>'; } $result .= $prefix . $eachStudent->getName() . '</td><td td align="center">' . $eachStudent->getSex() . '</td><td td align="center">' . $eachStudent->getAge() . '</td>' . $suffix; } } return $result; }
/** * Маршрут deletegroup (<route name="deletegroup">) * Удаление факультета * * @param int $id - id группы */ public function delete($id) { if (!BaseService::isId($id)) { $id = 0; } try { $group = Group::getSelfById($id); if ($group->delete()) { // Группа успешно удалена. //Задаем статус 'RES_ACT_OK' результата выполнения действия, //для автоматического редиректа на маршрут listgroup, //который вызовет представление с табл. групп: $this->status = self::$enumResultAction['RES_ACT_OK']; } else { // группа не прошла проверку правил, // поэтому вызываем заданное в табл. маршрутизации // представление (grouplist) с описанием нарушенного правила: $this->getView(array('tblgroups' => GroupHelper::getGroupsWithActions(), 'msg_validate' => 'Внимание, удаление группы невозможно: ' . $group->getBrokenRulesTotalMessage())); } } catch (FrameworkException $frmExcep) { $this->status = self::$enumResultAction['RES_ACT_ERR']; $frmExcep->redirectToExcepPage(); } }
/** * Возвращаем группу, в которой учится студент. * * @return object группa */ public function getGroup() { return $this->group ? $this->group : Group::getSelfById($this->idGroup); }