$val){ if($val['name']==1) $SET[] = 'nappodgo="'.$val['value'].'"'; if($val['name']==2) $SET[] = 'propodgo="'.$val['value'].'"'; if($val['name']==3) $SET[] = 'obrpro="'.$val['value'].'"'; } $sql1 = 'UPDATE '.$TB['iup_shahtplans_plans'].' SET '.implode(',',$SET).' WHERE id_file='.$p['id'].' LIMIT 1'; $rez1 = $DB->QUR($sql1); if(!$rez1['err']){ $out['html'] = 'Внесли изменения в план. Теперь ошибки не должно быть, обновите страницу и посмотрите'; }else{ $out['html'] = 'Не внесли изменения в план. Измените файл PLX (в синей звезде) и укажите необходимые данные. Частая ошибка при указании профиля подготовки, запишите в название "Направление подготовки:Техносферная безопасность Профиль: Охрана природной среды и ресурсосбережение", в одной строке укажите направление и профиль'; } } if($_POST['ajdes']=='btnerrisp'){ $id = $_POST['id']; $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.' LIMIT 1'; $rez = $DB->QUR_SEL($sql); if($rez&&isset($rez[1])){ $plan_titul = $rez[1]; $plan_titul = ShahtPlan_Get_Info($plan_titul); $out['html'] = 'План: '.$plan_titul['napravlenie'].' '.$plan_titul['godob'].'
'; $out['html'] .= '

Ошибки:

'; foreach($plan_titul['pp'] as $k => $v)if($k){ if(isset($plan_titul['pp1'][$k])&&$plan_titul['pp1'][$k]!=$v) { $f='пусто'; if($plan_titul['pp1'][$k]!='') $f=$plan_titul['pp1'][$k]; $out['html'] .= '

Должно быть:'.$v.', а в файле '.$f.'
'; $out['html'] .= '

'; } } $out['html'] .= 'Сохранить'; $out['html'] .= ''; $out['html'] .= '

'; //$out['html'] .= '
'.print_r($plan_titul,1).'
'; } } echo json_encode($out); exit(); } $zamdeknaprav = iup_get_zamdeknaprav($_SESSION['user']['teacher']['fakultet']); //$zamdeknaprav = iup_get_zamdeknaprav_old($_SESSION['user']['teacher']['fakultet']); if(isset($_POST['lkkafedry_back'])){//возвращаем атт.комм. $id_zayavka = (int)$_POST['id_zayavka']; $sql = 'UPDATE '.$TB['iup_studentzayavks'].' SET status=2 WHERE id='.$id_zayavka.''; $rez = $DB->QUR_SEL($sql); if($rez){ send_email_iup($id_zayavka); $sql = 'INSERT INTO '.$TB['iup_statuses'].' VALUES(0,'.time().','.$id_zayavka.','.$_SESSION['user']['id'].',3,2,"")'; $rez = $DB->QUR($sql); if($rez){ $msg['msg'][]='Время изменения статуса сохранено!';} else{ $msg['err'][]='Время изменения статуса не сохранено!'; } save_logs('ИУП: lkkafedry возвращаем атт.комм. №'.$id_zayavka); } } if(isset($_POST['lkkafedry_zaversh'])||isset($_POST['lkkafedry_gotovo'])){//сохраняем выставленные режимы для предметов $id_zayavka = (int)$_POST['id_zayavka']; //загрузка файла umu_file if(isset($_POST['del_file'])){foreach($_POST['del_file'] as $fid => $val){ $sql = 'SELECT * FROM '.$TB['iup_kafedrs_files'].' WHERE id_user='.$_SESSION['user']['id'].' AND id='.$fid.''; $rez = $DB->QUR_SEL($sql); if($rez){ $val = $rez[1]; unlink($val['file']); $rez = $DB->QUR_SEL('DELETE FROM '.$TB['iup_kafedrs_files'].' WHERE id_user='.$_SESSION['user']['id'].' AND id='.$fid.''); $msg['err'][]='Файл удален!'; }else{ $msg['err'][]='Файл не найден в базе данных.'; } save_logs('ИУП: lkkafedry удаление файла из заявки №'.$id_zayavka); }} //echo '
'.print_r($_FILES,1).'
'; if(isset($_FILES['umu_file'])){ //foreach($_FILES['umu_file']['tmp_name'] as $k => $v){ $v = $_FILES['umu_file']['tmp_name']; if($v!=''){//загружаем файл $dir_dest = 'upload/iup/'.$_SESSION['user']['id'].'/'; if(!file_exists($dir_dest)) mkdir($dir_dest); $fil = $_FILES['umu_file']['name']; $t = explode('.',$fil); $ext = $t[count($t)-1]; unset($t[count($t)-1]); $fn = implode('.',$t); $uploadfile = $dir_dest . basename(translit($fn).'.'.$ext); //if (move_uploaded_file($v, $uploadfile)) { if ($SYSTEMclass->sysUPLOAD($v, $uploadfile)) { $sql1 = 'INSERT INTO `'.$TB['iup_kafedrs_files'].'` VALUES (0,'.time().','.$_SESSION['user']['id'].','.$id_zayavka.',"Файл кафедры ИУП","'.$uploadfile.'",1);'; $rez1 = $DB->QUR($sql1); if($rez1){ $msg['msg'][]='Файл загружен и сохранен в БД!'; }else{ $msg['err'][]='Файл загружен и не сохранен в БД!'; } } else { $msg['err'][]='Файл не загружен!'; } save_logs('ИУП: lkkafedry загрузка файла в заявку №'.$id_zayavka); } //} } if(isset($_POST['chat_umu'])&&$_POST['chat_umu']!=''){//сохраняем чат с уму $chat_umu = addslashes(htmlspecialchars(strip_tags($_POST['chat_umu']))); $sql = 'INSERT INTO '.$TB['iup_kafumu_chat'].' VALUES(0,'.time().','.$_SESSION['user']['id'].','.$id_zayavka.',"'.$_SESSION['user']['fio'].'","'.$chat_umu.'",1)'; $rez = $DB->QUR_SEL($sql); } if(isset($_POST['lkkafedry_gotovo'])){//меняем статус у заявки $sql = 'UPDATE '.$TB['iup_studentzayavks'].' SET status=4 WHERE id='.$id_zayavka.''; $rez = $DB->QUR_SEL($sql); if($rez){ send_email_iup($id_zayavka); $sql = 'INSERT INTO '.$TB['iup_statuses'].' VALUES(0,'.time().','.$id_zayavka.','.$_SESSION['user']['id'].',3,4,"")'; $rez = $DB->QUR($sql); if($rez){ $msg['msg'][]='Время изменения статуса сохранено!';} else{ $msg['err'][]='Время изменения статуса не сохранено!'; } } } $des = 'show'; } if(isset($_POST['shaht_save'])){//загрузка нового файла $shaht_napravlenie = addslashes($_POST['shaht_napravlenie']); $naprav = addslashes($_POST['naprav']); $shaht_godob = addslashes($_POST['shaht_godob']); if($naprav!=''){ if(isset($_FILES['shaht_prog'])){ $v = $_FILES['shaht_prog']['tmp_name']; if($v!=''){//загружаем файл $dir_dest = 'upload/iup/shahtplans/'.$_SESSION['user']['id'].'/'; if(!file_exists($dir_dest)) mkdir($dir_dest); $fil = $_FILES['shaht_prog']['name']; $t = explode('.',$fil); $ext = $t[count($t)-1]; unset($t[count($t)-1]); $fn = implode('.',$t); $uploadfile = $dir_dest . basename(translit($fn).'.'.$ext); //if (move_uploaded_file($v, $uploadfile)) { if ($SYSTEMclass->sysUPLOAD($v, $uploadfile)) { $sql1 = 'INSERT INTO `'.$TB['iup_shahtplans'].'` VALUES (0,'.time().',"'.$uploadfile.'",'.$_SESSION['user']['id'].',"'.$shaht_napravlenie.'","'.$shaht_godob.'","'.$naprav.'",0);'; $rez1 = $DB->QUR($sql1); //$msg['msg'][]=$sql1.'
'.print_r($rez1,1).'
'; if(!$rez1['err']){ $msg['msg'][]='Файл загружен и сохранен в БД!'; }else{ $msg['err'][]='Файл загружен и не сохранен в БД!'; } } else { $msg['err'][]='Файл не загружен!'; } } } } else { $msg['err'][]='Выберите направление!!!'; } } if($des == 'attved1'){//ПРОТОКОЛ 1 $id = (int)$_GET['id']; print_vedomost($id,1,'tpl_iup_attved1.html'); exit(); } if($des == 'attved2'){//ПРОТОКОЛ 2 $id = (int)$_GET['id']; print_vedomost($id,2,'tpl_iup_attved2.html'); exit(); } if($des == 'attved4'){//ПРОТОКОЛ 4 $id = (int)$_GET['id']; print_vedomost($id,3,'tpl_iup_attved4.html'); exit(); } if($des == 'deleshp'){//удаление строк предметов из бд $id = (int)$_GET['id']; //if($_SESSION['user']['status']==99) { $sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.''; $rez = $DB->QUR_SEL($sql); if($rez){ $plan = $rez[1]; $sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans='.$plan['id'].''; $rez = $DB->QUR($sql); if(!$rez['err']){} $sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.' LIMIT 1'; $rez = $DB->QUR($sql); if(!$rez['err']){} } //} $des = 'show'; } if($des == 'deleshpall'){//удаление файла из системы $id = (int)$_GET['id']; $sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.''; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; if($rez){ $plan = $rez[1]; $sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans='.$plan['id'].''; $rez = $DB->QUR($sql); if(!$rez['err']){} $sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.' LIMIT 1'; $rez = $DB->QUR($sql); if(!$rez['err']){} } $sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans WHERE id='.$id.''; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; if($rez){ $plan = $rez[1]; unlink($plan['file']); $sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans WHERE id='.$id.' LIMIT 1'; $rez = $DB->QUR($sql); if(!$rez['err']){} } $des = 'show'; } if($des == 'viewshp'){//просмотр шахтинского плана $id = (int)$_GET['id']; $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.' AND user_id='.$_SESSION['user']['id'].''; //$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.''; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; if($rez){ $shpl = parse_shahtplan($rez[1]['file'],$id,0); $smarty->assign('shpl',$shpl); } } if($des == 'editshp'){//обработка файла шахтинской в БД $id = (int)$_GET['id']; if($_SESSION['user']['status']==99){ $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.''; }else{ $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.' AND user_id='.$_SESSION['user']['id'].''; } $rez = $DB->QUR_SEL($sql); if($rez){ $shpl = parse_shahtplan($rez[1]['file'],$id); $smarty->assign('shpl',$shpl); } } /*if($des == 'edit'){ $id = (int)$_GET['id']; $sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE id='.$id.' AND status=3'; $rez = $DB->QUR_SEL($sql); if($rez){ $val = $rez[1]; $id_zayavka=$val['id']; $val['data_c'] = date('H:i:s d.m.Y',$val['data_c']); $val['diplom_data'] = date('d.m.Y',$val['diplom_data']); $sql = 'SELECT * FROM '.$TB['iup_studentzayavks_files'].' WHERE id_studentzayavks='.$id_zayavka.' ORDER BY data_c'; $rez = $DB->QUR_SEL($sql); if($rez){foreach($rez as $k => $v)if($k){ $v['data_c'] = date('H:i:s d.m.Y',$v['data_c']); $val['files'][]=$v; }} $val['predmets'] = iup_get_predmets($_SESSION['user']['teacher']['fakultet'],$val['pret_naprav'],$val['pret_kurs'],$val['pret_fo']); $at=0;$ad=0;$addtime=0;$addday=0; foreach($val['predmets'] as $k => $v){ $id_predmet = $v['id']; $sql3 = 'SELECT prepod_name FROM '.$TB['iup_zamdekan'].' WHERE id_studentzayavks='.$id_zayavka.' AND predmet_id='.$id_predmet.''; $rez3 = $DB->QUR_SEL($sql3); if($rez3){ $val['predmets'][$k]['prepodfio']=$rez3[1]['prepod_name']; $sql4 = 'SELECT * FROM '.$TB['iup_ocenki'].' WHERE id_studentzayavks='.$id_zayavka.' AND id_predmet='.$id_predmet.' ORDER BY data_c DESC'; $rez4 = $DB->QUR_SEL($sql4); if($rez4){ $val['predmets'][$k]['ocenki']=$rez4[1]; } }else{ $val['predmets'][$k]['prepodfio']=''; } } $sql = 'SELECT * FROM '.$TB['iup_kafedrs_files'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c'; $rez = $DB->QUR_SEL($sql); if($rez){foreach($rez as $k => $v)if($k){ $v['data_c'] = date('H:i:s d.m.Y',$v['data_c']); $namefile=''; $t=explode('/',$v['file']); $namefile=$t[count($t)-1]; $v['namefile'] = $namefile; $val['filesk'][]=$v; }} $sql = 'SELECT * FROM '.$TB['iup_kafumu_chat'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c'; $rez = $DB->QUR_SEL($sql); if($rez){foreach($rez as $k => $v)if($k){ $v['data_c'] = date('H:i:s d.m.Y',$v['data_c']); $v['text'] = stripslashes($v['text']); $val['chat_umu'][]=$v; }} $zayavka = $val; $smarty->assign('zayavka',$zayavka); }else{ $des = 'show'; } }*/ if($des == 'edit'){ $id = (int)$_GET['id']; $sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE id='.$id.' AND status=3'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; exit(); //SELECT * FROM acs_iup_studentzayavks WHERE id=7493 AND status=3 //Array ( [0] => 1 [1] => Array ( // [id] => 7493 [data_c] => 1695122381 [id_user] => 1312 [fio] => Солтамурадов Магомед Турпалович // [pred_obraz] => продолжаю обучение [obraz_uchr] => ФГБОУ ВО «МГТУ // [diplom_seriya] => [diplom_nomer] => [diplom_data] => 1695122381 // [pret_naprav] => ЛД:Лечебное дело АКТУАЛЬНЫЙ:Лечебное дело АКТУАЛЬНЫЙ:Специалитет // [pret_kurs] => 6 [pret_fo] => очная [status] => 3 [tel] => 89287828287 [pret_format] => [perevod] => 0 // ) //) if($rez){ $val = $rez[1]; $id_zayavka=$val['id']; $val['data_c'] = date('H:i:s d.m.Y',$val['data_c']); $val['diplom_data'] = date('d.m.Y',$val['diplom_data']); $sql = 'SELECT * FROM '.$TB['iup_studentzayavks_files'].' WHERE id_studentzayavks='.$id_zayavka.' ORDER BY data_c'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; exit(); //SELECT * FROM acs_iup_studentzayavks_files WHERE id_studentzayavks=7493 ORDER BY data_c //Array([0] => 2 // [1] => Array( // [id] => 24986 [data_c] => 1695122381 [id_user] => 1312 [id_studentzayavks] => 7493 // [tipfile] => Справка о периоде обучения(если продолжаете обучение в МГТУ, то копия зачетной книжки) // [file] => upload/iup/1312/image.jpg [status] => 1 // ) // [2] => Array ( // [id] => 24987 [data_c] => 1695122381 [id_user] => 1312 [id_studentzayavks] => 7493 // [tipfile] => Справка о периоде обучения(если продолжаете обучение в МГТУ, то копия зачетной книжки) // [file] => upload/iup/1312/image.jpg // [status] => 1 // ) //) if($rez){foreach($rez as $k => $v)if($k){ $v['data_c'] = date('H:i:s d.m.Y',$v['data_c']); $val['files'][]=$v; }} //получим предметы по привязке ЗАЯВКИ к УЧ.ПЛАНУ $predmets = iup_get_predmets_BYzp($id_zayavka); if(!count($predmets)) { $val['predmets'] = iup_get_predmets($_SESSION['user']['teacher']['fakultet'], $val['pret_naprav'], $val['pret_kurs'], $val['pret_fo']); }else{ $val['predmets'] = $predmets; } //echo '
'.print_r($val['predmets'],1).'
'; exit(); //Array ( [0] => Array ( // [id] => 153414 [name_disp] => История discid] => Б1.Б.01 [isk] => [kurs] => 1 [sem] => 2 // [ekz] => [zach] => 1 [zet] => 2 [godob] => 2018 [dispovyb] => [kpro] => [krab] => ) $at=0;$ad=0;$addtime=0;$addday=0; foreach($val['predmets'] as $k => $v){ $id_predmet = $v['id']; $sql3 = 'SELECT prepod_name FROM '.$TB['iup_zamdekan'].' WHERE id_studentzayavks='.$id_zayavka.' AND predmet_id='.$id_predmet.''; $rez3 = $DB->QUR_SEL($sql3); //echo $sql3.'
'.print_r($rez3,1).'
'; //SELECT prepod_name FROM acs_iup_zamdekan WHERE id_studentzayavks=7493 AND predmet_id=153414 if($rez3){ $val['predmets'][$k]['prepodfio']=$rez3[1]['prepod_name']; $sql4 = 'SELECT * FROM '.$TB['iup_ocenki'].' WHERE id_studentzayavks='.$id_zayavka.' AND id_predmet='.$id_predmet.' ORDER BY data_c DESC'; $rez4 = $DB->QUR_SEL($sql4); if($rez4){ $val['predmets'][$k]['ocenki']=$rez4[1]; } }else{ $val['predmets'][$k]['prepodfio']=''; } } $sql = 'SELECT * FROM '.$TB['iup_kafedrs_files'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c'; $rez = $DB->QUR_SEL($sql); if($rez){foreach($rez as $k => $v)if($k){ $v['data_c'] = date('H:i:s d.m.Y',$v['data_c']); $namefile=''; $t=explode('/',$v['file']); $namefile=$t[count($t)-1]; $v['namefile'] = $namefile; $val['filesk'][]=$v; }} $sql = 'SELECT * FROM '.$TB['iup_kafumu_chat'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c'; $rez = $DB->QUR_SEL($sql); if($rez){foreach($rez as $k => $v)if($k){ $v['data_c'] = date('H:i:s d.m.Y',$v['data_c']); $v['text'] = stripslashes($v['text']); $val['chat_umu'][]=$v; }} $zayavka = $val; $smarty->assign('zayavka',$zayavka); }else{ $des = 'show'; } } if($des == 'show'){//исправить выбирать статус 3!!! AND status=3 $zayavks=array(); if($_SESSION['user']['teacher']['fakultet']=='Филиал МГТУ'){ $sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE (pret_naprav LIKE "%'.implode('%" OR pret_naprav LIKE "%',$zamdeknaprav).'%") AND (status=3 OR status=5 OR status=6) ORDER BY data_c DESC';//echo $sql; }else{ $sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE (pret_naprav LIKE "%:'.implode('%" OR pret_naprav LIKE "%:',$zamdeknaprav).'%") AND pret_naprav NOT LIKE "Фс:%" AND (status=3 OR status=5 OR status=6) ORDER BY data_c DESC'; //скопировано с iup_zamdekan if (in_array("Фармация", $zamdeknaprav)) $sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE (pret_naprav LIKE "%:Фармация%") ORDER BY data_c DESC'; //конец скопированного фрагмента } $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $id_zayavka = $val['id']; $val['data_c'] = date('H:i:s d.m.Y',$val['data_c']); if($val['status']>4){ $sql1 = 'SELECT data_c,file FROM '.$TB['iup_kafedrs_files'].' WHERE id_studentzayavks='.$id_zayavka.' ORDER BY data_c DESC LIMIT 1'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $fr = $rez1[1]; $fr['data_c'] = date('H:i:s d.m.Y',$fr['data_c']); $namefile=''; $t=explode('/',$fr['file']); $namefile=$t[count($t)-1]; $fr['namefile'] = $namefile; $val['filesk']=$fr; } } $zayavks[] = $val; } } $smarty->assign('zayavks',$zayavks); //надо выбрать загруженные планы! $shahtplans=array(); if($_SESSION['user']['status']==99){ //Добавим пагинацию для админа по загруженным планам $page_kol=50; $page_nav = 1; if(isset($_GET['nav'])) $page_nav = (int)$_GET['nav']; //iup_lkkafedry_search_naprav iup_lkkafedry_search_god $WH=array(); if(isset($_POST['iup_lkkafedry_search'])){ if($_POST['iup_lkkafedry_search_naprav']!='') { $WH[] = 'napravlenie LIKE "%'.$DB->rescape($_POST['iup_lkkafedry_search_naprav']).'%"'; $smarty->assign('iup_lkkafedry_search_naprav',$DB->rescape($_POST['iup_lkkafedry_search_naprav'])); } if($_POST['iup_lkkafedry_search_god']!='') { $WH[] = 'godob = '.(int)$DB->rescape($_POST['iup_lkkafedry_search_god']).''; $smarty->assign('iup_lkkafedry_search_god',$DB->rescape($_POST['iup_lkkafedry_search_god'])); } } if (count($WH)){ $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE '.implode(' AND ',$WH).' ORDER BY napravlenie,godob'; }else{ $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' ORDER BY napravlenie,godob LIMIT '.(($page_nav-1)*$page_kol).','.$page_kol.''; //Закэшируем кол-во записей if(!isset($_SESSION['iup_lkkafedry_all'])){ $rez_nav1 = $DB->QUR_SEL('SELECT COUNT(id) as ids FROM '.$TB['iup_shahtplans']); $_SESSION['iup_lkkafedry_all'] = $rez_nav['all'] = ceil($rez_nav1[1]['ids']/$page_kol); }else{ $rez_nav['all'] = $_SESSION['iup_lkkafedry_all']; } $rez_nav['pk'] = $page_kol; $rez_nav['cur'] = $page_nav; $smarty->assign('rez_nav',$rez_nav); } }else{ $sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE user_id='.$_SESSION['user']['id'].' ORDER BY napravlenie,godob'; } $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $val['data_c'] = date('H:i:s d.m.Y',$val['data_c']); $val['err']=array(); $val['userfio']=''; if($_SESSION['user']['status']==99){ $sql1 = 'SELECT fio FROM '.$ST['dbpf'].'_users WHERE id='.$val['user_id'].''; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $val['userfio']=$rez1[1]['fio']; } } /*$sql1 = 'SELECT * FROM '.$TB['iup_shahtplans_plans'].' WHERE id_file='.$val['id'].''; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $val['db']=1; $val['plans']=$rez1[1]; $pp=explode(':',mb_strtolower($val['naprav'])); $val['pp']=$pp; $nappodgo=mb_strtolower ($val['plans']['nappodgo']); $nappodgo=str_replace("\n",' ',$nappodgo); $nappodgo=str_replace("\r",'',$nappodgo); $propodgo=mb_strtolower ($val['plans']['propodgo']); if($propodgo[0]=='-'){ $propodgo=str_replace('-','',$propodgo); } $obrpro=trim(str_replace('академический','',mb_strtolower ($val['plans']['obrpro']))); $obrpro=str_replace('бакалавр','бакалавриат',$obrpro); $obrpro=str_replace('подготовка бакалавров','бакалавриат',$obrpro); $obrpro=str_replace('подготовка бакалавриатов','бакалавриат',$obrpro); $obrpro=str_replace('прикладной бакалавриат','бакалавриат',$obrpro); $obrpro=str_replace('магистр','магистратура',$obrpro); $obrpro=str_replace('специалист','Специалитет',$obrpro); $obrpro=str_replace('специалист ','Специалитет',$obrpro); $obrpro=str_replace('Специалист','Специалитет',$obrpro); $obrpro=str_replace('специалитет','Специалитет',$obrpro); $obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro); $obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro); $obrpro=str_replace('Врач общей практики','Специалитет',$obrpro); $obrpro=str_replace('врач - педиатр общей практики','Специалитет',$obrpro); $obrpro=str_replace('подготовка','',$obrpro); $obrpro=str_replace('ов','',$obrpro); $obrpro=str_replace('провизор','Специалитет',$obrpro); $nappodgo=trim($nappodgo); $propodgo=trim($propodgo); $obrpro=mb_strtolower(trim($obrpro)); $val['pp1']=array(0=>'',$nappodgo,$propodgo,$obrpro); if(count($pp)>2){ if($pp[1]!=$nappodgo){ $val['err'][]='Не совпадает направление! => '.$pp[1].'<>'.$nappodgo; } if($propodgo==''){ $val['err'][]='Профиль пустой!'; }else{ if($pp[2]!=$propodgo){ $val['err'][]='Не совпадает профиль! В файле:['.$pp[2].'] выбрали ['.$propodgo.'] измените в файле!'; } } if($pp[3]!=$obrpro){ $val['err'][]='Не совпадает тип(бакалавр,магистр)! => '.$pp[3].'<>'.$obrpro; } } //надо проверить связку с оценками-чтобы предупреждать при удалении $sql2 = 'SELECT count(zd.id) as kol FROM '.$TB['iup_shahtplans_stroki'].' as ss, '.$TB['iup_zamdekan'].' as zd WHERE ss.id_plans='.$val['plans']['id'].' AND zd.predmet_id=ss.id'; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ $val['ispolzuetsya'] = $rez2[1]['kol']; }else{ $val['ispolzuetsya'] = 0; } }else{ $val['db']=0; $val['ispolzuetsya'] = 0; }*/ $shahtplans[] = ShahtPlan_Get_Info($val); } } $smarty->assign('shahtplans',$shahtplans); $napravlenie = iup_get_napravlenie(); $smarty->assign('napravlenie',$napravlenie); } $smarty->assign('zamdeknaprav',$zamdeknaprav); $smarty->assign('page',$page); $smarty->assign('des',$des); $smarty->assign('msg',$msg); $maincontent = $smarty->fetch('tpl_iup_main.html'); function ShahtPlan_Get_Info($val){ GLOBAL $TB,$DB; $sql1 = 'SELECT * FROM '.$TB['iup_shahtplans_plans'].' WHERE id_file='.$val['id'].''; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $val['db']=1; $val['plans']=$rez1[1]; $pp=explode(':',mb_strtolower($val['naprav'])); $val['pp']=$pp; $nappodgo=mb_strtolower ($val['plans']['nappodgo']); $nappodgo=str_replace("\n",' ',$nappodgo); $nappodgo=str_replace("\r",'',$nappodgo); $propodgo=mb_strtolower ($val['plans']['propodgo']); if($propodgo[0]=='-'){ $propodgo=str_replace('-','',$propodgo); } $obrpro=trim(str_replace('академический','',mb_strtolower ($val['plans']['obrpro']))); $obrpro=str_replace('бакалавр','бакалавриат',$obrpro); $obrpro=str_replace('подготовка бакалавров','бакалавриат',$obrpro); $obrpro=str_replace('подготовка бакалавриатов','бакалавриат',$obrpro); $obrpro=str_replace('прикладной бакалавриат','бакалавриат',$obrpro); $obrpro=str_replace('магистр','магистратура',$obrpro); $obrpro=str_replace('специалист','Специалитет',$obrpro); $obrpro=str_replace('специалист ','Специалитет',$obrpro); $obrpro=str_replace('Специалист','Специалитет',$obrpro); $obrpro=str_replace('специалитет','Специалитет',$obrpro); $obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro); $obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro); $obrpro=str_replace('Врач общей практики','Специалитет',$obrpro); $obrpro=str_replace('врач - педиатр общей практики','Специалитет',$obrpro); $obrpro=str_replace('подготовка','',$obrpro); $obrpro=str_replace('ов','',$obrpro); $obrpro=str_replace('провизор','Специалитет',$obrpro); $nappodgo=trim($nappodgo); $propodgo=trim($propodgo); $obrpro=mb_strtolower(trim($obrpro)); $val['pp1']=array(0=>'',$nappodgo,$propodgo,$obrpro); if(count($pp)>2){ if($pp[1]!=$nappodgo){ $val['err'][]='Не совпадает направление! => '.$pp[1].'<>'.$nappodgo; } if($propodgo==''){ $val['err'][]='Профиль пустой!'; }else{ if($pp[2]!=$propodgo){ $val['err'][]='Не совпадает профиль! В файле:['.$pp[2].'] выбрали ['.$propodgo.'] измените в файле!'; } } if($pp[3]!=$obrpro){ $val['err'][]='Не совпадает тип(бакалавр,магистр)! => '.$pp[3].'<>'.$obrpro; } } //надо проверить связку с оценками-чтобы предупреждать при удалении $sql2 = 'SELECT count(zd.id) as kol FROM '.$TB['iup_shahtplans_stroki'].' as ss, '.$TB['iup_zamdekan'].' as zd WHERE ss.id_plans='.$val['plans']['id'].' AND zd.predmet_id=ss.id'; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ $val['ispolzuetsya'] = $rez2[1]['kol']; }else{ $val['ispolzuetsya'] = 0; } }else{ $val['db']=0; $val['ispolzuetsya'] = 0; } return $val; } function parse_shahtplan($file,$id_file,$dd=1){//разбираем шахтинский план! GLOBAL $DB,$ST,$TB; $out = array(); $out['err'] = ''; $out['msg'] = ''; $aplan=array(); if($dd==0){ $out['msg'] .= '$file='.$file.'
'; } /* <Документ CrAppVer="40001" CrWrite="01.01.0001" AppVersion="40211" MinAppVersion="40001" Тип="УЧЕБНЫЙ ПЛАН" PrevName="z ППР проект пр 2020-2021.plx" PrevWrite="23.03.2020" LastName="z ППР проект пр 2020-2021.plx" LastWrite="31.08.2020" WrPth="C:\U~" UserName="DESKTOP-5AEL9JU\Admin" UserPC="DESKTOP-5AEL9JU" ЧислоКурсов="7" СеместровНаКурсе="1" СессийНаКурсе="3" ЭлементовВНеделе="6" ТипГОСа="3.5" КодУровняОбразования="2" КодФормыОбучения="2"> <Документ CrAppVer="22454" CrWrite="17.02.2019" AppVersion="40211" MinAppVersion="40001" Тип=" УЧЕБНЫЙ ПЛАН" PrevName="35.03.06 3+++.plx" PrevWrite="23.03.2020" LastName="35.03.06 3+++.plx" LastWrite="31.08.2020" WrPth="C:\U~" UserName="DESKTOP-5AEL9JU\Admin" UserPC="DESKTOP-5AEL9JU" ЧислоКурсов="7" СеместровНаКурсе="2" СессийНаКурсе="0" ЭлементовВНеделе="6" ТипГОСа="3.75" КодУровняОбразования="2" КодФормыОбучения="1"> */ if(file_exists($file)){ if($dd==0){ $out['msg'] .= '$file='.$file.'
'; } $t=explode('.',$file); if($t[count($t)-1]=='plx'){ $out['msg'] .= 'ФАЙЛ PLX
'; $out['msg'] .= 'файл найден
'; $fplan = file_get_contents($file); //echo '
'.print_r($file,1).'
'; exit(); $plan = new SimpleXMLElement($fplan); //echo '
'.print_r($fplan,1).'
'; exit(); $xml = dom_import_simplexml($plan); //if($dd==0){ $out['msg'] .= 'xml.plx:
'.print_r($xml,1).'
'; } $nodelist= $xml->getElementsByTagName('ООП'); $oop=array(); for($i = 0; $i < $nodelist->length; $i++) { $attr = $nodelist->item($i)->attributes; for($j = 0; $j < $attr->length; $j++) { $oop[$i][$attr->item($j)->name] = $attr->item($j)->value; } } //if($dd==0){ $out['msg'] .= '$oop
'.print_r($oop,1).'
';} /* Array( [0] => Array ( [id] => ООП96 [rowOrder] => 0 [hasChanges] => modified [Код] => 5710 [Шифр] => 36.03.02 [Название] => ЗООТЕХНИЯ [УровеньОбразования] => 3 [Квалификация] => 2 [СрокЛет] => 4 [НомерДокумента] => 250 [ДатаДокумента] => 2016-03-21T00:00:00 [ТипГОСа] => 3.5 [Используется] => false [Префикс] => ) [1] => Array ( [id] => ООП96 [rowOrder] => 0 [Код] => 5710 [Шифр] => 36.03.02 [Название] => ЗООТЕХНИЯ [Квалификация] => 16 [СрокЛет] => 4 [НомерДокумента] => 250 [ДатаДокумента] => 2016-03-21T00:00:00 [Используется] => false [Префикс] => ) ) */ $nodelist= $xml->getElementsByTagName('Факультеты'); $Fak=array(); for($i = 0; $i < $nodelist->length; $i++) { $attr = $nodelist->item($i)->attributes; for($j = 0; $j < $attr->length; $j++) { $Fak[$i][$attr->item($j)->name] = $attr->item($j)->value; } } //if($dd==0){ $out['msg'] .= '$Fak
'.print_r($Fak,1).'
';} /* Array( [0] => Array ( [id] => Факультеты1 [rowOrder] => 0 [hasChanges] => inserted [Код] => -1 [Факультет] => аграрных технологий [Сокращение] => [Псевдоним] => [Декан] => [Телефон] => [Аудитория] => [Сайт] => false [ВнутрТелефон] => [EMail] => [URL] => [ФайлСтиля] => [Шифр] => [Описание] => [Код_филиала] => -1 [РодПадеж] => [Секретарь] => [ЗамДекана] => [Тип] => Факультет ) ) */ $nodelist= $xml->getElementsByTagName('Планы'); $Plan=array(); for($i = 0; $i < $nodelist->length; $i++) { $attr = $nodelist->item($i)->attributes; for($j = 0; $j < $attr->length; $j++) { $Plan[$i][$attr->item($j)->name] = $attr->item($j)->value; } } //if($dd==0){ $out['msg'] .= '$Plan
'.print_r($Plan,1).'
'; } /* Array( [0] => Array ( [id] => Планы1 [rowOrder] => 0 [hasChanges] => inserted [Код] => -1 [УчебныйГод] => 2018-2019 [КодООП] => 5710 [КодФормыОбучения] => 2 [КодПрограммы] => 3 [КодОрганизации] => -1 [КодФакультета] => -1 [КодПрофКафедры] => 30 [Сокращённое] => false [Дистанционное] => false [ДляИностранных] => false [Титул] => Направление подготовки «Зоотехния» Профиль подготовки «Технология производства продукции животноводства» [Квалификация] => бакалавр [Специализация] => [ВоеннаяСпециальность] => [Предназначение] => [СрокОбучения] => 4 [СрокОбученияМесяцев] => 6 [ЧислоКурсов] => 7 [ЧислоСессий] => 0 [КодГрафика] => -1 [НомерФГОС] => 250 [ДатаГОСа] => 2016-03-21T00:00:00 [ДатаВерсииПриложения] => 2018-01-18T00:00:00 [НомерВерсииПриложения] => 40147 [ИмяПриложения] => UpVo [НомерПользователя] => 1014565 [ИмяПользователя] => 2_53-1\Admin [ИмяФайла] => z36.03.02_62-14-1234-2356 ЗТ 18 год. без звезды.plx [ДатаИзмФайла] => 2018-01-30T16:14:15.09375 [ДатаУтверСоветом] => 2018-04-25T00:00:00 [НомПротокСовета] => 5 [Примечание] => [ГодНачалаПодготовки] => 2018 [ТипГОСа] => 3.5 [КодАктивногоООП] => 5710 [ЗЕТвНеделю] => 1.5 [Точность] => 0.25 [ДвИГА] => true [ГвИГА] => true [СеместровНаКурсе] => 2 [ЧасовВКредите] => 36 [Индивидуальный] => 0 [ФИО] => "" [Военные] => false [КодУровняОбразования] => 2 [КодТипаПлана] => 0 [СтатусВНагрузке] => 0 ) ) */ $aplan['obrpro'] = trim($Plan[0]['Квалификация']); if($Plan[0]['КодФормыОбучения']==1) $aplan['forobu'] = 'очная'; if($Plan[0]['КодФормыОбучения']==2) $aplan['forobu'] = 'заочная'; if($plan['КодУровняОбразования']==2) $aplan['uroobr'] = 'ВПО'; else $aplan['uroobr'] = 'СПО'; $aplan['kodkaf'] = trim($Plan[0]['КодПрофКафедры']); $aplan['fakult'] = trim($Fak[0]['Факультет']); $aplan['shifr1'] = trim($oop[0]['Шифр']); $aplan['godnap'] = trim($Plan[0]['ГодНачалаПодготовки']); $aplan['nappodgo'] = trim($oop[0]['Название']); $aplan['nappodgo'] = str_replace('«','',$aplan['nappodgo']); $aplan['nappodgo'] = str_replace('»','',$aplan['nappodgo']); $aplan['nappodgo'] = str_replace('"','',$aplan['nappodgo']); $aplan['propodgo'] = ''; $aplan['kvalif_name'] = trim($Plan[0]['Квалификация']); $aplan['kvalif_srok'] = trim($Plan[0]['СрокОбучения']).'г '.trim($Plan[0]['СрокОбученияМесяцев']).'м'; $aplan['titul']=trim($Plan[0]['Титул']); if (strpos($aplan['titul'], 'Профиль') !== false) { $tpp=explode('рофиль',$aplan['titul']); $aplan['propodgo'] = trim(str_replace('подготовки','',$tpp[1])); $aplan['propodgo'] = str_replace('Профиль ','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('профиль ','',$aplan['propodgo']); }else{ if (strpos($aplan['titul'], 'профиль') !== false) { $tpp=explode('профиль',$aplan['titul']); $aplan['propodgo'] = trim(str_replace('подготовки','',$tpp[1])); } if (strpos($aplan['titul'], 'аправленность') !== false) { $tpp=explode('аправленность',$aplan['titul']); $aplan['propodgo'] = trim(str_replace(':','',$tpp[1])); } } $aplan['propodgo'] = str_replace('«','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('»','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('"','',$aplan['propodgo']); if($aplan['propodgo'][0]==':') $aplan['propodgo'] = trim(str_replace(': ','',$aplan['propodgo'])); $aplan['strsplan']=array(); /* <Планы diffgr:id="Планы1" msdata:rowOrder="0" diffgr:hasChanges="inserted" Код="-1" УчебныйГод="2018-2019" КодООП="5710" КодФормыОбучения="2" КодПрограммы="3" КодОрганизации="-1" КодФакультета="-1" КодПрофКафедры="30" Сокращённое="false" Дистанционное="false" ДляИностранных="false" Титул="Направление подготовки «Зоотехния» Профиль подготовки «Технология производства продукции животноводства»" Квалификация="бакалавр" Специализация="" ВоеннаяСпециальность="" Предназначение="" СрокОбучения="4" СрокОбученияМесяцев="6" ЧислоКурсов="7" ЧислоСессий="0" КодГрафика="-1" НомерФГОС="250" ДатаГОСа="2016-03-21T00:00:00" ДатаВерсииПриложения="2018-01-18T00:00:00" НомерВерсииПриложения="40147" ИмяПриложения="UpVo" НомерПользователя="1014565" ИмяПользователя="2_53-1\Admin" ИмяФайла="z36.03.02_62-14-1234-2356 ЗТ 18 год. без звезды.plx" ДатаИзмФайла="2018-01-30T16:14:15.09375" ДатаУтверСоветом="2018-04-25T00:00:00" НомПротокСовета="5" Примечание="" ГодНачалаПодготовки="2018" ТипГОСа="3.5" КодАктивногоООП="5710" ЗЕТвНеделю="1.5" Точность="0.25" ДвИГА="true" ГвИГА="true" СеместровНаКурсе="2" ЧасовВКредите="36" Индивидуальный="0" ФИО="""" Военные="false" КодУровняОбразования="2" КодТипаПлана="0" СтатусВНагрузке="0" /> */ /* <ПланыСтроки diffgr:id="ПланыСтроки1" msdata:rowOrder="0" diffgr:hasChanges="inserted" Код="-1" КодПлана="-1" КодООП="5710" КодБлока="-2" КодКафедры="2" Дисциплина="История" ТипОбъекта="2" ВидОбъекта="1" РассредПрактика="false" УровеньВложения="1" ПризнакФизкультуры="false" СчитатьБезЗЕТ="false" СчитатьВПлане="true" НеСчитатьКонтроль="false" ЗаСчетПолевых="false" ДисциплинаКод="Б1.Б.01" ТрудоемкостьКредитов="4" ЧасовВЗЕТ="36" ЗЕТфакт="4" ЗЕТизучено="0" ЧасовПоЗЕТ="144" ЧасовПоПлану="144" ПодлежитИзучениюЧасов="144" НестандартНедПрактики="false" ReadOnly="false" Свернуть="false" Multiselect="0" Оценка="0" ТипПерезачета="0" Адаптационная="false" /> */ /* <ПланыГрафикиЯчейки 0 diffgr:id="ПланыГрафикиЯчейки1" 1 msdata:rowOrder="0" 2 diffgr:hasChanges="inserted" 3 Код="-1" 4 КодГрафика="-1" 5 КодВидаДеятельности="1" 6 НомерНедели="1" 7 НомерЧастиНедели="1" 8 Курс="1" Семестр="1" Переаттестована="false" КоличествоЧастейВНеделе="1" НомерПервойНедели="1" /> */ $nodelist= $xml->getElementsByTagName('ПланыСтроки'); $PlansString=array(); $tmp=array(); for($i = 0; $i < $nodelist->length; $i++) { $attr = $nodelist->item($i)->attributes; //echo '1
'.print_r($nodelist->item($i),1).'
';exit(); $tmp1['nom'] = 0;//курс for($j = 0; $j < $attr->length; $j++) { $name = $attr->item($j)->name; $value = $attr->item($j)->value; $PlansString[$i][$name] = $value; if($name == 'Дисциплина') $tmp['discip'] = trim($value); if($name == 'ДисциплинаКод') $tmp['discid'] = trim($value); if($name == 'ЧасовВЗЕТ') $tmp['chaszet'] = trim($value); if($name == 'ЗЕТфакт') $tmp['zetfakt'] = trim($value); //echo '2
'.print_r($attr->item($j),1).'
';exit(); if($name == 'Код'){//нашли номер записи $kod = trim($value); $nodelist1= $xml->getElementsByTagName('ПланыНовыеЧасы'); $kkk=-1; $ekz=array(); $zach=array(); $kpro=array(); $krab=array(); //В новых версиях нумерация аттрибутов отличается! надо определять по имени! /*есть Код: КодВидаРаботы=101=-1 Код[Определили]: КодВидаРаботы=101=-1 Код5: КодТипаЧасов=1=-1 Код7: Семестр=1=-1 Код8: Сессия=0=-1 Код12: Переаттестовано=false=-1 */ /*должно быть Код: КодОбъекта=-1=-1 Код[Определили]: КодОбъекта=-1=-1 Код5: КодВидаРаботы=101=-1 Код7: Курс=1=-1 Код8: Семестр=1=-1 Код12: Количество=34=-1 */ /*$nodelist1->item($i1)->attributes[4]->value должен быть КодОбъекта в новых версиях это КодВидаРаботы - что не правильно! if($dd==0) { $out['msg'] .= '$nodelist1=
'.print_r($nodelist1,1).'
'; $out['msg'] .= '$nodelist1->item(0)=
'.print_r($nodelist1->item(0),1).'
'; $out['msg'] .= '$nodelist1->item(0)->length=
'.print_r($nodelist1->item(0)->length,1).'
'; $out['msg'] .= '$nodelist1->item(0)->attributes=
'.print_r($nodelist1->item(0)->attributes,1).'
'; $out['msg'] .= '$nodelist1->item(0)->attributes->length=
'.print_r($nodelist1->item(0)->attributes->length,1).'
'; }*/ $num4=4;$num5=5;$num7=7;$num8=8;$num12=12; for($j0 = 0; $j0 < $nodelist1->item(0)->attributes->length; $j0++) { if($nodelist1->item(0)->attributes[$j0]->name == 'КодОбъекта') $num4=$j0; if($nodelist1->item(0)->attributes[$j0]->name == 'КодВидаРаботы') $num5=$j0; if($nodelist1->item(0)->attributes[$j0]->name == 'Курс') $num7=$j0; if($nodelist1->item(0)->attributes[$j0]->name == 'Семестр') $num8=$j0; if($nodelist1->item(0)->attributes[$j0]->name == 'Количество') $num12=$j0; } /*if($dd==0) { $out['msg'] .= 'Код4[Определили]: '.$nodelist1->item(0)->attributes[$num4]->name.'='.$nodelist1->item(0)->attributes[$num4]->value.'
'; $out['msg'] .= 'Код5[Определили]: '.$nodelist1->item(0)->attributes[$num5]->name.'='.$nodelist1->item(0)->attributes[$num5]->value.'
'; $out['msg'] .= 'Код7[Определили]: '.$nodelist1->item(0)->attributes[$num7]->name.'='.$nodelist1->item(0)->attributes[$num7]->value.'
'; $out['msg'] .= 'Код8[Определили]: '.$nodelist1->item(0)->attributes[$num8]->name.'='.$nodelist1->item(0)->attributes[$num8]->value.'
'; $out['msg'] .= 'Код12[Определили]: '.$nodelist1->item(0)->attributes[$num12]->name.'='.$nodelist1->item(0)->attributes[$num12]->value.'
'; }*/ for($i1 = 0; $i1 < $nodelist1->length; $i1++) { if($nodelist1->item($i1)->attributes[$num4]->value == $kod){ $tip='und'; if($nodelist1->item($i1)->attributes[$num5]->value == '101') $tip='lek';//лекции if($nodelist1->item($i1)->attributes[$num5]->value == '103') $tip='pr';//Практич if($nodelist1->item($i1)->attributes[$num5]->value == '107') $tip='srs';//СР if($nodelist1->item($i1)->attributes[$num5]->value == '108') $tip='kontr';//контроль if($nodelist1->item($i1)->attributes[$num5]->value == '50') $tip='zet';//фактз.е. if($nodelist1->item($i1)->attributes[$num5]->value == '1000') $tip='itogo';// if($nodelist1->item($i1)->attributes[$num5]->value == '1') $tip='ekz';// if($nodelist1->item($i1)->attributes[$num5]->value == '2') $tip='zach';// if($nodelist1->item($i1)->attributes[$num5]->value == '4') $tip='kpro';//Курсовой проект if($nodelist1->item($i1)->attributes[$num5]->value == '5') $tip='krab';//Курсовая работа $kurs=$nodelist1->item($i1)->attributes[$num7]->value; $tsem=$nodelist1->item($i1)->attributes[$num8]->value; $sem=0; if($tsem==2) $sem=$kurs*2; else $sem=($kurs*2)-1; if($tip=='ekz'){ if(!in_array($sem,$ekz)) $ekz[]=$sem; } if($tip=='zach'){ if(!in_array($sem,$zach)) $zach[]=$sem; } if($tip=='kpro'){ if(!in_array($sem,$kpro)) $kpro[]=$sem; } if($tip=='krab'){ if(!in_array($sem,$krab)) $krab[]=$sem; } if($tip=='und'){ $tip=$nodelist1->item($i1)->attributes[$num5]->value; } $tmp['kurs'][$kurs][$sem][$tip]=$nodelist1->item($i1)->attributes[$num12]->value; } } } //надо еще определять дисциплины по выбору if($name == 'ТипОбъекта'){//ТипОбъекта="5" это Дисциплины по выбору $tmp['tipobject'] = trim($value); } if($name == 'КодРодителя'){//КодРодителя="50" это родитель Дисциплины по выбору $tmp['kodrodit'] = trim($value); } /*//первая попытка найти по семестрам данные if($name == 'rowOrder'){//нашли номер записи $rowOrder = trim($value); //ищем запись с курсом... //$nodelist1= $xml->getElementsByTagName('ПланыГрафикиЯчейки')[1];//.attributes['rowOrder']; $nodelist1= $xml->getElementsByTagName('ПланыГрафикиЯчейки'); //echo '4
'.print_r($nodelist1,1).'
';exit(); $kkk=-1; for($i1 = 0; $i1 < $nodelist1->length; $i1++) { //echo '
'.print_r($nodelist1->item($i1)->attributes[1]->value,1).'
';exit(); if($nodelist1->item($i1)->attributes[1]->value == $rowOrder){ $tmp1['nom'] = $nodelist1->item($i1)->attributes[8]->value; } } } */ } $tmp['ekz'] = $ekz; $tmp['zach'] = $zach; $tmp['kpro'] = $kpro; $tmp['krab'] = $krab; $aplan['strsplan'][]=$tmp; //if ($i>300) { echo $name.'
'.print_r($aplan,1).'
'; exit(); } $tmp=array(); } //echo '
'.print_r($aplan,1).'
';exit(); //if($dd==0){ $out['msg'] .= '$aplan
'.print_r($aplan,1).'
';} //if($dd==0){ $out['msg'] .= '$PlansString
'.print_r($PlansString,1).'
';} /*Array( [0] => Array( [id] => ПланыСтроки1 [rowOrder] => 0 [hasChanges] => inserted [Код] => -1 [КодПлана] => -1 [КодООП] => 5710 [КодБлока] => -2 [КодКафедры] => 2 [Дисциплина] => История [ТипОбъекта] => 2 [ВидОбъекта] => 1 [РассредПрактика] => false [УровеньВложения] => 1 [ПризнакФизкультуры] => false [СчитатьБезЗЕТ] => false [СчитатьВПлане] => true [НеСчитатьКонтроль] => false [ЗаСчетПолевых] => false [ДисциплинаКод] => Б1.Б.01 [ТрудоемкостьКредитов] => 4 [ЧасовВЗЕТ] => 36 [ЗЕТфакт] => 4 [ЗЕТизучено] => 0 [ЧасовПоЗЕТ] => 144 [ЧасовПоПлану] => 144 [ПодлежитИзучениюЧасов] => 144 [НестандартНедПрактики] => false [ReadOnly] => false [Свернуть] => false [Multiselect] => 0 [Оценка] => 0 [ТипПерезачета] => 0 [Адаптационная] => false ) */ } else{//файлы с раширением XML $out['msg'] .= 'файл найден
'; $fplan = file_get_contents($file); $plan = new SimpleXMLElement($fplan); //if($dd==0){ $out['msg'] .= 'plan.xml:
'.print_r($plan,1).'
'; } $aplan['obrpro'] = trim($plan->{'План'}['ОбразовательнаяПрограмма']); $aplan['forobu'] = trim($plan->{'План'}['ФормаОбучения']); $aplan['uroobr'] = trim($plan->{'План'}['УровеньОбразования']); $aplan['kodkaf'] = trim($plan->{'План'}->{'Титул'}['КодКафедры']); $aplan['fakult'] = trim($plan->{'План'}->{'Титул'}['Факультет']); $aplan['shifr1'] = trim($plan->{'План'}->{'Титул'}['ПоследнийШифр']); $aplan['godnap'] = trim($plan->{'План'}->{'Титул'}['ГодНачалаПодготовки']); $specialnosti = $plan->{'План'}->{'Титул'}->{'Специальности'}; foreach($specialnosti->{'Специальность'} as $k => $v){ if (strpos($v[0]['Название'], 'аправление') !== false) { $aplan['nappodgo']=trim(str_replace('"','',str_replace('Направление подготовки','',$v[0]['Название']))); $aplan['nappodgo'] = str_replace('«','',$aplan['nappodgo']); $aplan['nappodgo'] = str_replace('»','',$aplan['nappodgo']); $aplan['nappodgo'] = str_replace('"','',$aplan['nappodgo']); } if (strpos($v[0]['Название'], 'рофиль') !== false) { $aplan['propodgo']=trim(str_replace('"','',str_replace('Профиль подготовки','',$v[0]['Название']))); $aplan['propodgo'] = str_replace('Профиль ','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('профиль ','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('«','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('»','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('"','',$aplan['propodgo']); } if (strpos($v[0]['Название'], 'аправленность') !== false) { $aplan['propodgo']=trim(str_replace('"','',str_replace('Направленность :','',$v[0]['Название']))); $aplan['propodgo'] = str_replace('Направленность ','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('направленность ','',$aplan['propodgo']); $aplan['propodgo'] = str_replace(':','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('«','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('»','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('"','',$aplan['propodgo']); } /* if($v[0]['Ном']==1||$v[0]['Ном']==2) { $aplan['nappodgo']=trim(str_replace('"','',str_replace('Направление подготовки','',$v[0]['Название']))); } if($v[0]['Ном']==3) { $aplan['propodgo']=trim(str_replace('"','',str_replace('Профиль подготовки','',$v[0]['Название']))); $aplan['propodgo'] = str_replace('Профиль ','',$aplan['propodgo']); $aplan['propodgo'] = str_replace('профиль ','',$aplan['propodgo']); }*/ } $aplan['kvalif_name'] = (string)$plan->{'План'}->{'Титул'}->{'Квалификации'}->{'Квалификация'}['Название']; $aplan['kvalif_srok'] = (string)$plan->{'План'}->{'Титул'}->{'Квалификации'}->{'Квалификация'}['СрокОбучения']; $aplan['strsplan']=array(); $strsplan = $plan->{'План'}->{'СтрокиПлана'}; /* <Строка Дис="Иностранный язык" НовЦикл="Б1.Б" НовИдДисциплины="Б1.Б.3" Цикл="Б1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.Б.3" ГОС="360" СР="171" Кафедра="4" ПодлежитИзучению="360" КредитовНаДисциплину="10" ЧасовВЗЕТ="36" СемЭкз="3" СемЗач="12" НовСемЗач="12"> <Сем Ном="1" Пр="51" СРС="57" ЗЕТ="3" Зач="1"> <Сем Ном="2" Пр="51" СРС="57" ЗЕТ="3" Зач="1"> <Сем Ном="3" Пр="51" СРС="57" ЧасЭкз="36" ЗЕТ="4" Экз="1"> */ //if($dd==0){ $out['msg'] .= 'strsplan
'.print_r($strsplan,1).'
'; } foreach($strsplan->{'Строка'} as $k => $v){ $tmp=array(); $tmp['discip'] = (string)$v['Дис']; $tmp['discid'] = (string)$v['НовИдДисциплины']; //$tmp['tipobject'] => 5 - дисциплина по выбору //$tmp['kodrodit'] => номер - группировка дисциплин из которых выбираем if(strpos($tmp['discid'],'.ДВ')!==false){ //Б1.В.ДВ.1.2 $tmp['tipobject'] = 5; $tmp['kodrodit'] = (string)$v['Цикл']; }else { $tmp['tipobject'] = 2; $tmp['kodrodit'] = ''; } //if($dd==0){ $out['msg'] .= '$strsplan->{Строка}v
'.print_r($v,1).'
'; } $tipks=0; if(isset($v->{'Курс'})){ $strsplank = $v->{'Курс'}; $tipks=1; } if(isset($v->{'Сем'})){ $strsplank = $v->{'Сем'}; $tipks=2; } $tmp['zetfakt'] = 0; $ekz=array(); $zach=array(); $kpro=array(); $krab=array(); //if($dd==0){ $out['msg'] .= 'strsplank
'.print_r($strsplank,1).'
'; } foreach($strsplank as $k1 => $v1){ //if($dd==0){ $out['msg'] .= '
'.print_r($v1,1).'
'; } $tmp1=array(); $tmp1['nom'] = (string)$v1{'Ном'}; $tmp1['lek'] = (string)$v1{'Лек'}; $tmp1['lab'] = (string)$v1{'Лаб'}; $tmp1['pr'] = (string)$v1{'Пр'}; $tmp1['srs'] = (string)$v1{'СРС'}; $tmp1['chasekz'] = (string)$v1{'ЧасЭкз'}; $tmp1['zet'] = (string)$v1{'ЗЕТ'}; $tmp['zetfakt'] += (float)$tmp1['zet']; $tmp1['ekz'] = (string)$v1{'Экз'}; $tmp1['zach'] = (string)$v1{'Зач'}; $tmp1['kpro'] = (string)$v1{'КП'}; $tmp1['krab'] = (string)$v1{'КР'}; $tmp1['vidkontr'] = (string)$v1{'ВидКонтр'}; $tmp1['kontrab'] = (string)$v1{'КонтрРаб'}; $tmp1['kontr'] = (string)$v1{'Контр'}; $strsplanks = $v1->{'Сессия'}; foreach($strsplanks as $k2 => $v2){ $tmp2=array(); $tmp2['nom'] = (string)$v2{'Ном'}; $tmp2['lek'] = (string)$v2{'Лек'}; $tmp2['lab'] = (string)$v2{'Лаб'}; $tmp2['pr'] = (string)$v2{'Пр'}; $tmp2['srs'] = (string)$v2{'СРС'}; $tmp2['chasekz'] = (string)$v2{'ЧасЭкз'}; $tmp2['zet'] = (string)$v2{'ЗЕТ'}; $tmp2['ekz'] = (string)$v2{'Экз'}; $tmp2['zach'] = (string)$v2{'Зач'}; $tmp2['kpro'] = (string)$v2{'КП'}; $tmp2['krab'] = (string)$v2{'КР'}; $tmp2['vidkontr'] = (string)$v2{'ВидКонтр'}; $tmp2['kontrab'] = (string)$v2{'КонтрРаб'}; $tmp2['kontr'] = (string)$v2{'Контр'}; $tmp1['sessiya'][$tmp2['nom']]=$tmp2; } if($tipks==1){ $kurs = $tmp1['nom']; $sem=1; } if($tipks==2){ $sem = $tmp1['nom']; $kurs = 0; if($sem==1||$sem==2) $kurs = 1; if($sem==3||$sem==4) $kurs = 2; if($sem==5||$sem==6) $kurs = 3; if($sem==7||$sem==8) $kurs = 4; if($sem==9||$sem==10) $kurs = 5; } if($tmp1['ekz']!=''){ if(!in_array($sem,$ekz)) $ekz[] = $sem; } if($tmp1['zach']!=''){ if(!in_array($sem,$zach)) $zach[] = $sem; } if($tmp1['kpro']!=''){ if(!in_array($sem,$kpro)) $kpro[] = $sem; } if($tmp1['krab']!=''){ if(!in_array($sem,$krab)) $krab[] = $sem; } $tmp['kurs'][$kurs][$sem] = $tmp1; } $tmp['ekz']=$ekz; $tmp['zach']=$zach; $tmp['kpro'] = $kpro; $tmp['krab'] = $krab; $aplan['strsplan'][]=$tmp; } $out['msg'] .= 'файл обработан. Количество предметов: '.count($aplan['strsplan']).'
'; //$out['msg'] .= '
'.print_r($aplan,1).'
'; } }else $out['err'] = 'файл не найден'; if($dd==0){ $out['msg'] .= '$aplan
'.print_r($aplan,1).'
'; } else{ if(count($aplan)){//ПРОВЕРИМ В БД ЕСТЬ ЛИ ТАКОЙ ПЛАН? $sql = 'SELECT * FROM '.$TB['iup_shahtplans_plans'].' WHERE obrpro="'.$aplan['obrpro'].'" AND forobu="'.$aplan['forobu'].'" AND uroobr="'.$aplan['uroobr'].'" AND kodkaf="'.$aplan['kodkaf'].'" AND fakult="'.$aplan['fakult'].'" AND shifr1="'.$aplan['shifr1'].'" AND godnap="'.$aplan['godnap'].'" AND nappodgo="'.addslashes($aplan['nappodgo']).'" AND propodgo="'.addslashes($aplan['propodgo']).'" AND kvalif_name="'.$aplan['kvalif_name'].'" AND kvalif_srok="'.$aplan['kvalif_srok'].'"'; $rez = $DB->QUR_SEL($sql); //$out['msg'] .= $sql.'
'.print_r($rez,1).'
'; //if($_SESSION['user']['id']==9202) file_put_contents('iup1.log',"\n".date('H:i:s d.m.Y').':'.$sql.print_r($rez,1),FILE_APPEND); /*if($rez){ if($rez[0]>0){ $out['err'] .= 'Такой план уже есть в БД!
'; $out['err'] .= 'Данные которые есть в БД №'.$rez[1]['id_file'].' ЗАПИСАН В СИСТЕМУ '.date('H:i d.m.Y',$rez[1]['data_c']).':
'; $out['err'] .= 'uroobr: '.$aplan['uroobr'].' obrpro:'.$aplan['obrpro'].' forobu:'.$aplan['forobu'].'
'; $out['err'] .= 'Код каф.:'.$aplan['kodkaf'].' шифр:'.$aplan['shifr1'].' godnap:'.$aplan['godnap'].'
'; $out['err'] .= 'nappodgo:"'.$aplan['nappodgo'].'" propodgo:"'.$aplan['propodgo'].'"
'; $out['err'] .= 'kvalif_name:"'.$aplan['kvalif_name'].'" срок: '.$aplan['kvalif_srok'].'
'; $out['err'] .= 'ЕСЛИ ВЫ ХОТИТЕ ЗАМЕНИТЬ ПЛАН, УДАЛИТЕ СНАЧАЛА ПЛАН С НОМЕРОМ '.$rez[1]['id_file'].''; } }else {*/ //вставляем план! $out['msg'] .= 'Такого плана нет в базе, добавляем
'; $sql = 'INSERT INTO '.$TB['iup_shahtplans_plans'].' VALUES (0,'.time().','.$id_file.',"'.$aplan['obrpro'].'","'.$aplan['forobu'].'","'.$aplan['uroobr'].'","'.$aplan['kodkaf'].'","'.$aplan['fakult'].'","'.$aplan['shifr1'].'","'.$aplan['godnap'].'","'.addslashes($aplan['nappodgo']).'","'.addslashes($aplan['propodgo']).'","'.$aplan['kvalif_name'].'","'.$aplan['kvalif_srok'].'");'; $rez = $DB->QUR($sql); //if($_SESSION['user']['id']==9202) file_put_contents('iup1.log',"\n".date('H:i:s d.m.Y').':'.$sql.print_r($rez,1),FILE_APPEND); if(!$rez['err']){ $id_plans = mysql_insert_id(); $sql2='UPDATE '.$TB['iup_shahtplans'].' SET napravlenie="'.addslashes($aplan['nappodgo']).' '.$aplan['forobu'].'", godob="'.$aplan['godnap'].'" WHERE id='.$id_file.''; $rez2=$DB->QUR($sql2); $out['msg'] .= 'План добавили в базу
'; $out['msg'] .= 'Добавляем предметы
'; foreach($aplan['strsplan'] as $key => $val){ foreach($val['kurs'] as $kurs => $v11){ foreach($v11 as $sem => $v1){ $dispovyb=$val['kodrodit'];//объединяем предметы - дисциплины по выбору $val['discip'] = addslashes($val['discip']); //ЭКРАНИРУЕМ КАВЫЧКИ $sql1 = 'INSERT INTO '.$TB['iup_shahtplans_stroki'].' VALUES (0,'.$id_plans.',"'.$val['discip'].'","'.$val['discid'].'","'.$kurs.'","'.$sem.'","'.$v1['lek'].'","'.$v1['lab'].'","'.$v1['pr'].'","'.$v1['srs'].'","'.$v1['chasekz'].'","'.$v1['zet'].'","'.$v1['ekz'].'","'.$v1['zach'].'","'.$v1['vidkontr'].'","'.$v1['kontrab'].'","'.$v1['kontr'].'","","'.$dispovyb.'","'.$v1['kpro'].'","'.$v1['krab'].'");'; $rez1 = $DB->QUR($sql1); if(!$rez1['err']){ $out['msg'] .= 'Предмет "'.$val['discip'].'" курс "'.$kurs.'" сем "'.$sem.'" добавили.
'; }else{ $out['msg'] .= 'Предмет "'.$val['discip'].'" курс "'.$kurs.'" сем "'.$sem.'" НЕ добавили.
'.$sql1.'-'.mysql_error(); } } } } }else $out['err'] = 'Ошибка добавления плана в БД'; //$out['err'] = 'Ошибка выбора из БД плана '.$sql.' '.mysql_error(); //} $out['aplan'] = $aplan; } } return $out; }