0 && $fak_active == 1){ $rowStudent = mysqli_fetch_array($sqlStudent); // Preverjanje ce je student izpolnil vse ankete PRED in se lahko prijavi na izpit if($ank_type == 'anketa_pred'){ foreach ($predmeti AS $predmet) { if($predmet != ''){ // Zlepimo predmet in nacin studija (redni/izredni) $predmet_izvedba = $predmet.'_'.$rowStudent['nacin_studija']; $sql = sisplet_query("SELECT * FROM eval_data_anketaPred WHERE student='$student' AND predmet='$predmet_izvedba'"); if (mysqli_num_rows($sql) == 0) { $sqlp = sisplet_query("SELECT DISTINCT idp, predmet, praksa FROM eval_izvajalec WHERE idp='$predmet' AND nacin_studija='".$rowStudent['nacin_studija']."' AND fakulteta='".$fakulteta."'"); if(mysqli_num_rows($sqlp) > 0){ $rowp = mysqli_fetch_array($sqlp); // Ce je praksa 1 ali 2 potem preskocimo anketo PRED, ker nimamo kontaktnih ur if($rowp['praksa'] == '1' || $rowp['praksa'] == '2'){ $return['predmeti_reseni'] .= $predmet.'x'; } else{ if ($return['msg'] != '') $return['msg'] .= ', '; $rowp['predmet'] = str_replace("ccc", "č", str_replace("sss", "š", str_replace("zzz", "ž", str_replace("CCC", "Č", str_replace("SSS", "Š", str_replace("ZZZ", "Ž", str_replace("cc_cc", "ć", $rowp['predmet'])))) ) ) ); $return['msg'] .= ''.$rowp['predmet'].''; // Zabelezimo vse predmete za katere se ni resil ankete $return['predmeti_nereseni'] .= $predmet.'x'; $return['prijava'] = false; } } // Ce slucajno nimamo predmeta v nasi bazi ga oznacimo kot da ga je ze resil (ker drugace bi reseval prazno anketo) else{ $return['predmeti_reseni'] .= $predmet.'x'; } } else{ // Zabelezimo vse predmete za katere je ze resil anketo $return['predmeti_reseni'] .= $predmet.'x'; } } } // Pobrisemo odvecen zadnji separator if(substr($return['predmeti_reseni'], -1) == 'x') $return['predmeti_reseni'] = substr($return['predmeti_reseni'], 0, -1); if(substr($return['predmeti_reseni'], -1) == 'x') $return['predmeti_nereseni'] = substr($return['predmeti_nereseni'], 0, -1); if ($return['msg'] != '') $return['msg'] = 'Pred prijavo morate izpolniti še ankete po zaključku predavanj za naslednje predmete: '. $return['msg'].''; } // Preverjanje ce je student izpolnil vse ankete PO in se lahko prijavi na izpit/visji letnik? elseif($ank_type == 'anketa_po'){ foreach ($predmeti AS $predmet) { if($predmet != ''){ // Zlepimo predmet in nacin studija (redni/izredni) $predmet_izvedba = $predmet.'_'.$rowStudent['nacin_studija']; $sql = sisplet_query("SELECT * FROM eval_data_anketaPo WHERE student='$student' AND predmet='$predmet_izvedba'"); if (mysqli_num_rows($sql) == 0) { $sqlp = sisplet_query("SELECT DISTINCT idp, predmet FROM eval_izvajalec WHERE idp='$predmet' AND nacin_studija='".$rowStudent['nacin_studija']."' AND fakulteta='".$fakulteta."'"); if(mysqli_num_rows($sqlp) > 0){ $rowp = mysqli_fetch_array($sqlp); if ($return['msg'] != '') $return['msg'] .= ', '; $rowp['predmet'] = str_replace("ccc", "č", str_replace("sss", "š", str_replace("zzz", "ž", str_replace("CCC", "Č", str_replace("SSS", "Š", str_replace("ZZZ", "Ž", str_replace("cc_cc", "ć", $rowp['predmet'])))) ) ) ); $return['msg'] .= ''.$rowp['predmet'].''; // Zabelezimo vse predmete za katere se ni resil ankete $return['predmeti_nereseni'] .= $predmet.'x'; $return['prijava'] = false; } // Ce slucajno nimamo predmeta v nasi bazi ga oznacimo kot da ga je ze resil (ker drugace bi reseval prazno anketo) else{ $return['predmeti_reseni'] .= $predmet.'x'; } } else{ // Zabelezimo vse predmete za katere je ze resil anketo $return['predmeti_reseni'] .= $predmet.'x'; } } } // Pobrisemo odvecen zadnji separator if(substr($return['predmeti_reseni'], -1) == 'x') $return['predmeti_reseni'] = substr($return['predmeti_reseni'], 0, -1); if(substr($return['predmeti_reseni'], -1) == 'x') $return['predmeti_nereseni'] = substr($return['predmeti_nereseni'], 0, -1); if ($return['msg'] != '') $return['msg'] = 'Pred prijavo morate izpolniti še ankete po opravljanju izpita za naslednje predmete: '. $return['msg'].''; } // Preverjanje ce je student izpolnil SPLOSNO ANKETO in se lahko prijavi v visji letnik elseif($ank_type == 'anketa_splosna'){ // Ce anketa ni aktivna, se vedno vraca true da se lahko prijavlja $fak_anketa_splosna = self::getFaksData($fakulteta, $ank_type); $sqlA = sisplet_query("SELECT id, active FROM srv_anketa WHERE id='$fak_anketa_splosna'"); $rowA = mysqli_fetch_array($sqlA); if($rowA['active'] == '1'){ // Spremenjeno, ker se studentka vpisana na 2 fakulteti hkrati ni mogla prijaviti, ko je na eni izpolnila splosno anketo, na drugi pa se ne //$sql2 = sisplet_query("SELECT * FROM eval_data_splosna WHERE student='$student' AND ank_id='$fak_anketa_splosna'"); $sql2 = sisplet_query("SELECT * FROM eval_data_splosna WHERE student='$student'"); // Po novem za fdv vse anketiramo in ne preverjamo vzorca if (mysqli_num_rows($sql2) == 0 && (self::check_vzorec($student) || $fakulteta == '3000021')) { //if (mysqli_num_rows($sql2) == 0 && self::check_vzorec($student)) { $return['msg'] = 'Pred vnosom vpisnega lista morate izpolniti še anketo o splošnem zadovoljstvu s fakulteto.'; $return['prijava'] = false; } } } // Preverjanje ce je student izpolnil PODIPLOMSKO ANKETO in se lahko prijavi v visji letnik elseif($ank_type == 'anketa_podipl'){ // Ce anketa ni aktivna, se vedno vraca true da se lahko prijavlja $fak_anketa_podipl = self::getFaksData($fakulteta, $ank_type); $sqlA = sisplet_query("SELECT id, active FROM srv_anketa WHERE id='$fak_anketa_podipl'"); $rowA = mysqli_fetch_array($sqlA); if($rowA['active'] == '1'){ // Podiplomska anketa if($rowStudent['letnik'] == '1'){ // Preverimo ce je podiplomski student ze odgovarjal na splosno podiplomsko anketo $sql2 = sisplet_query("SELECT * FROM eval_data_podipl WHERE student='$student'"); if (mysqli_num_rows($sql2) == 0){ $return['msg'] = 'Pred vnosom vpisnega lista morate izpolniti še podiplomsko anketo.'; $return['prijava'] = false; } } // Podiplomska anketa 2 elseif($rowStudent['letnik'] == '2'){ // Preverimo ce je podiplomski student ze odgovarjal na splosno podiplomsko anketo 2 $sql2 = sisplet_query("SELECT * FROM eval_data_podipl2 WHERE student='$student'"); if (mysqli_num_rows($sql2) == 0){ $return['msg'] = 'Pred vnosom vpisnega lista morate izpolniti še podiplomsko anketo 2.'; $return['prijava'] = false; } } // Podiplomska anketa 3 elseif($rowStudent['letnik'] == '3'){ // Preverimo ce je podiplomski student ze odgovarjal na splosno podiplomsko anketo 3 $sql2 = sisplet_query("SELECT * FROM eval_data_podipl3 WHERE student='$student'"); if (mysqli_num_rows($sql2) == 0){ $return['msg'] = 'Pred vnosom vpisnega lista morate izpolniti še podiplomsko anketo 3.'; $return['prijava'] = false; } } } } } return $return; } // Preverimo, ce student pride v vzorec za izvedbo splosne ankete private static function check_vzorec($student){ $sql = sisplet_query("SELECT pre.id_student as student, pre.letnik as letnik, pro.st_letnik as st_letnik FROM eval_student pre, eval_program pro WHERE pre.id_student='$student' AND pre.id_program=pro.id AND pre.letnik>'0'"); if(mysqli_num_rows($sql) > 0){ $row = mysqli_fetch_array($sql); // Zadnja 2 znaka studenteve sifre (md5) spremenimo iz hex v dec $value = hexdec(substr($row['student'], -2)); $value = (int)$value / 255 * 100; // Zracunamo interval v katerega pade student glede na letnik in stevilo letnikov (ce je 1. letnik je med 0 in 25, 2. je med 25 in 50...) $min = 100 / (int)$row['st_letnik'] * ((int)$row['letnik']-1); $max = 100 / (int)$row['st_letnik'] * (int)$row['letnik']; // Ce gre za 1. letnik vzamemo if($row['letnik'] == 1 && $value <= $max) return true; // Ce gre za zadnji letnik elseif($row['letnik'] == $row['st_letnik'] && $value > $min) return true; // Ce gre za vmesni letnik elseif($value > $min && $value <= $max) return true; } return false; } // Izvedba preusmeritve studenta na ustrezno anketo public static function studentRedirect($ank_type){ // Drugace browser cachira in ne prikaze pravilno ce se takoj vrnemo po koncani header("Cache-Control: no-cache, must-revalidate"); // Dekriptiramo parametre in jih zapisemo nazaj v $_REQUEST $params = array(); $params = self::decryptAES($_REQUEST['params'], $testing=false); $fakulteta = trim($params['fakulteta']); $student = trim($params['student']); $student = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $student); if($ank_type == 'anketa_pred' || $ank_type == 'anketa_po') $predmet = (int) $params['predmet']; $ank_id = 0; // Dobimo podatke o studentu in ce je ze resil anketo $finished = false; if($ank_type == 'anketa_pred' || $ank_type == 'anketa_po' || $ank_type == 'anketa_splosna') $sqlStudent = sisplet_query("SELECT * FROM eval_student WHERE id_student='$student'"); else $sqlStudent = sisplet_query("SELECT * FROM eval_student_podipl WHERE id_student='$student' AND (letnik='1' OR letnik='2' OR letnik='3')"); if(mysqli_num_rows($sqlStudent) > 0){ $rowStudent = mysqli_fetch_array($sqlStudent); // Ce imamo slucajno 2 vnosa za istega studenta - je vpisan hkrati na 2 programa if(mysqli_num_rows($sqlStudent) > 1){ $rowStudent2 = mysqli_fetch_array($sqlStudent); } // Zlepimo predmet in nacin studija (redni/izredni) $predmet_izvedba = $predmet.'_'.$rowStudent['nacin_studija']; // Pogledamo ce imamo slucajno podiplomsko anketo 2 if($ank_type == 'anketa_podipl' && $rowStudent['letnik'] == '2'){ $ank_type = 'anketa_podipl2'; } // Pogledamo ce imamo slucajno podiplomsko anketo 3 if($ank_type == 'anketa_podipl' && $rowStudent['letnik'] == '3'){ $ank_type = 'anketa_podipl3'; } // Dobimo id ustrezne ankete $ank_id = self::getFaksData($fakulteta, $ank_type); // Dobimo podatke o resenosti ankete if($ank_type == 'anketa_pred') $sql = sisplet_query("SELECT * FROM eval_data_anketaPred WHERE predmet='$predmet_izvedba' AND student='$student' AND ank_id='$ank_id'"); elseif($ank_type == 'anketa_po') $sql = sisplet_query("SELECT * FROM eval_data_anketaPo WHERE predmet='$predmet_izvedba' AND student='$student' AND ank_id='$ank_id'"); elseif($ank_type == 'anketa_splosna') $sql = sisplet_query("SELECT * FROM eval_data_splosna WHERE student='$student' AND ank_id='$ank_id'"); elseif($ank_type == 'anketa_podipl') $sql = sisplet_query("SELECT * FROM eval_data_podipl WHERE student='$student' AND ank_id='$ank_id'"); elseif($ank_type == 'anketa_podipl2') $sql = sisplet_query("SELECT * FROM eval_data_podipl2 WHERE student='$student' AND ank_id='$ank_id'"); elseif($ank_type == 'anketa_podipl3') $sql = sisplet_query("SELECT * FROM eval_data_podipl3 WHERE student='$student' AND ank_id='$ank_id'"); // Ce ze imamo odgovor studenta v bazi ga ne spustimo naprej if(mysqli_num_rows($sql) > 0) $finished = true; } // Ce sploh ne obstaja student v bazi ga tudi ne spustimo naprej else $finished = true; // Ce imamo ze vnos oz. ne obstaja student v bazi, prikazemo obvestilo in ne pustimo redirecta if($finished){ echo '
'."\n"; echo '