diff --git a/inc/attendancelog.php b/inc/attendancelog.php index 70171b6..b4b0193 100644 --- a/inc/attendancelog.php +++ b/inc/attendancelog.php @@ -6,10 +6,60 @@ class attendancelog { $this->DB = $DB; $this->name = $name; } - function getAllGrupps() { - $sql_search = 'SELECT id, sokr, fo, kurs FROM acs_grupp WHERE fo="ОФО" ORDER BY `sokr` DESC'; - $rez = $this->DB->QUR_SEL($sql_search); - return $rez; + public function currentUserInfo() + { + $currentUserInfo = array(); + if(isset($_SESSION['user']['teacher'])) + { + $currentUserInfo['role'] = 'teacher'; + $currentUserInfo['user_id'] = $_SESSION['user']['id']; + $currentUserInfo['teacher_id'] = $_SESSION['user']['teacher']['id']; + if(isset($_SESSION['user']['teacher']['fakultet'])){ + $sql_search = 'SELECT id FROM acs_faculties WHERE name="'. $_SESSION['user']['teacher']['fakultet'] .'"'; + $tmp = $this->DB->QUR_SEL($sql_search); + unset($tmp[0]); + $currentUserInfo['facult']['facult_name'] = $_SESSION['user']['teacher']['fakultet']; + $currentUserInfo['facult']['facult_id'] = $tmp[1]['id']; + $sql_search = 'SELECT id, sokr, fo FROM acs_grupp WHERE id_facult="'.$tmp[1]['id'] .'" AND sokr NOT LIKE "Выпуск%"'; + $tmp = $this->DB->QUR_SEL($sql_search); + unset($tmp[0]); + foreach($tmp as $grupp){ + $currentUserInfo['related_grupps'][$grupp['sokr']] = $grupp ; + } + + } + return $currentUserInfo; + }else if(isset($_SESSION['user']['student'])) + { + $currentUserInfo['role'] = 'student'; + $currentUserInfo['user_id'] = $_SESSION['user']['id']; + $currentUserInfo['student_id'] = $_SESSION['user']['student']['id']; + $currentUserInfo['grupp_id'] = $_SESSION['user']['student']['grupp']['id']; + if(isset($_SESSION['user']['student']['grupp'])){ + $currentUserInfo['facult']['facult_id'] = $_SESSION['user']['student']['grupp']['id_facult']; + $sql_search = 'SELECT name FROM acs_faculties WHERE id='. $currentUserInfo['facult']['facult_id'] .' '; + $tmp = $this->DB->QUR_SEL($sql_search); + unset($tmp[0]); + } + return $currentUserInfo; + + } +// else if(isset($_SESSION['user']['statuses']['25'])) +// { +// +// }else{ +// +// } + } + function getAllGrupps($facult = '') { + if($facult != ''){ + $sql_search = 'SELECT id, sokr, fo, kurs FROM acs_grupp WHERE fo="ОФО" AND id_facult="'. $facult .'" AND sokr NOT LIKE "Выпуск%" ORDER BY `sokr` DESC'; + }else{ + $sql_search = 'SELECT id, sokr, fo, kurs FROM acs_grupp WHERE fo="ОФО" AND sokr NOT LIKE "Выпуск%" ORDER BY `sokr` DESC'; + } + $tmp = $this->DB->QUR_SEL($sql_search); + unset($tmp[0]); + return $tmp; } function getStudentsByGroup($groupName,$educationForm) { @@ -59,23 +109,19 @@ class attendancelog { function getGroupNameByID($id) { $sql_search = 'SELECT sokr, fo FROM acs_grupp WHERE id='. $id .' '; return $this->DB->QUR_SEL($sql_search); + //$tmp = $this->DB->QUR_SEL($sql_search); + // unset($tmp[0]); + // return $tmp; } public function getWeekByDate($ts=0) { $url = 'https://local.mkgtu.ru/raspisnew/api.php?des=raspis_week_cur&ts=' . $ts; $awn = json_decode(file_get_contents($url),1); return $awn['week_cur']; } - public function AttendanceAddEdit() { if(isset($_POST['attendance_add_edit'])){ - foreach ($_POST['attendance_add_edit']['attendance'] as $student_name => $student_att){ - if ($student_att == 'on'){ - $student_att = 1; - }else{ - $student_att = 0; - } $sql_search = 'SELECT id FROM acs_attendancelog_students_attendance WHERE name="'. $student_name .'" AND gruppa="'. $this->DB->rescape($_POST['attendance_add_edit']['info']['gruppa']) .'" AND date1="'. $this->DB->rescape($_POST['attendance_add_edit']['info']['date']) .'" AND time1='. $this->DB->rescape($_POST['attendance_add_edit']['info']['time1']) .' AND predmet="'. $this->DB->rescape($_POST['attendance_add_edit']['info']['predmet']) .'" '; $search = $this->DB->QUR_SEL($sql_search); if (isset($search[1])){ @@ -88,14 +134,16 @@ class attendancelog { } + $rez['date_cur'] = $_POST['attendance_add_edit']['info']['date']; return $rez; } } function mainPageAction() { + $currentUserInfo = $this->currentUserInfo(); $des = ''; if(isset($_GET['des'])) $des = $_GET['des']; if ($des == 'show'){ - $current_group = $this->getGroupNamebyID($_GET['id']); + $current_group = $this->getGroupNamebyID((int)$_GET['id']); $current_group_classes = $this->getClassesByGroup($current_group[1]['sokr'], $current_group[1]['fo']); $currentTime = $this->currentTime(); $out = array(); @@ -119,12 +167,7 @@ class attendancelog { $sql_search = 'SELECT name, att FROM acs_attendancelog_students_attendance WHERE name="'. $student_name .'" AND gruppa="'. $current_group[1]['sokr'] .'" AND date1="'. $db_date .'" AND time1='. $class['time1'] .' AND predmet="'. $class['predmet'] .'" '; $search = $this->DB->QUR_SEL($sql_search); if(isset($search[1])){ - if($search[1]['att'] == 1){ - $db_att = 'on'; - }else{ - $db_att = 'off'; - } - $out['day_info'][$class['time1']]['students'][$student_name] = $db_att; + $out['day_info'][$class['time1']]['students'][$student_name] = $search[1]['att']; } } @@ -136,42 +179,56 @@ class attendancelog { } function HTML() { + GLOBAL $smarty; $html = ''; - $groups = $this->getAllGrupps(); + $currentUserInfo = $this->currentUserInfo(); $currentTime = $this->currentTime(); - $AttendanceAddEdit = $this->AttendanceAddEdit(); + $AttendanceAddEdit = $this->AttendanceAddEdit();// должен вызываться перед mainPageAction $actionResult = $this->mainPageAction(); + + //$html .= '
'. print_r($groups,1) . ''; + //$html .= '
'. print_r($currentUserInfo,1) . ''; //$html .= '
'. print_r($actionResult,1) . ''; //$html .= '
'. print_r($currentTime,1) . ''; + //$html .= '
'. print_r($_SESSION,1) . ''; //$html .= '
'. print_r($AttendanceAddEdit,1) . ''; //$html .= '
'. print_r($_GET,1) . ''; //$html .= '
'. print_r($_POST,1) . ''; - $html .= '
'. print_r($_SESSION,1) . ''; - GLOBAL $smarty; + //$html .= '
'. print_r($_SESSION,1) . ''; + $page = ''; if(isset($_GET['page'])) $page = $_GET['page']; $des = ''; if(isset($_GET['des'])) $des = $_GET['des']; $smarty->assign('des', $des); $smarty->assign('name', $this->name); $smarty->assign('currentTime', $currentTime); + $smarty->assign('currentUserInfo', $currentUserInfo); if($page == 'headman') { $smarty->clearCache('moduls/attendancelog/tpl/headman.html'); $html .= $smarty->fetch('moduls/attendancelog/tpl/headman.html'); } if ($page == ''){ + if($currentUserInfo['role'] == 'student'){ + $header = "Location: https://eios.mkgtu.ru/modul/attendancelog/main/show/" . $currentUserInfo['grupp_id'] . '/'; + header($header); + } + $groups = $this->getAllGrupps(); + $facult_groups = $this->getAllGrupps($currentUserInfo['facult']['facult_id']); $smarty->assign('groups',$groups); + $smarty->assign('facult_groups',$facult_groups); $smarty->clearCache('moduls/attendancelog/tpl/main_page.html'); $html .= $smarty->fetch('moduls/attendancelog/tpl/main_page.html'); } - if ($page == 'main'){ + if ($page == 'main'){//Староста if ($des == 'show'){ + $smarty->assign('AttendanceAddEdit', $AttendanceAddEdit); $smarty->assign('actionResult', $actionResult); - $groupName = $this->getGroupNameByID($_GET['id']); + $groupName = $this->getGroupNameByID((int)$_GET['id']); $groupName = $groupName[1]['sokr']; $smarty->assign('groupName', $groupName); } - $smarty->assign('groups',$groups); + //$smarty->assign('groups',$groups); $smarty->clearCache('moduls/attendancelog/tpl/main_page.html'); $html .= $smarty->fetch('moduls/attendancelog/tpl/main_page.html'); diff --git a/tpl/main_page.html b/tpl/main_page.html index c001c58..b2d2f93 100644 --- a/tpl/main_page.html +++ b/tpl/main_page.html @@ -1,33 +1,33 @@