QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $val['razdel']=array(); $sql1 = 'SELECT * FROM '.$ST['dbpf'].'_rejt_items WHERE id_razdel='.$val['id'].' AND status=1 ORDER BY pos'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $val1['itemspolyas']=array(); $sql2 = 'SELECT * FROM '.$ST['dbpf'].'_rejt_itemspolyas WHERE id_item='.$val1['id'].' AND status=1 ORDER BY pos'; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ foreach($rez2 as $key2 => $val2)if($key2){ $val2['polyas']=array(); //выбираем выпадающие элементы $sql3 = 'SELECT * FROM '.$ST['dbpf'].'_rejt_polyas WHERE id_item='.$val2['id'].' AND status=1 ORDER BY pos'; $rez3 = $DB->QUR_SEL($sql3); if($rez3){ foreach($rez3 as $key3 => $val3)if($key3){ $val2['polyas'][]=$val3; } } $val1['itemspolyas'][]=$val2; } } $val['razdel'][]=$val1; } } $items[]=$val; } } return $items; } function rejtdek_raschet($id_item,$id_user){ GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_rejtdek_items WHERE id='.$id_item.' LIMIT 1'; $rez = $DB->QUR_SEL($sql); //$ST['debug_formul']=1; if($rez){ $val = $rez[1];//ЕСЛИ[ip_5>=80000#ip_6/1000#0] $formula = htmlspecialchars_decode($val['formuls']);//надо найти в формуле вставляемые значения //тут надо разобрать формулу если есть СУММ_ФАК_ПОЛЕ типа 0|СУММ_ФАК_ПОЛЕ([ua_3_21_24]) //СУММ_ФАК_ПОЛЕ то надо суммировать значение полей пользовательских анкет ua_ по всему факультету //3 - _rejt_items 21 - _rejt_itemspolyas 24 - _rejt_polyas $itogo=0; if(mb_strpos($formula, 'СУММ_ФАК_ПОЛЕ')!==false){//нашли такую if(mb_strpos($formula, '0|')!==false){//удалим лишнию опцию 0|-поле не заполняется пользователем $tmp = explode('|',$formula); $formula = $tmp[1]; } //расчитаем сумму СУММ_ФАК_ПОЛЕ //$out['f1']=$formula; //выделим все такие суммы из формулы preg_match_all('|СУММ_ФАК_ПОЛЕ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то $out['f2']=$f2;// [ua_3_21_24] foreach($f2[1] as $k => $v){ //$out['f4'][]=$v; $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; $summ01=0; //надо выбрать преподов из факультета( $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.fakultet="'.$_SESSION['user']['teacher']['fakultet'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT SUM(value) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][1]['data_s1'].' AND '.$_SESSION['otchgods'][1]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } //$out['f4'][]=$summ01; } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_ФАК_ПОЛЕ('.$v.')',$summ01,$formula); } } $dan=array(); $itogo = parse_formula($formula,$dan);//тут суммируем или делим на что то там //$out['f3']=$formula; }else{ $itogo=0; $_SESSION['debug_formul']=''; $sql = 'SELECT pos FROM '.$ST['dbpf'].'_rejtdek_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND (data_c BETWEEN '.$_SESSION['otchgods'][1]['data_s1'].' AND '.$_SESSION['otchgods'][1]['data_s2'].') GROUP BY pos ORDER BY pos'; $rez = $DB->QUR_SEL($sql); if($rez){ $dan=array(); foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT id_itemspolyas as id,value FROM '.$ST['dbpf'].'_rejtdek_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND pos='.$val['pos'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][1]['data_s1'].' AND '.$_SESSION['otchgods'][1]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $dan['ip']=array(); foreach($rez1 as $key1 => $val1)if($key1){ //проверим наличие баллов $sql2 = 'SELECT name,value FROM '.$ST['dbpf'].'_rejtdek_polyas WHERE id_item='.$val1['id'].''; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ if($rez2[0]==1){ $val1['value']=$rez2[1]['value']; }else{ //тут и так хранится в save балл //foreach($rez2 as $key2 => $val2)if($key2){ // if($val2['value']==$val1['value']){} //} } } $dan['ip'][]=$val1; } $out[$val['pos']] = parse_formula($formula,$dan); $itogo += $out[$val['pos']]; } } } if($ST['debug_formul']) $out['debug'] .= $_SESSION['debug_formul']; } $out['itogo']=$itogo; } return $out; } function rejt_kaf_parseformul($formula){//разбираем формулы для кафедры GLOBAL $ST,$DB; //echo $formula.'-'; if(mb_strpos($formula, '0|')!==false){//удалим лишнию опцию 0|-поле не заполняется пользователем $tmp = explode('|',$formula); $formula = $tmp[1]; } //тут надо разобрать формулу если есть СУММ_КАФ_ПОЛЕ_ЗНАЧ типа 0|СУММ_КАФ_ПОЛЕ_ЗНАЧ([ua_3_21_24]) //СУММ_КАФ_ПОЛЕ_ЗНАЧ то надо суммировать значение полей пользовательских анкет ua_ по всему факультету //3 - _rejt_items 21 - _rejt_itemspolyas 24 - _rejt_polyas if(mb_strpos($formula, 'СУММ_КАФ_ПОЛЕ_ЗНАЧ')!==false){//нашли такую //расчитаем сумму СУММ_КАФ_ПОЛЕ_ЗНАЧ //выделим все такие суммы из формулы //СУММ_КАФ_ПОЛЕ_ЗНАЧ СУММ_КАФ_ПОЛЕ_КОЛ preg_match_all('|СУММ_КАФ_ПОЛЕ_ЗНАЧ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то [ua_3_21_24] foreach($f2[1] as $k => $v){ $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); //тут надо разделять ua_3_21_24 от ua_3_21_24_00 - это +выпадающие элементы $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; $summ01=0; //надо выбрать преподов из кафедры $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.kafedra="'.$_SESSION['user']['teacher']['kafedra'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT SUM(value) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][2]['data_s1'].' AND '.$_SESSION['otchgods'][2]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_КАФ_ПОЛЕ_ЗНАЧ('.$v.')',$summ01,$formula); } } } if(mb_strpos($formula, 'СУММ_КАФ_ПОЛЕ_КОЛ')!==false){//нашли такую //расчитаем сумму СУММ_КАФ_ПОЛЕ_КОЛ //выделим все такие суммы из формулы preg_match_all('|СУММ_КАФ_ПОЛЕ_КОЛ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то [ua_3_21_24] foreach($f2[1] as $k => $v){ $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); //тут надо разделять ua_3_21_24 от ua_3_21_24_00 - это +выпадающие элементы $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; if(isset($elem[4])) $id_polyas = $elem[4]; else $id_polyas = 0; $summ01=0; //надо выбрать преподов из кафедры $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.kafedra="'.$_SESSION['user']['teacher']['kafedra'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ //echo '
'.print_r($_SESSION['otchgods'],1).'
'; foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT COUNT(id) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_polyas='.$id_polyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][2]['data_s1'].' AND '.$_SESSION['otchgods'][2]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_КАФ_ПОЛЕ_КОЛ('.$v.')',$summ01,$formula); } } } //echo $formula.'
'; return $formula; } function rejtkaf_raschet($id_item,$id_user){ GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_rejtkaf_items WHERE id='.$id_item.' LIMIT 1'; $rez = $DB->QUR_SEL($sql); //$ST['debug_formul']=1; if($rez){ $val = $rez[1];//ЕСЛИ[ip_5>=80000#ip_6/1000#0] $formula = htmlspecialchars_decode($val['formuls']);//надо найти в формуле вставляемые значения $formula = rejt_kaf_parseformul($formula); $dan=array(); $itogo=0; $_SESSION['debug_formul']=''; $sql = 'SELECT pos FROM '.$ST['dbpf'].'_rejtkaf_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND (data_c BETWEEN '.$_SESSION['otchgods'][2]['data_s1'].' AND '.$_SESSION['otchgods'][2]['data_s2'].') GROUP BY pos ORDER BY pos'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT id_itemspolyas as id,value FROM '.$ST['dbpf'].'_rejtkaf_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND pos='.$val['pos'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][2]['data_s1'].' AND '.$_SESSION['otchgods'][2]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $dan['ip']=array(); foreach($rez1 as $key1 => $val1)if($key1){ //проверим наличие баллов $sql2 = 'SELECT name,value FROM '.$ST['dbpf'].'_rejtkaf_polyas WHERE id_item='.$val1['id'].''; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ if($rez2[0]==1){ $val1['value']=$rez2[1]['value']; }else{ //тут и так хранится в save балл //foreach($rez2 as $key2 => $val2)if($key2){ // if($val2['value']==$val1['value']){} //} } } $dan['ip'][]=$val1; } $out[$val['pos']] = parse_formula($formula,$dan); $itogo += $out[$val['pos']]; } } }else{//в сохранениях нет, т.к. в поля не вводится текст $itogo = parse_formula($formula,$dan); } if($ST['debug_formul']) $out['debug'] .= $_SESSION['debug_formul']; $out['itogo']=$itogo; } return $out; } function rejt_npr_parseformul($formula){//разбираем формулы для кафедры GLOBAL $ST,$DB; //echo $formula.'-'; if(mb_strpos($formula, '0|')!==false){//удалим лишнию опцию 0|-поле не заполняется пользователем $tmp = explode('|',$formula); $formula = $tmp[1]; } //тут надо разобрать формулу если есть СУММ_КАФ_ПОЛЕ_ЗНАЧ типа 0|СУММ_КАФ_ПОЛЕ_ЗНАЧ([ua_3_21_24]) //СУММ_КАФ_ПОЛЕ_ЗНАЧ то надо суммировать значение полей пользовательских анкет ua_ по всему факультету //3 - _rejt_items 21 - _rejt_itemspolyas 24 - _rejt_polyas if(mb_strpos($formula, 'СУММ_КАФ_ПОЛЕ_ЗНАЧ')!==false){//нашли такую //расчитаем сумму СУММ_КАФ_ПОЛЕ_ЗНАЧ //выделим все такие суммы из формулы //СУММ_КАФ_ПОЛЕ_ЗНАЧ СУММ_КАФ_ПОЛЕ_КОЛ preg_match_all('|СУММ_КАФ_ПОЛЕ_ЗНАЧ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то [ua_3_21_24] foreach($f2[1] as $k => $v){ $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); //тут надо разделять ua_3_21_24 от ua_3_21_24_00 - это +выпадающие элементы $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; $summ01=0; //надо выбрать преподов из кафедры $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.kafedra="'.$_SESSION['user']['teacher']['kafedra'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT SUM(value) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_КАФ_ПОЛЕ_ЗНАЧ('.$v.')',$summ01,$formula); } } } if(mb_strpos($formula, 'СУММ_КАФ_ПОЛЕ_КОЛ')!==false){//нашли такую //расчитаем сумму СУММ_КАФ_ПОЛЕ_КОЛ //выделим все такие суммы из формулы preg_match_all('|СУММ_КАФ_ПОЛЕ_КОЛ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то [ua_3_21_24] foreach($f2[1] as $k => $v){ $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); //тут надо разделять ua_3_21_24 от ua_3_21_24_00 - это +выпадающие элементы $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; if(isset($elem[4])) $id_polyas = $elem[4]; else $id_polyas = 0; $summ01=0; //надо выбрать преподов из кафедры $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.kafedra="'.$_SESSION['user']['teacher']['kafedra'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ //echo '
'.print_r($_SESSION['otchgods'],1).'
'; foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT COUNT(id) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_polyas='.$id_polyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_КАФ_ПОЛЕ_КОЛ('.$v.')',$summ01,$formula); } } } //echo $formula.'
'; return $formula; } function rejtnpr_raschet($id_item,$id_user){ GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_rejtnpr_items WHERE id='.$id_item.' LIMIT 1'; $rez = $DB->QUR_SEL($sql); //$ST['debug_formul']=1; if($rez){ $val = $rez[1];//ЕСЛИ[ip_5>=80000#ip_6/1000#0] $formula = htmlspecialchars_decode($val['formuls']);//надо найти в формуле вставляемые значения $formula = rejt_npr_parseformul($formula); $dan=array(); $itogo=0; $_SESSION['debug_formul']=''; $sql = 'SELECT pos FROM '.$ST['dbpf'].'_rejtnpr_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].') GROUP BY pos ORDER BY pos'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT id_itemspolyas as id,value FROM '.$ST['dbpf'].'_rejtnpr_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND pos='.$val['pos'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $dan['ip']=array(); foreach($rez1 as $key1 => $val1)if($key1){ //проверим наличие баллов $sql2 = 'SELECT name,value FROM '.$ST['dbpf'].'_rejtnpr_polyas WHERE id_item='.$val1['id'].''; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ if($rez2[0]==1){ $val1['value']=$rez2[1]['value']; }else{ //тут и так хранится в save балл //foreach($rez2 as $key2 => $val2)if($key2){ // if($val2['value']==$val1['value']){} //} } } $dan['ip'][]=$val1; } $out[$val['pos']] = parse_formula($formula,$dan); $itogo += $out[$val['pos']]; } } }else{//в сохранениях нет, т.к. в поля не вводится текст $itogo = parse_formula($formula,$dan); } if($ST['debug_formul']) $out['debug'] .= $_SESSION['debug_formul']; $out['itogo']=$itogo; } return $out; } function rejt_nr_parseformul($formula){//разбираем формулы для кафедры GLOBAL $ST,$DB; //echo $formula.'-'; if(mb_strpos($formula, '0|')!==false){//удалим лишнию опцию 0|-поле не заполняется пользователем $tmp = explode('|',$formula); $formula = $tmp[1]; } //тут надо разобрать формулу если есть СУММ_КАФ_ПОЛЕ_ЗНАЧ типа 0|СУММ_КАФ_ПОЛЕ_ЗНАЧ([ua_3_21_24]) //СУММ_КАФ_ПОЛЕ_ЗНАЧ то надо суммировать значение полей пользовательских анкет ua_ по всему факультету //3 - _rejt_items 21 - _rejt_itemspolyas 24 - _rejt_polyas if(mb_strpos($formula, 'СУММ_КАФ_ПОЛЕ_ЗНАЧ')!==false){//нашли такую //расчитаем сумму СУММ_КАФ_ПОЛЕ_ЗНАЧ //выделим все такие суммы из формулы //СУММ_КАФ_ПОЛЕ_ЗНАЧ СУММ_КАФ_ПОЛЕ_КОЛ preg_match_all('|СУММ_КАФ_ПОЛЕ_ЗНАЧ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то [ua_3_21_24] foreach($f2[1] as $k => $v){ $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); //тут надо разделять ua_3_21_24 от ua_3_21_24_00 - это +выпадающие элементы $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; $summ01=0; //надо выбрать преподов из кафедры $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.kafedra="'.$_SESSION['user']['teacher']['kafedra'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT SUM(value) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_КАФ_ПОЛЕ_ЗНАЧ('.$v.')',$summ01,$formula); } } } if(mb_strpos($formula, 'СУММ_КАФ_ПОЛЕ_КОЛ')!==false){//нашли такую //расчитаем сумму СУММ_КАФ_ПОЛЕ_КОЛ //выделим все такие суммы из формулы preg_match_all('|СУММ_КАФ_ПОЛЕ_КОЛ\((.*)\)|isU',$formula,$f2); if(isset($f2[1][0])){//нашли что то [ua_3_21_24] foreach($f2[1] as $k => $v){ $elems = str_replace('[','',str_replace(']','',$v));//ua_3_21_24 $elem = explode('_',$elems); //тут надо разделять ua_3_21_24 от ua_3_21_24_00 - это +выпадающие элементы $id_razdel = $elem[1]; $id_items = $elem[2]; $id_itemspolyas = $elem[3]; if(isset($elem[4])) $id_polyas = $elem[4]; else $id_polyas = 0; $summ01=0; //надо выбрать преподов из кафедры $sql = 'SELECT u.id FROM '.$ST['dbpf'].'_teachers as t,'.$ST['dbpf'].'_users as u WHERE t.kafedra="'.$_SESSION['user']['teacher']['kafedra'].'" AND u.id=t.id_user'; $rez = $DB->QUR_SEL($sql); if($rez){ //echo '
'.print_r($_SESSION['otchgods'],1).'
'; foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT COUNT(id) as alls FROM '.$ST['dbpf'].'_rejt_saves WHERE id_razdel='.$id_razdel.' AND id_items='.$id_items.' AND id_itemspolyas='.$id_itemspolyas.' AND id_polyas='.$id_polyas.' AND id_user='.$val['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $summ01+=$val1['alls']; } } } } //в формуле заменим все вставки на числа $formula = str_replace('СУММ_КАФ_ПОЛЕ_КОЛ('.$v.')',$summ01,$formula); } } } //echo $formula.'
'; return $formula; } function rejtnr_raschet($id_item,$id_user){ GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_rejtnr_items WHERE id='.$id_item.' LIMIT 1'; $rez = $DB->QUR_SEL($sql); //$ST['debug_formul']=1; if($rez){ $val = $rez[1];//ЕСЛИ[ip_5>=80000#ip_6/1000#0] $formula = htmlspecialchars_decode($val['formuls']);//надо найти в формуле вставляемые значения $formula = rejt_nr_parseformul($formula); $dan=array(); $itogo=0; $_SESSION['debug_formul']=''; $sql = 'SELECT pos FROM '.$ST['dbpf'].'_rejtnr_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].') GROUP BY pos ORDER BY pos'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT id_itemspolyas as id,value FROM '.$ST['dbpf'].'_rejtnr_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND pos='.$val['pos'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $dan['ip']=array(); foreach($rez1 as $key1 => $val1)if($key1){ //проверим наличие баллов $sql2 = 'SELECT name,value FROM '.$ST['dbpf'].'_rejtnr_polyas WHERE id_item='.$val1['id'].''; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ if($rez2[0]==1){ $val1['value']=$rez2[1]['value']; }else{ //тут и так хранится в save балл //foreach($rez2 as $key2 => $val2)if($key2){ // if($val2['value']==$val1['value']){} //} } } $dan['ip'][]=$val1; } $out[$val['pos']] = parse_formula($formula,$dan); $itogo += $out[$val['pos']]; } } }else{//в сохранениях нет, т.к. в поля не вводится текст $itogo = parse_formula($formula,$dan); } if($ST['debug_formul']) $out['debug'] .= $_SESSION['debug_formul']; $out['itogo']=$itogo; } return $out; } function rejt_savesballs($id_razdel,$id_item,$id_user,$ball,$des,$data_c=0){//сохранение баллов для пользователя GLOBAL $ST,$DB; $out=array(); if($des=='dele'){ $sql = 'DELETE FROM '.$ST['dbpf'].'_rejt_savesballs WHERE id_user='.$id_user.' AND id_item='.$id_item.' AND id_razdel='.$id_razdel.' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez = $DB->QUR($sql); } if($des=='save'){ if($ball=='') $ball=0; $sql = 'SELECT id FROM '.$ST['dbpf'].'_rejt_savesballs WHERE id_user='.$id_user.' AND id_item='.$id_item.' AND id_razdel='.$id_razdel.' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez = $DB->QUR_SEL($sql); //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :: '.$sql.':id='.print_r($rez,1)."\n",FILE_APPEND); if($rez){ $sql1 = 'UPDATE '.$ST['dbpf'].'_rejt_savesballs SET balls='.$ball.',data_c='.$data_c.' WHERE id='.$rez[1]['id'].''; $rez1 = $DB->QUR($sql1); //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :: '.$sql1.print_r($rez1,1)."\n",FILE_APPEND); }else{ $sql1 = 'INSERT INTO '.$ST['dbpf'].'_rejt_savesballs VALUES(0,'.$data_c.','.$id_user.','.$id_razdel.','.$id_item.','.$ball.')'; $rez1 = $DB->QUR($sql1); //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :: '.$sql1.print_r($rez1,1)."\n",FILE_APPEND); } } return $out; } function rejt_raschet($id_item,$id_user){//расчет баллов по пользователю, текущий расчет! не архивный GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_rejt_items WHERE id='.$id_item.' AND status=1 LIMIT 1'; $rez = $DB->QUR_SEL($sql); //$ST['debug_formul']=1; if($rez){ $val = $rez[1];//ЕСЛИ[ip_5>=80000#ip_6/1000#0] //if($val['id']==21) $tt=1; else $tt=0; //if($tt==1) echo '
'.print_r($val,1).'
'; //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :rejt_raschet: '.$sql.print_r($rez,1)."\n",FILE_APPEND); $formula = htmlspecialchars_decode($val['formuls']);//надо найти в формуле вставляемые значения $itogo=0; $_SESSION['debug_formul']=''; //выбираем сохранения в зависимости от $_SESSION['otchgods'][3]['data_s1']-$_SESSION['otchgods'][3]['data_s2'] if(isset($_SESSION['otchgods'][3])){ //$sql = 'SELECT pos FROM '.$ST['dbpf'].'_rejt_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' GROUP BY pos ORDER BY pos'; $sql = 'SELECT pos FROM '.$ST['dbpf'].'_rejt_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].') GROUP BY pos ORDER BY pos'; //echo $sql; //SELECT pos FROM acs_rejt_saves WHERE id_user=638 AND id_items=32 AND (data_c BETWEEN 1567285200 AND 1591995600) GROUP BY pos ORDER BY pos $rez = $DB->QUR_SEL($sql); //if($tt==1) echo $sql.'
'.print_r($rez,1).'
'; //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :rejt_raschet: '.$sql.print_r($rez,1)."\n",FILE_APPEND); if($rez){ $dan=array(); foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT id_itemspolyas as id,value FROM '.$ST['dbpf'].'_rejt_saves WHERE id_user='.$id_user.' AND id_items='.$id_item.' AND pos='.$val['pos'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].')'; $rez1 = $DB->QUR_SEL($sql1); //if($tt==1) echo $sql1.'
'.print_r($rez1,1).'
'; //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :rejt_raschet: '.$sql1.print_r($rez1,1)."\n",FILE_APPEND); if($ST['debug_formul']) $out['debug'] .= $sql1."\n".print_r($rez1,1)."\n"; if($rez1){ $dan['ip']=array(); foreach($rez1 as $key1 => $val1)if($key1){ //проверим наличие баллов $sql2 = 'SELECT name,value FROM '.$ST['dbpf'].'_rejt_polyas WHERE id_item='.$val1['id'].' AND status=1'; $rez2 = $DB->QUR_SEL($sql2); //file_put_contents('rrrr.log',date('H:i:s d.m.Y').' :rejt_raschet: '.$sql2.print_r($rez2,1)."\n",FILE_APPEND); if($rez2){ if($rez2[0]==1){ $val1['value']=$rez2[1]['value']; }else{ //тут и так хранится в save балл //foreach($rez2 as $key2 => $val2)if($key2){ // if($val2['value']==$val1['value']){} //} } } if($val1['value']=='')$val1['value']=0; $dan['ip'][]=$val1; if($ST['debug_formul']) $out['debug'] .= $sql2."\n".print_r($val1,1)."\n"; } if($ST['debug_formul']) $out['debug'] .= 'formula:'.$formula."\n"; //if($tt==1) echo $formula.'
'.print_r($dan,1).'
'; $out[$val['pos']] = parse_formula($formula,$dan); $itogo += $out[$val['pos']]; } } } } if($ST['debug_formul']) $out['debug'] .= $_SESSION['debug_formul']; if($itogo==INF||$itogo==NAN) { $itogo=0; } $out['itogo']=$itogo; //if($tt==1) echo '
'.print_r($out,1).'
'; } return $out; } //_______$formula - ИМЯ ЧТО РАСЧИТЫВАЕМ //_______$mas - МАССИВ С ЗНАЧЕНИЯМИ ИЗ УЧЕБНОГО ПЛАНА //_______$rmas - МАССИВ УЖЕ РАССЧИТАННЫЙ (ДЛЯ ЭЛЕМЕНТОВ НАЧИНАЮЩИХСЯ С r_) //_______$kaf - МАССИВ ЗНАЧЕНИЙ ДАННЫХ КАФЕДРЫ /* $dan['ip'][0]['id']=6; $dan['ip'][0]['value']=20000; $fff = parse_formula($rez[1]['formuls'],$dan); */ function mathrep($formula){ GLOBAL $ST; $m1 = array('>=','<='); $m2 = array('bir','mir'); $out = str_replace($m1,$m2,$formula); //if($ST['debug_formul']){ $_SESSION['debug_formul'] .= 'rep1='.$out.'
'; } $m1 = array('=','<>','<','>','.'); //$m2 = array('"=="','"!="','"<"','">"',','); $m2 = array('==','!=','<','>',','); $out = str_replace($m1,$m2,$out); //if($ST['debug_formul']){ $_SESSION['debug_formul'] .= 'rep2='.$out.'
'; } $m1 = array('bir','mir'); $m2 = array('>=','<='); $out = str_replace($m1,$m2,$out); //if($ST['debug_formul']){ $_SESSION['debug_formul'] .= 'rep3='.$out.'
'; } return ''.$out.''; } function usl_ili($formula){//___ПРОВЕРИТЬ ЕСТЬ ЛИ ИЛИ //ЕСЛИ[ИЛИ([r_kurs_rab]>0;[r_kurs_proekt]>0)#1#0] if (preg_match('/ИЛИ\((.*)\)/', $formula, $result)){ $t = explode(';',$result[1]); $z = false; //$m1 = array('>=','<=','=','<>','<','>','.'); //$m2 = array('">=','"<="','"=="','"!="','"<"','">"',','); foreach($t as $key => $val){ //$zzz = '"'.str_replace($m1,$m2,$val).'"'; $zzz = mathrep($val); eval('if ('.$zzz.') $usl=1; else $usl=0;'); if ($usl) { $z=true; break; } } if ($z){ $formula = str_replace($result[0],'1=1',$formula); }else{ $formula = str_replace($result[0],'1=0',$formula); } } return $formula; } function usl_i($formula){//___ПРОВЕРИТЬ ЕСТЬ ЛИ И //ЕСЛИ[И([fo]=оч;[tk]=Гум.;[kk]<>05)#1#0] if (preg_match('/И\((.*)\)/isU', $formula, $result)){ $t = explode(';',$result[1]); $z = true; //$m1 = array('>=','<=','=','<>','<','>','.'); //$m2 = array('">="','"<="','"=="','"!="','"<"','">"',','); foreach($t as $key => $val){ //$zzz = '"'.str_replace($m1,$m2,$val).'"'; $zzz = mathrep($val); eval('if ('.$zzz.') $usl=1; else $usl=0;'); if (!$usl) {$z=false; break;} } if ($z){ $formula = str_replace($result[0],'1=1',$formula); }else{ $formula = str_replace($result[0],'1=0',$formula); } } return $formula; } function usl_esli2($formula){ GLOBAL $ST; //$a = array('>=','<=','=','<>','<','>','.'); //$b = array('">="','"<="','"=="','"!="','"<"','">"',','); $oformula = $formula; //$formula=str_replace($a,$b,$formula); $formula = mathrep($formula); if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$formula='.$formula.'
'; } while(mb_strpos($formula,'Х')){ for($i=mb_strlen($formula);$i>0;$i--){ $symb = mb_substr($formula, $i, 1, 'UTF-8'); if($symb=='Х'){ $j=$i-3; break; } } $pervtz=mb_strpos(mb_substr($formula,$j+5),'#')+$j+5; $vtortz=mb_strpos(mb_substr($formula,$pervtz+1),'#')+$pervtz+1; $skobka=mb_strpos(mb_substr($formula,$vtortz),']')+$vtortz; $us = mb_substr($formula,$j+5,$pervtz-($j+5)); //[all_koef]*ЕСЛИ[[ekzamen]=есть#2*[kol_grup]#0] if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$us='.$us.'
'; } eval(' $us1='.$us.';'); if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$us1='.$us1.'
'; } if($us1){ $s=mb_substr($formula,$pervtz+1,$vtortz-$pervtz-1); }else{ $s=mb_substr($formula,$vtortz+1,$skobka-$vtortz-1); } if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$s='.$s.'
'; } if ($s=='') $s=0; $formula=mb_substr($formula,0,$j).$s.mb_substr($formula,$skobka+1); if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$formula='.$formula.'
'; } } $us=str_replace(',','.',$formula); if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$us='.$us.'
'; } if($us) eval(' $formula='.$us.';'); else $formula=0; if($ST['debug_formul']){ $_SESSION['debug_formul'] .= '$formula='.$formula.'
'; } return $formula; } function parse_formula($formula,$dan){ GLOBAL $ST,$DB; $out = array(); //[all_koef]*(ЕСЛИ[И([fo]=оч;[tk]=Гум.;[kk]<>05)#0,5*[kol_stud]#0]+ЕСЛИ[И([fo]=оч;[tk]=Техн.;[kk]<>05)#[kol_stud]#0]+ЕСЛИ[И([fo]=заоч;[tk]=Гум.;[kontr_rab]=есть;[kk]<>05)#0,5*[kol_stud]#ЕСЛИ[И([fo]=заоч;[tk]=Техн.;[kontr_rab]=есть;[kk]<>05)#[kol_stud]#0]]) //echo $formula.'
'.print_r($dan,1).'
'; //$ST['debug_formul']=1; if(!isset($ST['debug_formul'])) $ST['debug_formul']=0; if($ST['debug_formul']){ $_SESSION['debug_formul'] .= 'Исходная формула: '.$formula .' = '. $formula; $_SESSION['debug_formul'] .= print_r($dan,1).' '; } //Надо заменить элементы в формуле foreach($dan as $pref => $znach){ foreach($znach as $key => $val){ if($ST['debug_formul']){ $_SESSION['debug_formul'] .= $pref.'_'.$val['id'].'='.$val['value'].'
'; } //if($val['value']=='') $val['value'] = 0; if (is_numeric($val['value'])) $value = +$val['value']; else $val['value'] = 0; $formula = str_replace(''.$pref.'_'.$val['id'].'',+$val['value'],$formula); } } //____НАДО ОБРАБОТАТЬ КОНСТРУКЦИИ //_ЕСЛИ(условие;истина;ложь) ЕСЛИ(есть=есть;2*1;0) //_И(условие;условие;условие;...) И(оч=оч;=Гум.;<>05) //_ИЛИ(условие;условие;условие;...) $m1 = array('ЕСЛИ'); $m2 = array('ЕСЛХ'); $formula = str_replace($m1,$m2,$formula); if($ST['debug_formul']) $_SESSION['debug_formul'] .= 'Формула преоб.: '.$formula.'
'; $kol = mb_substr_count($formula, 'ИЛИ'); for ($i=0;$i!=$kol;$i++){ $formula = usl_ili($formula); } if($ST['debug_formul']) $_SESSION['debug_formul'] .= 'Убрали ИЛИ: '.$formula.'
'; $kol = mb_substr_count($formula, 'И'); for ($i=0;$i!=$kol;$i++){ $formula = usl_i($formula); } if($ST['debug_formul']) $_SESSION['debug_formul'] .= 'Убрали И: '.$formula.'
'; $out=usl_esli2($formula); if($ST['debug_formul']) $_SESSION['debug_formul'] .= 'Результат: '.$out.'
'; return round($out,2); } function iup_get_kafedras(){//получаем факульеты из расчета часов $file = 'tmp/json_kafedras.json'; if((time()-$ft)>(60*60*24*3)) unlink($file);//файл обновляется 1 раз в 3 дня if(!file_exists($file)){ $url = 'http://local.mkgtu.ru/calchour_2019/get_json.php?json=kafedras'; $json = file_get_contents($url); file_put_contents($file,$json); }else{ $json = file_get_contents($file); } $json1 = json_decode($json,1); $out=array();//уберем все лишние специальности foreach($json1 as $k => $v){ $out[] = $v; } return $out; } //СПИСОК ФАКУЛЬТЕТОВ function lists_fakultets(){ GLOBAL $ST,$DB; $out = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties'; $rez = $DB->QUR_SEL($sql); foreach ($rez as $key => $value) if ($key){ $out[] = $value; } return $out; } //СПИСОК ФАКУЛЬТЕТОВ function lists_kafedres(){ GLOBAL $ST,$DB; $out = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_kafedres'; $rez = $DB->QUR_SEL($sql); foreach ($rez as $key => $value) if ($key){ $out[] = $value; } return $out; } //ученые звания function uch_zvan(){ $zvan = array(); $zvan['доц.'] = 'доцент'; $zvan['проф.'] = 'профессор'; $zvan['ст. науч. сотр.'] = 'старший научный сотрудник'; $zvan['мл. науч. сотр.'] = 'младший научный сотрудник'; $zvan['акад.'] = 'академик'; $zvan['чл.-кор.'] = 'член-корреспондент'; return $zvan; } //ученые степени function uch_step(){ $step = array(); $step['д-р философских наук'] = 'доктор философских наук'; $step['д-р архитектуры'] = 'доктор архитектуры'; $step['д-р искусствоведения'] = 'доктор искусствоведения'; $step['д-р культурологии'] = 'доктор культурологии'; $step['д-р биол. наук'] = 'доктор биологических наук'; $step['д-р ветеринар. наук'] = 'доктор ветеринарных наук'; $step['д-р воен. наук'] = 'доктор военных наук'; $step['д-р геогр. наук'] = 'доктор географических наук'; $step['д-р геол.-минерал. наук'] = 'доктор геолого-минералогических наук'; $step['д-р ист. наук'] = 'доктор исторических наук'; $step['д-р мед. наук'] = 'доктор медицинских наук'; $step['д-р пед. наук'] = 'доктор педагогических наук'; $step['д-р полит. наук'] = 'доктор политических наук'; $step['д-р психол. наук'] = 'доктор психологических наук'; $step['д-р социол. наук'] = 'доктор социологических наук'; $step['д-р с.-х. наук'] = 'доктор сельскохозяйственных наук'; $step['д-р техн. наук'] = 'доктор технических наук'; $step['д-р фармацевт. наук'] = 'доктор фармацевтических наук'; $step['д-р физ.-мат. наук'] = 'доктор физико-математических наук'; $step['д-р филол. наук'] = 'доктор филологических наук'; $step['д-р хим. наук'] = 'доктор химических наук'; $step['д-р экон. наук'] = 'доктор экономических наук'; $step['д-р юрид. наук'] = 'доктор юридических наук'; $step['канд. философских наук'] = 'кандидат философских наук'; $step['канд. архитектуры'] = 'кандидат архитектуры'; $step['канд. искусствоведения'] = 'кандидат искусствоведения'; $step['канд. культурологии'] = 'кандидат культурологии'; $step['канд. биол. наук'] = 'кандидат биологических наук'; $step['канд. ветеринар. наук'] = 'кандидат ветеринарных наук'; $step['канд. воен. наук'] = 'кандидат военных наук'; $step['канд. геогр. наук'] = 'кандидат географических наук'; $step['канд. геол.-минерал. наук'] = 'кандидат геолого-минералогических наук'; $step['канд. ист. наук'] = 'кандидат исторических наук'; $step['канд. мед. наук'] = 'кандидат медицинских наук'; $step['канд. пед. наук'] = 'кандидат педагогических наук'; $step['канд. полит. наук'] = 'кандидат политических наук'; $step['канд. психол. наук'] = 'кандидат психологических наук'; $step['канд. социол. наук'] = 'кандидат социологических наук'; $step['канд. с.-х. наук'] = 'кандидат сельскохозяйственных наук'; $step['канд. техн. наук'] = 'кандидат технических наук'; $step['канд. фармацевт. наук'] = 'кандидат фармацевтических наук'; $step['канд. физ.-мат. наук'] = 'кандидат физико-математических наук'; $step['канд. филол. наук'] = 'кандидат филологических наук'; $step['канд. хим. наук'] = 'кандидат химических наук'; $step['канд. экон. наук'] = 'кандидат экономических наук'; $step['канд. юрид. наук'] = 'кандидат юридических наук'; return $step; } function iup_get_fakultets(){//получаем факульеты из расчета часов //ТОЛЬКО ЭТОТ $file = 'tmp/json_fakultets.json'; $ft = filemtime($file); if((time()-$ft)>(60*60*24*3)) unlink($file);//файл обновляется 1 раз в 3 дня if(!file_exists($file)){ $url = 'http://local.mkgtu.ru/calchour_2019/get_json.php?json=fakultets'; $json = file_get_contents($url); file_put_contents($file,$json); }else{ $json = file_get_contents($file); } $json1 = json_decode($json,1); $out=array();//уберем все лишние специальности foreach($json1 as $k => $v){ $out[] = $v; } $out[] = array("id"=>"999","name"=>"Филиал в пгт.Яблоновск","kod_kaf"=>"ЯблФил","type"=>"техн.","zaved"=>"Гагина Екатерина Викторовна","fakult"=>"Филиал","sr_kol_chas"=>"890","dekan"=>""); return $out; } function json_get_ssid(){ GLOBAL $ST,$DB; $ssid = ''; if(isset($_SESSION['user'])&&isset($_SESSION['user']['id'])) { /*if(isset($_SESSION['user']['teacher'])) { $ssid = 't_'.md5($_SESSION['user']['id'].$_SESSION['user']['teacher']['id']); } if(isset($_SESSION['user']['student'])) { $ssid = 's_'.md5($_SESSION['user']['id'].$_SESSION['user']['student']['id']); }*/ $ssid = md5($_SESSION['user']['id'].$_SESSION['user']['data_c'].$_SESSION['user']['email'].'DFRG!34_09'); $ins=false; $sql = 'SELECT * FROM '.$ST['dbpf'].'_libssid WHERE user_id='.$_SESSION['user']['id'].''; $rez = $DB->QUR_SEL($sql); if($rez){ if($rez[1]['ssid']==$ssid){ $sql = 'UPDATE '.$ST['dbpf'].'_libssid SET data_c='.time().' WHERE id='.$rez[1]['id'].' LIMIT 1'; $rez = $DB->QUR($sql); $ins=false; }else{ $sql = 'DELETE FROM '.$ST['dbpf'].'_libssid WHERE id='.$rez[1]['id'].' LIMIT 1'; $rez = $DB->QUR($sql); $ins=true; } }else $ins=true; if($ins){ $sql = 'INSERT INTO '.$ST['dbpf'].'_libssid VALUES(0,'.time().','.$_SESSION['user']['id'].',"'.$ssid.'")'; $DB->QUR($sql); } } $_SESSION['user']['lib'] = $ssid; } function save_logs($msg=''){ GLOBAL $ST,$DB; $out=array(); $user = ''; if(isset($_SESSION['user']['fio'])) $user = 'id:'.$_SESSION['user']['id'].'-'.$_SESSION['user']['fio']; $ip = $_SERVER['REMOTE_ADDR']; $sql = 'INSERT INTO '.$ST['dbpf'].'_logs VALUES(0,'.mktime().',"'.addslashes($msg).'",'.$_SESSION['user']['id'].', "'.$ip.'")'; $DB->QUR($sql); } //Загрузка аватара пользователю function upload_file_ava($name,$dir_dest,$user){ $file=''; $handle = new Upload($_FILES[$name]); if ($handle->uploaded) { $handle->file_new_name_body = $user.'_ava_orig'; $handle->image_convert = 'jpg'; $handle->file_overwrite = true; $handle->Process($dir_dest); if ($handle->processed) { $file = $handle->file_dst_name; } $handle->file_new_name_body = $user.'_ava_300'; $handle->image_convert = 'jpg'; $handle->file_overwrite = true; $handle->image_resize = true; $handle->image_ratio_y = true; $handle->image_x = 300; $handle->Process($dir_dest); if ($handle->processed) { } $handle->file_new_name_body = $user.'_ava_150'; $handle->image_convert = 'jpg'; $handle->file_overwrite = true; $handle->image_resize = true; $handle->image_ratio_y = true; $handle->image_x = 150; $handle->Process($dir_dest); if ($handle->processed) { } $handle-> Clean(); } return $file; } //транслитерация строки function translit($st) { $a = array_merge(array_combine(preg_split('//u', "абвгдеёзийклмнопрстуфхцьыэАБВГДЕЁЗИЙКЛМНОПРСТУФХЦЬЫЭabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"), preg_split('//u', "abvgdeeziyklmnoprstufhc'ieABVGDEEZIYKLMNOPRSTUFHC'IEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_")), array("ж" => "zh", "ч" => "ch", "ш" => "sh", "щ" => "shch", "ъ" => "", "ю" => "yu", "я" => "ya", "Ж" => "Zh", "Ч" => "Ch", "Ш" => "Sh", "Щ" => "Shch", "Ъ" => "", "Ю" => "Yu", "Я" => "Ya")); $r = preg_split('//u', $st); $out = ''; foreach ($r as $v) { if (isset($a[$v])){ $out .= $a[$v]; //file_put_contents('jsonlogupl.log',$v.'='.$a[$v]."\n",FILE_APPEND); } } return $out; } function translit_email($st) { $a = array_merge(array_combine(preg_split('//u', "абвгдеёзийклмнопрстуфхцьыэАБВГДЕЁЗИЙКЛМНОПРСТУФХЦЬЫЭabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"), preg_split('//u', "abvgdeeziyklmnoprstufhc_ieABVGDEEZIYKLMNOPRSTUFHC'IEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_")), array("ж" => "zh", "ч" => "ch", "ш" => "sh", "щ" => "shch", "ъ" => "", "ю" => "yu", "я" => "ya", "Ж" => "Zh", "Ч" => "Ch", "Ш" => "Sh", "Щ" => "Shch", "Ъ" => "", "Ю" => "Yu", "Я" => "Ya")); $r = preg_split('//u', $st); $out = ''; foreach ($r as $v) { if (isset($a[$v])){ $out .= $a[$v]; //file_put_contents('jsonlogupl.log',$v.'='.$a[$v]."\n",FILE_APPEND); } } return $out; } //пагинация страниц function pagination($sql,$kol=10){ GLOBAL $ST,$DB; $out=array();// print_r($_GET); if (isset($_GET['p'])) $page=(int)$_GET['p']-1; else $page=0; // $page = $_SERVER['REQUEST_URI']; $page2 = explode("/", $page); $page3 = explode("p", $page2[3]); $page4 = $page3[1]-1; $page = $page4; if ($page == -1) $page = 0; // $rez=$DB->QUR_SEL($sql); if($rez){ $r=ceil((int)$rez[0]/$kol); //if (fmod((int)$rez[0], $kol)!=0){} $out['page']=($page+1); //$out['page']=($page); $out['kol']=$r; $out['limit']=' LIMIT '.($page*$kol).', '.$kol.''; }else{ $out['page']=0; $out['kol']=0; $out['limit']=''; } return $out; } //пагинация страниц ДЛЯ БЛОГА function pagination_blog($sql,$kol=10){ GLOBAL $ST,$DB; $out=array();// print_r($_GET); if (isset($_GET['p'])) $page=(int)$_GET['p']-1; else $page=0; $rez=$DB->QUR_SEL($sql); if($rez){ $r=ceil((int)$rez[0]/$kol); if (fmod((int)$rez[0], $kol)!=0){} $out['page']=($page+1); $out['kol']=$r; $out['limit']=' LIMIT '.($page*$kol).', '.$kol.''; }else{ $out['page']=0; $out['kol']=0; $out['limit']=''; } return $out; } //проверяем есть ли статус у пользователя function isStatusUser($status){ GLOBAL $ST, $DB; $id_user = $_SESSION['user']['id']; $sql = 'SELECT us.*, st.* FROM '.$ST['dbpf'].'_users as us, '.$ST['dbpf'].'_users_statuses as st WHERE us.id = "'.$id_user.'" AND st.id_user = us.id '; $rez = $DB->QUR_SEL($sql); if ($rez){ if ($rez[1]['status'] == $status) return true; else{ $part = explode(',', $rez[1]['statuses']); $i = 0; while ($i < count($part)){ if ($part[$i] == $status) return true; $i++; } } } return false; } //ОБРАБОТКА ДАННЫХ ОТ ПОЛЬЗОВАТЕЛЯ function get_data_fu($str){ //return htmlspecialchars(addslashes(strip_tags($str))); //return htmlspecialchars(mysql_escape_string(strip_tags($str))); return htmlspecialchars(strip_tags($str)); } function out_data_fu($str){ return stripslashes($str); } //ПОЛУЧЕНИЕ ДАННЫХ О ГРУППЕ function get_grupp($id){ GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id='.$id.''; $rez=$DB->QUR_SEL($sql); if($rez){ $out=$rez[1]; } return $out; } //ОПРЕДЕЛЯЕМ КУРС ИЗ НАЗВАНИЯ ГРУППЫ function courseOfGruppa($id_grupp){ $gruppa = get_grupp($id_grupp); //берем инфу о группе $part = explode('-', $gruppa['sokr']); //сокращенное название группы return $part[1][0]; //возвращаем первый символ второй части, получается курс } //ПОЛУЧЕНИЕ ДАННЫХ О ПОЛЬЗОВАТЕЛЕ function get_user($id,$field=array()){ GLOBAL $ST,$DB; $out=array(); if(count($field)){ $sql = 'SELECT '.implode(',',$field).' FROM ' . $ST['dbpf'] . '_users WHERE id=' . $id . ''; }else { $sql = 'SELECT * FROM ' . $ST['dbpf'] . '_users WHERE id=' . $id . ''; } $rez=$DB->QUR_SEL($sql); if($rez){ //unset($rez[1]['pass']); $out=$rez[1]; } return $out; } //ПОЛУЧЕНИЕ ДАННЫХ О СТУДЕНТЕ function get_student($id_user){ GLOBAL $ST,$DB; $out = array(); $sql = 'SELECT st.*, st.id as id_stud, gr.* FROM '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_grupp as gr WHERE st.id_user = "'.$id_user.'" AND st.id_grupp = gr.id '; $rez = $DB->QUR_SEL($sql); if ($rez) $out = $rez[1]; return $out; } //ПОЛУЧЕНИЕ ДАННЫХ О СТУДЕНТЕ-ПОЛЬЗОВАТЕЛЕ function get_new_student($id_student){ GLOBAL $ST, $DB; $out = array(); $sql = 'SELECT us.*, st.* FROM '.$ST['dbpf'].'_users as us, '.$ST['dbpf'].'_students as st WHERE st.id = "'.$id_student.'" AND st.id_user = us.id '; $rez = $DB->QUR_SEL($sql); if ($rez) $out = $rez[1]; return $out; } //ПОЛУЧЕНИЕ ДАННЫХ ТОЛЬКО О СТУДЕНТЕ function get_student_only($id_user){ GLOBAL $ST,$DB; $out = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_students WHERE id_user = "'.$id_user.'" '; $rez = $DB->QUR_SEL($sql); if ($rez) $out = $rez[1]; return $out; } //ПОЛУЧЕНИЕ ИНФОРМАЦИИ ТОЛЬКО О ПРЕПОДЕ function get_teacher_only($id_user){ GLOBAL $ST, $DB; $out = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_teachers WHERE id_user = "'.$id_user.'" '; $rez = $DB->QUR_SEL($sql); if ($rez) $out = $rez[1]; return $out; } //ПОЛУЧЕНИЕ ДАННЫХ О ПОЛЬЗОВАТЕЛЕ function get_teacher_user($id){ GLOBAL $ST,$DB; $out=array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_teachers WHERE id='.$id.' LIMIT 1'; $rez=$DB->QUR_SEL($sql); if($rez){ $sql = 'SELECT * FROM '.$ST['dbpf'].'_users WHERE id='.$rez[1]['id_user'].' LIMIT 1'; $rez=$DB->QUR_SEL($sql); if($rez){ unset($rez[1]['pass']); $out=$rez[1]; } } return $out; } //написать сообщение function write_message($to_user, $message){ GLOBAL $ST, $DB; //$sql = 'INSERT INTO '.$ST['dbpf'].'_pm VALUES (0,'.mktime().','.$_SESSION['user']['id'].','.$to_user.',"'.$message.'",2,1,"")'; //$rez = $DB->QUR($sql); include_once 'inc/pm_route.php'; $params['pm']['otkogo_user_id'] = $_SESSION['user']['id']; $params['pm']['komu_user_id'] = $to_user; $params['pm']['message_text'] = $message; $params['pm']['from_status'] = 2; $params['pm']['to_status'] = 1; $params['pm']['file'] = ''; $pm_rez = PM_SEND($params); //$msg = 'Сообщение студенту отправлено, отправили'; //if($pm_rez['eml']['send']==1) $msg .= ' на личную почту и '; //if($pm_rez['pm']['send']==1) $msg .= ' в личные сообщения на сайте!'; } function get_user_inf($id,$t=0){//ФИО пользователей 0-для отобрадения 1- для выбора GLOBAL $ST,$DB; if($t==0) $sql = 'SELECT * FROM '.$ST['dbpf'].'_users WHERE id='.$id.' LIMIT 1'; else $sql = 'SELECT * FROM '.$ST['dbpf'].'_users ORDER BY fio'; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $st[$val['id']] = stripslashes($val['fio']); } if($t==0) return $st[$id]; else{ $out=array(); $i=0;foreach($st as $key => $val){ $out[$i]['id']=$key; $out[$i]['name']=strip_tags($val); if ($id==$key) $out[$i]['sel']=1; else $out[$i]['sel']=0; $i++; } return $out; } } } //СПИСОК КОДОВ СПЕЦИАЛЬНОСТЕЙ ОПРЕДЕЛЕННОГО ФАКУЛЬТЕТА function listAreaOfFakultet($fakultet){ GLOBAL $ST, $DB; $fakultet = $_SESSION['user']['teacher']['fakultet']; //берем айдишник факультета и определяем кафедры, которые привязаны к этому факультету (выпускающие) $areas = array(); $sql = 'SELECT fac.*, kaf.*, kaf.id as id_kaf FROM '.$ST['dbpf'].'_faculties as fac, '.$ST['dbpf'].'_kafedres as kaf WHERE fac.name = "'.$fakultet.'" AND kaf.id_facult = fac.id '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val){ //перебираем кафедры и определяем коды специальностей $sql_ar = 'SELECT * FROM '.$ST['dbpf'].'_areas WHERE id_kafedra = "'.$val['id_kaf'].'" '; $rez_ar = $DB->QUR_SEL($sql_ar); if ($rez_ar){ foreach ($rez_ar as $key_ar => $val_ar) if ($key_ar){ $areas[] = $val_ar; } } } } return $areas; } //СПИСОК ВСЕХ ПРЕПОДАВАТЕЛЕЙ (действующих) function all_teachers($kaf = '*'){ /*** kaf - кафедра, по умолчанию - все преподы **/ GLOBAL $ST, $DB; if ($kaf == '*') $sql = 'SELECT * FROM '.$ST['dbpf'].'_users as us, '.$ST['dbpf'].'_teachers as teach WHERE teach.id_user = us.id AND us.status >= 0 AND teach.status = 1 ORDER BY fio'; else $sql = 'SELECT * FROM '.$ST['dbpf'].'_users as us, '.$ST['dbpf'].'_teachers as teach WHERE teach.id_user = us.id AND us.status >= 0 AND teach.status = 1 AND teach.kafedra = "'.$kaf.'" ORDER BY fio'; //echo $sql; $rez = $DB->QUR_SEL($sql); $teachers = array(); foreach ($rez as $key => $val) if ($key){ $teachers[] = $val; } return $teachers; } // УЧЕБНЫЙ МАТЕРИАЛ ОПРЕДЕЛЕННОГО ПРЕПОДАВАТЕЛЯ function get_lection_teacher($id_teacher, $name, $kurs, $sem, $rb = 0){ /* id_teacher name - название дисциплины kurs - курс учебного материала sem - семестр rb - рабочая программа, 0 -нет, 1 - да */ GLOBAL $ST, $DB; if ($rb == 0){ //учебный материал $sql = 'SELECT * FROM '.$ST['dbpf'].'_lections WHERE id_teacher = "'.$id_teacher.'" AND name = "'.$name.'" AND kurs = "'.$kurs.'" AND semestr = "'.$sem.'"'; $rez = $DB->QUR_SEL($sql); $material = array(); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['data_u'] = date('d.m.Y',$val['data_u']); //если несколько файлов $val['files'] = explode('|',$val['file']); //foreach($df as $k => $v) $out .= ($k+1).'. Скачать; '; //теперь собираем информацию о всех группах, для которых лекция $val['grupps'] = array(); $sql1 = 'SELECT * FROM '.$ST['dbpf'].'_lections_grupp WHERE id_lections = "'.$val['id'].'" '; //echo $sql1; $rez1 = $DB->QUR_SEL($sql1); foreach ($rez1 as $key1 => $val1) if ($key1){ $val['grupps'][] = get_grupp($val1['id_grupp']); } //также смотрим выставлены ли модульные отметки $val['module'] = 0; $sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_ocenki WHERE id_what = "'.$val['id'].'" AND type=1 LIMIT 1'; $rez_mark = $DB->QUR_SEL($sql_mark); if ($rez_mark[0] > 0) $val['module'] = 1; /***/ $material[] = $val; } } } else{ //рабочая программа //$sql = 'SELECT * FROM '.$ST['dbpf'].'_workprogram WHERE id_teacher = "'.$id_teacher.'" AND name = "'.$name.'" AND kurs LIKE "%'.$kurs.'%" AND semestr LIKE "%'.$sem.'%"'; $sql = 'SELECT * FROM '.$ST['dbpf'].'_workprogram WHERE id_teacher = "'.$id_teacher.'" AND name = "'.$name.'" '; $rez = $DB->QUR_SEL($sql); $material = array(); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['data_u'] = date('d.m.Y',$val['data_u']); //теперь собираем информацию о всех группах, для которых лекция $val['grupps'] = array(); $sql1 = 'SELECT * FROM '.$ST['dbpf'].'_workprogram_grupp WHERE id_lections = "'.$val['id'].'" '; //echo $sql1; $rez1 = $DB->QUR_SEL($sql1); foreach ($rez1 as $key1 => $val1) if ($key1){ $val['grupps'][] = get_grupp($val1['id_grupp']); } /***/ $material[] = $val; } } } return $material; } function get_teacher_inf($id,$t=0){//ФИО ПРЕПОДОВ 0-для отобрадения 1- для выбора GLOBAL $ST,$DB; if($t==0) { //$rez0 = $DB->QUR_SEL('SELECT * FROM '.$ST['dbpf'].'_teachers WHERE id='.$id.''); $sql = 'SELECT t.id as tid,u.fio FROM '.$ST['dbpf'].'_users as u,'.$ST['dbpf'].'_teachers as t WHERE t.id='.$id.' AND t.id_user=u.id LIMIT 1'; }else { $sql = 'SELECT t.id as tid,u.fio FROM '.$ST['dbpf'].'_users as u,'.$ST['dbpf'].'_teachers as t WHERE t.id_user=u.id ORDER BY u.fio'; } $rez = $DB->QUR_SEL($sql);//echo $sql.mysql_error(); if($rez){ foreach($rez as $key => $val)if($key){ $st[$val['tid']] = stripslashes($val['fio']); } if($t==0) return $st[$id]; else{ $out=array(); $i=0;foreach($st as $key => $val){ $out[$i]['id']=$key; $out[$i]['name']=strip_tags($val); if ($id==$key) $out[$i]['sel']=1; else $out[$i]['sel']=0; $i++; } return $out; } } } /*функция склонения лет*/ function declension($number, array $data){ $rest = [$number % 10, $number % 100]; if($rest[1] > 10 && $rest[1] < 20) { return $data[2]; } elseif ($rest[0] > 1 && $rest[0] < 5) { return $data[1]; } else if ($rest[0] == 1) { return $data[0]; } return $data[2]; } //ПОЛУЧАЕМ ВСЕ ИМГ ИЗ ТЕКСТА function img_get_all($text){ $out = array(); $matches = array(); $reg = '/(src|img)=(.*)("\s|\'\s|>)/isU'; preg_match_all($reg , $text , $matches); if (count($matches[2])){ $i=0; foreach ($matches[2] as $key1 => $val1) { $out[$i] = str_replace('"','',$val1); $i++; } }else $out[0] = '/tpl/img/nophoto.png'; return $out; } //ОТОБРАЖАЕМ ДАТУ КРАСИВО function get_data($stamp,$t=0,$b=0){ //$mes = array('01'=>'Январь','02'=>'Февраль','03'=>'Март','04'=>'Апрель','05'=>'Май','06'=>'Июнь','07'=>'Июль','08'=>'Август','09'=>'Сентябрь','10'=>'Октябрь','11'=>'Ноябрь','12'=>'Декабрь'); $mes = array('01'=>'Января','02'=>'Февраля','03'=>'Марта','04'=>'Апреля','05'=>'Мая','06'=>'Июня','07'=>'Июля','08'=>'Августа','09'=>'Сентября','10'=>'Октября','11'=>'Ноября','12'=>'Декабря'); $day = array(1=>'Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'); //return date('d.m.Y',$stamp); $t1[0] = date('d',$stamp); $t1[1] = date('m',$stamp); $t1[2] = date('Y',$stamp); $t1[3] = date('H',$stamp); $t1[4] = date('i',$stamp); $stamp = mktime(0,0,0,$t1[1],$t1[0],$t1[2]); $d[0] = date('d',$stamp); $d[1] = $mes[date('m',$stamp)]; $d[2] = $day[date('w',$stamp)]; //$d[2] = date('w',$stamp); $now = mktime(0,0,0,date('m'),date('d'),date('Y')); $r = DateDiff ('d',$stamp,$now); //$d[2] .= '-'.$r; //return $stamp.'-'.$now.'='.($now-$stamp).' '.date('d.m.Y',$now).'-'.date('d.m.Y',$stamp).'['.$r.']'; if ($r<=2){ switch ($r): case(0): $d[2] = 'сегодня'; break; case(1): $d[2] = 'вчера'; break; case(2): $d[2] = 'позавчера'; break; //default: $d[2] = $day[date('w',$stamp)]; break; endswitch; } if ($d[2]!='') $d[2] .= ', ' ; $d[3] = date('Y',$stamp); if ($t==0){//Полная запись if ($b==0) return $t1[3].':'.$t1[4].' '.$d[2].'
'.$d[0].' '.$d[1].' '.$d[3]; else return $t1[3].':'.$t1[4].' '.$d[2].' '.$d[0].' '.$d[1].' '.$d[3]; } if ($t==1){//Короткая if ($r<=2) return $d[2].''.$t1[3].':'.$t1[4]; else return $d[0].'.'.$d[1].'.'.$d[3]; } } Function DateDiff ($interval,$date1,$date2) { if ( !function_exists('bcdiv') ) { function bcdiv( $x, $y, $scale = 0 ) { $res = $x / $y; return round( $res, $scale ); } } $timedifference = $date2 - $date1; switch ($interval) { case 'w': $retval = bcdiv($timedifference,604800); break; case 'd': $retval = bcdiv($timedifference,86400); break; case 'h': $retval = bcdiv($timedifference,3600); break; case 'n': $retval = bcdiv($timedifference,60); break; case 's': $retval = $timedifference; break; } return $retval; } /** * Функция возвращает окончание для множественного числа слова на основании числа и массива окончаний * @param $number Integer Число на основе которого нужно сформировать окончание * @param $endingsArray Array Массив слов или окончаний для чисел (1, 4, 5), * например array('яблоко', 'яблока', 'яблок') * @return String */ function getNumEnding($number, $endingArray){ $number = $number % 100; if ($number>=11 && $number<=19) { $ending=$endingArray[2]; } else { $i = $number % 10; switch ($i) { case (1): $ending = $endingArray[0]; break; case (2): case (3): case (4): $ending = $endingArray[1]; break; default: $ending=$endingArray[2]; } } return $ending; } //ОТПРАВКА ПИСЬМА function send_email($title,$message,$toemail,$from='',$f=1,$tpl=''){ $out = false; $param_CRON=array(); $param_CRON['title']=$title; $param_CRON['message']=$message; $param_CRON['toemail']=$toemail; $param_CRON['from']=$from; $param_CRON['f']=$f; $param_CRON['tpl']=$tpl; $file = 'PHPMailer/PHPMailerAutoload.php'; if(file_exists('inc/'.$file)){ require_once 'inc/'.$file; }else{ require_once $file; } //проверим ящик на ящики по номеру зачетки не шлем! $tmp = explode('@',$toemail); if(is_int($tmp[0])){ $out = false; return $out; } //Не отправляем на домен student.mkgtu.ru if(strpos($toemail,'@student.mkgtu.ru')!==false){ $out = false; return $out; } if(!isset($_SERVER['HTTP_HOST'])) $HOST = 'eios.mkgtu.ru'; else $HOST = $_SERVER['HTTP_HOST']; if($tpl==''){ $message = ''.$title.'Сообщение с сайта '.$HOST.'!
'.$message.'
ФГБОУ ВО "МГТУ" портал online обучения
Если вы считаете это письмо спамом или рассылкой, перешлите его на почту it@mkgtu.ru с пометкой СПАМ, мы постараемся разобраться в данной ситуации'; } if($tpl=='iup'){ $message = ''.$title.'Сообщение с сайта '.$HOST.'!
'.$message.'
ФГБОУ ВО "МГТУ" портал online обучения
Если вы считаете это письмо спамом или рассылкой, перешлите его на почту it@mkgtu.ru с пометкой СПАМ, мы постараемся разобраться в данной ситуации'; } include_once 'inc/email_cron.php'; $mail = new PHPMailer; try { $mail->CharSet = 'utf-8'; $mail->isSMTP(); $mail->SMTPDebug = 0; $mail->Host = 'smtp.yandex.ru'; $mail->Port = 25; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; if($title=='Восстановление пароля eios.mkgtu.ru') { //$email_ot = "noreply02@mkgtu.ru"; $email_ot = "noreply@mkgtu.ru"; //$email_ot = "eios.mkgtu01@yandex.ru"; $mail->Username = $email_ot; }else { $email_ot = "noreply@mkgtu.ru"; //$email_ot = "eios.mkgtu01@yandex.ru"; $mail->Username = $email_ot; } $mail->Password = "!!12345!!"; //$mail->Password = "xnpsldxcndjhtehc"; $mail->setFrom($email_ot, 'оповещатель['.$HOST.']'); $mail->addAddress($toemail); $mail->Subject = $title; $mail->msgHTML($message); $mail->AltBody = strip_tags($message); if (!$mail->send()) { $param_CRON['error'] = $mail->ErrorInfo; file_put_contents('email_error_01.txt',date('H:i:s d.m.Y').': ErrorInfo: '.$mail->ErrorInfo."\n",FILE_APPEND); EMAIL_cron_save_task($param_CRON); $out = false; } else { file_put_contents('email_error_01.txt',date('H:i:s d.m.Y').': SUCCESS: '."\n",FILE_APPEND); $out = true; EMAIL_cron_dele_task($param_CRON); } } catch (phpmailerException $e) { file_put_contents('email_error_01.txt',date('H:i:s d.m.Y').': phpmailerException: '.$e->errorMessage()."\n",FILE_APPEND); $param_CRON['error'] = $e->errorMessage(); EMAIL_cron_save_task($param_CRON); } catch (Exception $e) { file_put_contents('email_error_01.txt',date('H:i:s d.m.Y').': Exception: '.$e->getMessage()."\n",FILE_APPEND); $param_CRON['error'] = $e->getMessage(); EMAIL_cron_save_task($param_CRON); } return $out; } function send_email1($title,$message,$to='',$from='',$f=1){ if($to=='') $to = 'it@mkgtu.ru'; if($from=='') $from = 'noreply@'.$_SERVER['HTTP_HOST']; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf8' . "\r\n"; $headers .= 'From: '.$from. "\r\n" . 'Reply-To: '.$from . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if($f) $message .= '
--------------------------
Портал online обучения '.$_SERVER['HTTP_HOST'].'
Разработчики: Чундышко В.Ю., Яковлев А.Л., Голеусов Р.О.,
авторы: Чудесова Н.Н., Галичева М.С., Кучинская Е.А.'; return mail($to,$title,$message,$headers); } function encode($unencoded,$key){//Шифруем $string=base64_encode($unencoded);//Переводим в base64 $arr=array();//Это массив $x=0; while ($x++< strlen($string)) {//Цикл $arr[$x-1] = md5(md5($key.$string[$x-1]).$key);//Почти чистый md5 $newstr = $newstr.$arr[$x-1][3].$arr[$x-1][6].$arr[$x-1][1].$arr[$x-1][2];//Склеиваем символы } return $newstr;//Вертаем строку } function decode($encoded, $key){//расшифровываем $strofsym="qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM=";//Символы, с которых состоит base64-ключ $x=0; while ($x++<= strlen($strofsym)) {//Цикл $tmp = md5(md5($key.$strofsym[$x-1]).$key);//Хеш, который соответствует символу, на который его заменят. $encoded = str_replace($tmp[3].$tmp[6].$tmp[1].$tmp[2], $strofsym[$x-1], $encoded);//Заменяем №3,6,1,2 из хеша на символ } return base64_decode($encoded);//Вертаем расшифрованную строку } //РАСПИСАНИЕ ВЕБИНАРОВ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ ZOOM //Основная функция function zoom_curl($url,$post=array()){ GLOBAL $API; $out = array(); $curl = curl_init(); $option = array( CURLOPT_URL => $API['url'].$url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTPHEADER => array( "authorization: Bearer ".$API['JWTToken'], "content-type: application/json" ), ); if(count($post)){ $option[CURLOPT_CUSTOMREQUEST] = 'POST'; $option[CURLOPT_POSTFIELDS] = json_encode($post); }else{ $option[CURLOPT_CUSTOMREQUEST] = 'GET'; } curl_setopt_array($curl, $option); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { $out['err']=1; $out['msg']='cURL Error #:' . $err; } else { $out['err']=0; $out['msg']='cURL Ok'; $out['response']=$response; } return $out; } // function getMeeting($uuid){ $file = '/zoom/'.$uuid.'.json'; if(file_exists($file)){ return json_decode(file_get_contents($file) ,1); }else{ return array(); } } function zoom_meetingList($user){//Просмотр мероприятий $out = array(); $out['err']=1; $url = 'users/'.$user['id'].'/meetings'; $rez = zoom_curl($url); /* Array ( [err] => 0 [msg] => cURL Ok [response] => { "page_size":30, "total_records":2, "next_page_token":"", "meetings":[ { "uuid":"+G+izsejS26d7QmpzpbWqA==", "id":76902907580, "host_id":"MgQ_chc0Sx2aGLK2eq-_-w", "topic":"первое мероприятие 1", "type":2, "start_time":"2020-09-30T13:30:00Z", "duration":40, "timezone":"Europe/Moscow", "created_at":"2020-09-30T07:13:46Z", "join_url":"https://us04web.zoom.us/j/76902907580?pwd=clUrV0NBcmRyd3RFbmUwRTM3WVJqUT09" }, { "uuid":"Uc0NFgdTSle3zZ4OgM4BOw==", "id":71451895771, "host_id":"MgQ_chc0Sx2aGLK2eq-_-w", "topic":"первое мероприятие 1", "type":2, "start_time":"2020-09-30T13:30:00Z", "duration":40, "timezone":"Europe/Moscow", "created_at":"2020-09-30T07:13:18Z", "join_url":"https://us04web.zoom.us/j/71451895771?pwd=NThieHAyRG9CcmR1NTBVZkFheDhjUT09" }] } ) */ if($rez['err']==0){ $out['err']=0; $json = json_decode($rez['response'],1); $out['meetings'] = $json['meetings']; } return $out; } function zoom_getUsers(){//Получение списка пользователей $users = array(); $url = 'users?status=active&page_size=30&page_number=1'; $rez = zoom_curl($url); if($rez['err']==0){ $json = json_decode($rez['response'],1); $users = $json['users']; } return $users; /*echo '
'.print_r($rez,1).'
'; Array( [err] => 0 [msg] => cURL Ok [response] => { "page_count":1, "page_number":1, "page_size":30, "total_records":1, "users":[ { "id":"MgQ_chc0Sx2aGLK2eq-_-w", "first_name":"Alexander", "last_name":"Yakov", "email":"alneo.ru@yandex.ru", "type":1, "pmi":5136867612, "timezone":"Europe/Moscow", "verified":1, "dept":"", "created_at":"2020-04-14T07:35:53Z", "last_login_time":"2020-09-30T05:35:42Z", "last_client_version":"5.0.24050.0510(android)", "language":"ru-RU", "phone_number":"", "status":"active" } ] } ) */ } //генератор пароленй function gen_password($length = 8){ $password = ''; $arr = array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', '*', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', '!', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' ); for ($i = 0; $i < $length; $i++) { $password .= $arr[random_int(0, count($arr) - 1)]; } return $password; } //echo gen_password(8); ?>