attendancelog/inc/attendancelog.php

129 lines
5.4 KiB
PHP
Raw Permalink Normal View History

2024-11-12 13:08:43 +03:00
<?php
class attendancelog {
private string $name;
private $DB;
public function __construct($DB, $name){
$this->DB = $DB;
$this->name = $name;
}
function getAllGrupps() {
$sql_search = 'SELECT id, sokr, fo, kurs FROM acs_grupp WHERE fo="ОФО" ORDER BY `sokr` DESC';
2024-11-12 13:08:43 +03:00
$rez = $this->DB->QUR_SEL($sql_search);
return $rez;
}
function getStudentsByGroup($groupName,$educationForm)
{
$educationForm = urlencode($educationForm);
$groupName = urlencode($groupName);
$url = 'https://eios.mkgtu.ru/api.php?des=studentsByGrupp&param1=' . $groupName . '&param2=' . $educationForm;
return json_decode(file_get_contents($url),1);
}
function getClassesByGroup($groupName,$educationForm)
{
$tmp = explode('-', $groupName);
$groupName = trim($tmp[0]);
$groupNumber = substr($tmp[1],0,2);
$educationForm = urlencode($educationForm);
$groupName = urlencode($groupName);
$groupNumber = urlencode($groupNumber);
$url = 'https://local.mkgtu.ru/raspisnew/api.php?des=raspis_grupp&name='. $groupName .'&number='. $groupNumber .'&fo=' . $educationForm;
return json_decode(file_get_contents($url),1);
//return $url;
}
function currentTime() { //возвращает информацию о текущем моменте для пользователя
$rez = array();
$moment = getdate();
$curr_minutes = $moment['hours'] * 60 + $moment['seconds'];
$minutes = 480;
for($i = 1; $i < 8; $i++) { //возвращает текущую пару в университете
if ($curr_minutes >= $minutes-10 AND $curr_minutes <= $minutes + 90){
$rez['time1'] = $i;
}
if ($i == 4){
$minutes = $minutes + 110;
}else{
$minutes = $minutes + 100;
}
}
$week = json_decode(file_get_contents('https://local.mkgtu.ru/raspisnew/api.php?des=raspis_week_cur'),1);
$rez['day1'] = $moment['wday'];
$rez['mday'] = $moment['mday'];
$rez['mon'] = $moment['mon'];
$rez['0'] = $moment['0'];
$rez['year'] = $moment['year'];
$rez['date'] = date("Y-m-d");
$rez['week1'] = $week['week_cur'];
return $rez;
}
2024-11-12 14:57:17 +03:00
function getGroupNameByID($id) {
$sql_search = 'SELECT sokr, fo FROM acs_grupp WHERE id='. $id .' ';
return $this->DB->QUR_SEL($sql_search);
}
2024-11-12 13:08:43 +03:00
function mainPageAction()
{
$des = ''; if(isset($_GET['des'])) $des = $_GET['des'];
if ($des == 'show'){
//получаем список пар по имени группы
// $current_group = $this->getGroupNamebyID($_GET['id']);
// return $this->getStudentsByGroup($current_group[1]['sokr'], $current_group[1]['fo']);
2024-11-12 14:57:17 +03:00
$current_group = $this->getGroupNamebyID($_GET['id']);
$current_group_classes = $this->getClassesByGroup($current_group[1]['sokr'], $current_group[1]['fo']);
$currentTime = $this->currentTime();
$out = array();
foreach ($current_group_classes['raspis'] as $class) {
2024-11-14 17:03:15 +03:00
if ($class['week1'] == $currentTime['week1']) {
$out['info'][$class['day1']]['day_name'] = $class['day_name'];
$out['info'][$class['day1']][$class['time1']] = $class;
$out['students'] = $this->getStudentsByGroup($current_group[1]['sokr'], $current_group[1]['fo']);
}
}
return $out;
2024-11-12 13:08:43 +03:00
}
}
function HTML()
{
$html = '';
$groups = $this->getAllGrupps();
$actionResult = $this->mainPageAction();
$currentTime = $this->currentTime();
2024-11-12 13:08:43 +03:00
//$html .= '<pre>'. print_r($groups,1) . '</pre>';
$html .= '<pre>'. print_r($actionResult,1) . '</pre>';
$html .= '<pre>'. print_r($currentTime,1) . '</pre>';
//$html .= '<pre>'. print_r($_GET,1) . '</pre>';
//$html .= '<pre>'. print_r($_POST,1) . '</pre>';
//$html .= '<pre>'. print_r($_SESSION,1) . '</pre>';
2024-11-12 13:08:43 +03:00
GLOBAL $smarty;
$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);
2024-11-12 13:08:43 +03:00
if($page == 'headman') {
$smarty->clearCache('moduls/attendancelog/tpl/headman.html');
$html .= $smarty->fetch('moduls/attendancelog/tpl/headman.html');
}
if ($page == ''){
$smarty->assign('groups',$groups);
$smarty->clearCache('moduls/attendancelog/tpl/main_page.html');
$html .= $smarty->fetch('moduls/attendancelog/tpl/main_page.html');
}
if ($page == 'main'){
2024-11-12 14:57:17 +03:00
if ($des == 'show'){
$smarty->assign('actionResult', $actionResult);
$groupName = $this->getGroupNameByID($_GET['id']);
$groupName = $groupName[1]['sokr'];
$smarty->assign('groupName', $groupName);
}
2024-11-12 13:08:43 +03:00
$smarty->assign('groups',$groups);
$smarty->clearCache('moduls/attendancelog/tpl/main_page.html');
$html .= $smarty->fetch('moduls/attendancelog/tpl/main_page.html');
}
return $html;
}
}