EIOS/import.php

308 lines
17 KiB
PHP
Raw Normal View History

2023-12-28 15:39:22 +03:00
<?php
session_start();
header('Content-Type: text/html; charset=utf-8');
include 'inc/_db.php';
include 'config.php';
$step =''; if(isset($_GET['step'])) $step=$_GET['step'];
//print_r($_GET);
if($step=='repair_email'){
$sql = 'SELECT id,email FROM '.$ST['dbpf'].'_users WHERE email LIKE "%@mkgtu"';
$rez = $DB->QUR_SEL($sql);
if($rez){
echo 'Выбрано: '.$rez[0].'шт. <br>'; $err=0; $suc=0;
foreach($rez as $key => $val)if($key){
$rez1=$DB->QUR('UPDATE '.$ST['dbpf'].'_users SET email="'.$val['email'].'.ru" WHERE id='.$val['id'].'');
if(!$rez1['err']) $suc++; else $err++;
//print_r($rez1);
}
echo 'Сделали: '.$suc.'шт. Ошибок: '.$err.' <br>';
}else echo 'Не выбрали!';
}
if($step=='add_grupps'){
//`id`, `data_c`, `data_u`, `name`, `descrip`, `specialnost`, `kurs`, `sokr`, `fo`, `id_teacher`
$grupps=array(
0=>array(0, 1387265041, 1387265041, '', '38.02.07', 'Банковское дело', 1, 'БДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.07', 'Банковское дело', 2, 'БДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.07', 'Банковское дело', 3, 'БДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Товароведение и экспертиза качества потребительских товаров', 1, 'Тя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Товароведение и экспертиза качества потребительских товаров', 2, 'Тя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Товароведение и экспертиза качества потребительских товаров', 3, 'Тя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Товароведение и экспертиза качества потребительских товаров', 1, 'Тзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Товароведение и экспертиза качества потребительских товаров', 3, 'Тзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '09.02.03', 'Программирвоание в компьютерных системах', 1, 'ПКСя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '09.02.03', 'Программирвоание в компьютерных системах', 2, 'ПКСя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '09.02.03', 'Программирвоание в компьютерных системах', 3, 'ПКСя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '09.02.03', 'Программирвоание в компьютерных системах', 4, 'ПКСя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.02', 'Страховое дело(по отраслям)', 1, 'СДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.02', 'Страховое дело(по отраслям)', 2, 'СДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.02', 'Страховое дело(по отраслям)', 3, 'СДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '40.02.01', 'Право и организация социального обеспечения', 1, 'ПОя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '40.02.01', 'Право и организация социального обеспечения', 2, 'ПЮя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '40.02.01', 'Право и организация социального обеспечения', 3, 'ПЮя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '40.02.01', 'Право и организация социального обеспечения', 1, 'ПОзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '40.02.01', 'Право и организация социального обеспечения', 2, 'ПЮзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '40.02.01', 'Право и организация социального обеспечения', 3, 'ПЮзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '23.02.03', 'Техническое обслуживание и ремонт автомобильного транспорта', 1, 'ТОя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '23.02.03', 'Техническое обслуживание и ремонт автомобильного транспорта', 2, 'ТОя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '23.02.03', 'Техническое обслуживание и ремонт автомобильного транспорта', 3, 'ТОя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '23.02.03', 'Техническое обслуживание и ремонт автомобильного транспорта', 4, 'ТОя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Экономика и бухгалтерский учет(по отраслям)', 2, 'ЭБзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '38.02.05', 'Экономика и бухгалтерский учет(по отраслям)', 3, 'ЭБзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ГУя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ГУя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ЗУя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ЗУя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ЗУпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ЗУпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'НДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'НДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'НДпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'НДпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ТТПпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ТТПпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ТТПпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ТТПпя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'ТДя', 'оч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ГУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ГУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ГУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ГУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'ГУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ЗУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ЗУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ЗУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ЗУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'ЗУзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ТДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ТДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ТДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ТДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'ТДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 6, 'ТДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'НДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'НДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'НДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'НДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'НДзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ПБзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ПБзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ПБзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ПБзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 1, 'ТТПзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ТТПзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ТТПзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ТТПзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'ТТПзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 2, 'ЭКзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 3, 'ЭКзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 4, 'ЭКзя', 'заоч', 0),
array(0, 1387265041, 1387265041, '', '', '', 5, 'ЭКзя', 'заоч', 0),
);
foreach($grupps as $key => $val){
$sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE sokr="'.$val[7].'" AND fo="'.$val[8].'" AND kurs='.$val[6].'';
$rez = $DB->QUR_SEL($sql);
if(!$rez){
$sql1 = 'INSERT INTO `'.$ST['dbpf'].'_grupp` (`id`, `data_c`, `data_u`, `name`, `descrip`, `specialnost`, `kurs`, `sokr`, `fo`, `id_teacher`) VALUES ('.$val[0].', '.$val[1].', '.$val[2].', "'.$val[3].'", "'.$val[4].'", "'.$val[5].'", '.$val[6].', "'.$val[7].'", "'.$val[8].'", 0)';
$rez1 = $DB->QUR($sql1);
}else{
}
}
//заоч
/*
CREATE TABLE IF NOT EXISTS `acs_grupp` (
`id` int(11) NOT NULL,
`data_c` int(11) NOT NULL,
`data_u` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`descrip` text NOT NULL,
`specialnost` varchar(255) NOT NULL,
`kurs` int(11) NOT NULL,
`sokr` varchar(255) NOT NULL,
`fo` varchar(255) NOT NULL,
`id_teacher` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=584 DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `acs_grupp`
--
INSERT INTO `acs_grupp` (`id`, `data_c`, `data_u`, `name`, `descrip`, `specialnost`, `kurs`, `sokr`, `fo`, `id_teacher`) VALUES
(6, 1387265041, 1387265041, '', '', '', 4, 'АГ', 'оч', 0),
(11, 1387265041, 1387265041, '', '', '', 2, 'АИ', 'заоч', 0),
*/
}
if($step=='check_dbnica1'){
include_once 'inc/phpquery/phpQuery.php';
$url = 'https://mkgtu.ru/sveden/education/index.html';//страница с списком всех доков
//$html = file_get_contents($url);
// создание нового cURL ресурса
$razd='education';
$cache_dir = 'tmp/'.$razd;
$cache_file= 'tmp/'.$razd.'.html';
$cache_filet= 'tmp/'.$razd.'_time.html';
if(file_exists($cache_filet)){//ПРОВЕРКА на устаревание данных
$d1 = file_get_contents($cache_filet);
$d2 = time();
$time = (60*60*23);//23 часа
if($d2-$d1>$time){//удаляем устаревшие данные
unlink($cache_file);
unlink($cache_filet);
$files=scandir($cache_dir);
foreach($files as $k => $v)if($v!='.'&&$v!='..') unlink($cache_dir.'/'.$v);
}
}
if(!file_exists($cache_dir)) mkdir($cache_dir);
if(!file_exists($cache_file)){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html=curl_exec($ch);
curl_close($ch);
file_put_contents($cache_file,$html);
file_put_contents($cache_filet,time());
}else{
$html = file_get_contents($cache_file);
}
$doc = phpQuery::newDocument($html);
//echo $doc;
//<h4 class="vikon-title-block">Документы, регламентирующие образовательный процесс образовательной организации</h4>
$tab_docs = $doc->find('#docs');//выбрали вкладку
$tab = pq($tab_docs);
$trs = $tab->find('tr');//получили все строки
$names=array(); $tr=array();
foreach($trs as $key => $val){//обходим строки
$pq = pq($val);
if($key==0){//забираем заголовки
for($i=0;$i<=8;$i++) $names[$i] = trim($pq->find('th:eq('.$i.')')->text());
}else{
for($i=0;$i<=8;$i++) {//формируем ячейки строки
$tr[$key]['td'][$i]['tit'] = $names[$i];
if($i==3){//ОП
$tr[$key]['td'][$i]['ssyl'] = array();
$td = $pq->find('td:eq('.$i.')');
$el = $td->find('a');
foreach($el as $k => $v){
$pq1 = pq($v);
$tr[$key]['td'][$i]['ssyl'][$k]['href'] = trim($pq1->attr('href'));
$tr[$key]['td'][$i]['ssyl'][$k]['name'] = trim($pq1->text());
}
}else
if($i==4){//Учебные планы
$tr[$key]['td'][$i]['ssyl'] = array();
$td = $pq->find('td:eq('.$i.')');
$el = $td->find('a');
foreach($el as $k => $v){
$pq1 = pq($v);
$tr[$key]['td'][$i]['ssyl'][$k]['href'] = trim($pq1->attr('href'));
$tr[$key]['td'][$i]['ssyl'][$k]['name'] = trim($pq1->text());
}
}else
if($i==5){//аннотации тут список ссылок!
$tr[$key]['td'][$i]['ssyl'] = array();
$td = $pq->find('td:eq('.$i.')');
$el = $td->find('li');
foreach($el as $k => $v){
$pq1 = pq($v);
$tr[$key]['td'][$i]['ssyl'][$k]['href'] = trim($pq1->find('div a')->attr('href'));
$tr[$key]['td'][$i]['ssyl'][$k]['name'] = trim($pq1->find('div a')->text());
$pq1->find('div')->remove();
$tr[$key]['td'][$i]['ssyl'][$k]['title'] = trim($pq1->text());
}
}else
if($i==6){//календарный учебный график
$tr[$key]['td'][$i]['ssyl'] = array();
$td = $pq->find('td:eq('.$i.')');
$el = $td->find('a');
foreach($el as $k => $v){
$pq1 = pq($v);
$tr[$key]['td'][$i]['ssyl'][$k]['href'] = trim($pq1->attr('href'));
$tr[$key]['td'][$i]['ssyl'][$k]['name'] = trim($pq1->text());
}
}else
if($i==7){//практики
$tr[$key]['td'][$i]['ssyl'] = array();
$td = $pq->find('td:eq('.$i.')');
$el = $td->find('li');
foreach($el as $k => $v){
$pq1 = pq($v);
$tr[$key]['td'][$i]['ssyl'][$k]['href'] = trim($pq1->find('div a')->attr('href'));
$tr[$key]['td'][$i]['ssyl'][$k]['name'] = trim($pq1->find('div a')->text());
$pq1->find('div')->remove();
$tr[$key]['td'][$i]['ssyl'][$k]['title'] = trim($pq1->text());
}
}else
if($i==8){//Методические и иные документы
$tr[$key]['td'][$i]['ssyl'] = array();
$td = $pq->find('td:eq('.$i.')');
$el = $td->find('li');
foreach($el as $k => $v){
$pq1 = pq($v);
$tr[$key]['td'][$i]['ssyl'][$k]['href'] = trim($pq1->find('div a')->attr('href'));
$tr[$key]['td'][$i]['ssyl'][$k]['name'] = trim($pq1->find('div a')->text());
$pq1->find('div')->remove();
$tr[$key]['td'][$i]['ssyl'][$k]['title'] = trim($pq1->text());
}
}
else{
$tr[$key]['td'][$i]['val'] = trim($pq->find('td:eq('.$i.')')->html());
}
}
}
//сохраним каждую строчку в файл!
$json = json_encode($tr[$key]);
$namef = $tr[$key]['td'][1]['val'].'_'.$tr[$key]['td'][2]['val'].'.json';
file_put_contents($cache_dir.'/'.$namef,$json);
}
//echo '<pre>'.print_r($names,1).'</pre>';
//echo '<pre>'.print_r($tr,1).'</pre>';
//echo $tab;
}
if($step=='lekcii'){
echo 'Импорт данных';
$up=file_get_contents('lekcii.json');
echo ' размер: '.strlen($up).' кб.<hr>';
//id name_disp spec fo kurs semestr lekcii prakt_semin_zan lab_zan zachet ekzamen kontr_rab kurs_rab kurs_pro
$up=(array)json_decode($up);
foreach($up as $k => $v){
$sql = 'SELECT * FROM '.$ST['dbpf'].'_lections WHERE name="'.$v->name_disp.'" AND specialnost="'.$v->spec.'" AND kurs="'.$v->kurs.'" AND semestr="'.$v->semestr.'"';
$rez = $DB->QUR_SEL($sql);
if(!$rez){
$rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_lections VALUES (0,'.mktime().','.mktime().',0,"'.$v->spec.'",'.$v->kurs.','.$v->semestr.',"'.$v->name_disp.'","'.$v->name_disp.'","")');
if(!$rez['err']){
$id_lection=mysql_insert_id();
$id_grupp=get_grupp($v->spec,$v->fo,$v->kurs);
if($id_grupp!=0){
$rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_lections_grupp VALUES (0,'.mktime().','.$id_lection.','.$id_grupp.')');
}
if ($v->kontr_rab=="есть"){
$rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_controln VALUES (0,'.mktime().','.mktime().',0,'.$id_lection.',"'.$v->name_disp.'","","")');
}
if ($v->lab_zan=="есть"){
$rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_practich VALUES (0,'.mktime().','.mktime().',0,'.$id_lection.',"'.$v->name_disp.'","","")');
}
}
}
}
}
function get_grupp($n,$f,$k){
GLOBAL $ST,$DB; $out=0;
$sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE sokr="'.$n.'" AND fo="'.$f.'" AND kurs='.$k.'';
$rez = $DB->QUR_SEL($sql);
if($rez){
$out=$rez[1]['id'];
}
return $out;
}
?>