anketa pred, 2->anketa po, 3->splosna anketa) var $fakulteta = 0; # fdv->0, fgg->1 var $fakultete; # vse fakultete var $exportSettings = array( 'type' =>1, 'fakulteta' =>-1, 'anketa_pred' =>-1, 'anketa_po' =>-1, 'anketa_splosna' =>-1, 'anketa_podipl' =>-1, 'anketa_podipl2' =>-1, 'anketa_podipl3' =>-1 ); private $_dataFileName = null; # ime obstoječe datoteke na FS. private $_headFileName = null; # ime obstoječe datoteke na FS. private $_HEADERS = array(); # array z header podatki var $importSettings = array( 'type' =>1, 'fakulteta' =>0, 'test' =>'' ); var $importError = ''; # Ce pride do napake pri nalaganju csv datoteke function __construct($anketa=0){ global $mysql_database_name; global $site_url; // Preverjanje ce je na instalaciji vklopljen modul evalvacije (evalvacija je prisotna samo na anketa.uni-lj.si/student) //if(substr($mysql_database_name, 0, 2) != 'ul' || substr($mysql_database_name, -5) != '1kasi'){ if(Common::checkModule('evalvacija') != '1'){ echo 'Not anketa.uni-lj.si!'; exit(); } // Nastavimo vse fakultete $this->setFakultete(); // Ce imamo anketo, smo v status->ul evealvacija if ((int)$anketa > 0){ $this->anketa = $anketa; # polovimo vrsto tabel (aktivne / neaktivne) SurveyInfo :: getInstance()->SurveyInit($this->anketa); $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); // Nastavimo clanico kateri pripada anketa $this->fakulteta = $this->getFakultetaId($anketa); if($this->fakulteta > 0){ // Ugotovimo za kaksen tip evalvacijske ankete gre //$sql1 = sisplet_query("SELECT * FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id='$this->anketa' AND s.gru_id=g.id AND s.sistem='1' AND s.variable='sifstud'"); $sql2 = sisplet_query("SELECT * FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id='$this->anketa' AND s.gru_id=g.id AND s.sistem='1' AND s.variable='sifpredm'"); $sql3 = sisplet_query("SELECT * FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id='$this->anketa' AND s.gru_id=g.id AND s.sistem='1' AND s.variable='sifizv1'"); // Ce imamo sifro studenta zapisujemo //if(mysqli_num_rows($sql1) > 0){ // Ce imamo sifro predmeta gre za anketo za ocenjevanje predmetov if (mysqli_num_rows($sql2) > 0) { $row2 = mysqli_fetch_array($sql2); // Ce imamo sifro izvajalca gre za anketo pred izpiti (eval_data_anketaPred), drugace je anketa po izpitih (eval_data_anketaPo) if(mysqli_num_rows($sql3) > 0) $this->eval_survey_type = 1; else $this->eval_survey_type = 2; } // splosna anketa (ena na studenta, brez predmetov) else $this->eval_survey_type = 3; //} } else{ echo 'Napaka pri določanju članice glede na anketo!'; } } // Ce izvajamo CSV upload if(isset($_GET['s']) && $_GET['s'] == 'upload_csv'){ if(!isset($_POST['import_fakulteta']) || !isset($_POST['import_type'])){ echo 'Napaka! Niso nastavljeni vsi parametri uvoza!'; exit(); } $this->importSettings['fakulteta'] = (isset($_POST['import_fakulteta'])) ? $_POST['import_fakulteta'] : 0; $this->importSettings['type'] = (isset($_POST['import_type'])) ? $_POST['import_type'] : 1; $this->importSettings['test'] = (isset($_POST['import_test'])) ? $_POST['import_test'] : ''; // Upload profesorjev if($this->importSettings['type'] == 1) //$this->uploadProfesorjiNew(); $this->uploadProfesorji(); else $this->uploadCSV(); } // Ce izvajamo CSV upload za emailing if(isset($_GET['s']) && $_GET['s'] == 'upload_emailing_csv'){ $this->uploadEmailingCSV(); } } // Prikazemo statistiko resevanja studentske ankete public function displayStats(){ global $lang; echo '

Ankete potekajo v skladu s Pravilnikom in Priporočili (glej http://ul.1ka.si/).

'; echo '

Anketa PRED se vklopi po dveh tretjinah prvega (december) oziroma drugega (maj) semestra. Ankete PO izpitu so aktivne stalno, prikažejo se ob vpisani oceni. Vse ankete se zaključijo konec semestra (septembra).

'; $sqlIzvajalci = sisplet_query("SELECT COUNT(ime_pedagoga) AS countPedagog, COUNT(DISTINCT(predmet)) as countPredmet FROM eval_izvajalec WHERE fakulteta='".$this->fakulteta."' AND semester_izv='1'"); $sqlIzvajalci2 = sisplet_query("SELECT COUNT(ime_pedagoga) AS countPedagog, COUNT(DISTINCT(predmet)) as countPredmet FROM eval_izvajalec WHERE fakulteta='".$this->fakulteta."'AND semester_izv!='1'"); $rowIzvajalci = mysqli_fetch_array($sqlIzvajalci); $rowIzvajalci2 = mysqli_fetch_array($sqlIzvajalci2); // Anketa PRED if($this->eval_survey_type == 1){ echo '

Anketa PRED izpiti ('.$this->fakultete[$this->fakulteta]['kratica'].')

'; $sqlStudenti = sisplet_query("SELECT COUNT(DISTINCT(s.student)) AS countStudent FROM eval_data_anketaPred s, eval_izvajalec p WHERE s.predmet=p.idp AND p.semester_izv='1' AND p.fakulteta='".$this->fakulteta."'"); $sqlStudenti2 = sisplet_query("SELECT COUNT(DISTINCT(s.student)) AS countStudent FROM eval_data_anketaPred s, eval_izvajalec p WHERE s.predmet=p.idp AND p.semester_izv!='1' AND p.fakulteta='".$this->fakulteta."'"); $rowStudenti = mysqli_fetch_array($sqlStudenti); $rowStudenti2 = mysqli_fetch_array($sqlStudenti2); // Zimski semester echo '

V anketo je bilo v prvem semestru vključenih '.$rowIzvajalci['countPredmet'].' predmetov in '.$rowIzvajalci['countPedagog'].' pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) '.$rowStudenti['countStudent'].' študentov.

'; // Letni semester echo '

V anketo je bilo v drugem semestru vključenih '.$rowIzvajalci2['countPredmet'].' predmetov in '.$rowIzvajalci2['countPedagog'].' pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) '.$rowStudenti2['countStudent'].' študentov.

'; echo '

Odziv na anketo je bil obvezen predpogoj za prijavo na izpit, študenti pa so se lahko pri vsakem predmetu odločili, da ankete tudi ne izpolnijo.

'; } // Anketa PO elseif($this->eval_survey_type == 2){ echo '

Anketa PO izpitih ('.$this->fakultete[$this->fakulteta]['kratica'].')

'; $sqlStudenti = sisplet_query("SELECT COUNT(DISTINCT(s.student)) AS countStudent FROM eval_data_anketaPo s, eval_izvajalec p WHERE s.predmet=p.idp AND p.semester_izv='1' AND p.fakulteta='".$this->fakulteta."'"); $sqlStudenti2 = sisplet_query("SELECT COUNT(DISTINCT(s.student)) AS countStudent FROM eval_data_anketaPo s, eval_izvajalec p WHERE s.predmet=p.idp AND p.semester_izv!='1' AND p.fakulteta='".$this->fakulteta."'"); $rowStudenti = mysqli_fetch_array($sqlStudenti); $rowStudenti2 = mysqli_fetch_array($sqlStudenti2); // Zimski semester echo '

V anketo je bilo v prvem semestru vključenih '.$rowIzvajalci['countPredmet'].' predmetov in '.$rowIzvajalci['countPedagog'].' pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) '.$rowStudenti['countStudent'].' študentov.

'; // Letni semester echo '

V anketo je bilo v drugem semestru vključenih '.$rowIzvajalci2['countPredmet'].' predmetov in '.$rowIzvajalci2['countPedagog'].' pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) '.$rowStudenti2['countStudent'].' študentov.

'; echo '

Študenti so se lahko pri vsakem predmetu odločili, da ankete tudi ne izpolnijo.

'; } // Splosna anketa else{ echo '

Splošna anketa ('.$this->fakultete[$this->fakulteta]['kratica'].')

'; $sqlStudenti = sisplet_query("SELECT COUNT(DISTINCT(student)) AS countStudent FROM eval_data_splosna"); $rowStudenti = mysqli_fetch_array($sqlStudenti); echo '

V anketo je bilo vključenih '.$rowStudenti['countStudent'].' študentov.

'; } } // Prikazemo izpis v pdf (z R-skriptami) public function displayExport(){ global $site_path; global $lang; global $site_url; global $admin_type; global $global_user_id; // Skrit div za popup echo '
'; echo ''; echo '
Izvoz'; echo '

Izberite tip željenega izpisa, fakulteto ter ustrezni anketi ki sta se izvajali pred in po izpitu:

'; echo '
'; // Nastavimo tip izpisa echo '

'; echo 'Izpis po: '; echo 'exportSettings['type']==1 ? ' checked="checked"':'').'> '; echo ' exportSettings['type']==2 ? ' checked="checked"':'').'> '; echo ' exportSettings['type']==3 ? ' checked="checked"':'').'> '; echo '

'; // Nastavimo fakulteto echo '

'; echo 'Fakulteta: '; echo '

'; echo '
'; // Gumb za genereranje izpisov //echo '
'; echo ''; // Gumb za genereranje CSV-jev (za testiranje) echo ''; echo '
'; echo '
'; // Seznam datotek, ki so na voljo za download echo '
'; echo 'Datoteke:'; $sqlPdf = sisplet_query("SELECT * FROM eval_pdf_reports WHERE usr_id='".$global_user_id."' ORDER BY fak_id ASC, type ASC"); if(mysqli_num_rows($sqlPdf) > 0){ echo '
    '; $pdfFolder = $site_path . PDF_FOLDER.'/'; $files = glob($pdfFolder.'*'); while($rowPdf = mysqli_fetch_array($sqlPdf)){ echo '
  • '; echo 'Čas generiranja: '.date('d.m.Y H:i:s', strtotime($rowPdf['date'])).'
    '; echo ''.$rowPdf['filename'].''; // Gumb za nalaganje datotek na GC echo '
    '; echo 'Naloži na GC'; echo '
    '; echo '
  • '; } echo '
'; } else echo '

Trenutno še nimate pripravljenih nobenih izpisov!

'; // Admini zacasno vidijo vsa porocila (tudi od drugih uporabnikov) if($admin_type == 0){ $sqlPdf = sisplet_query("SELECT e.filename AS filename, e.date AS date, u.name AS name, u.surname AS surname, u.email AS email FROM eval_pdf_reports e, users u WHERE e.usr_id!='".$global_user_id."' AND u.id=e.usr_id ORDER BY e.fak_id ASC, e.type ASC"); if(mysqli_num_rows($sqlPdf) > 0){ echo '
    '; $pdfFolder = $site_path . PDF_FOLDER.'/'; $files = glob($pdfFolder.'*'); while($rowPdf = mysqli_fetch_array($sqlPdf)){ echo '
  • '; echo 'Avtor: '.$rowPdf['name'].' '.$rowPdf['surname'].' ('.$rowPdf['email'].')
    '; echo 'Čas generiranja: '.date('d.m.Y H:i:s', strtotime($rowPdf['date'])).'
    '; echo ''.$rowPdf['filename'].''; echo '
  • '; } echo '
'; } } // Gumb za brisanje folderja "pdf" z koncnimi datotekami izpisov - SAMO ADMIN ZARADI TESTIRANJA if($admin_type == 0){ echo ''; echo '
'; } echo '
'; echo '
'; } // Izvedemo pripravo exportov (pripravimo csv datoteke, klicemo r skripto) public function executeExport(){ global $site_path; global $lang; global $admin_type; $start_time = microtime(true);; // Pripravimo zacasne csv datoteke $this->prepareExportCSV(); // Skripta ki jo klicemo (glede na parameter type) $script = $site_path . SCRIPT_FOLDER . '/'; if($this->exportSettings['type'] == 2) $script .= 'koda-programi.r'; elseif($this->exportSettings['type'] == 3) $script .= 'koda-fakulteta.r'; else $script .= 'koda-izvajalec_predmet.r'; // Parametri - fakulteta $params = $this->exportSettings['fakulteta']; // Pozenemo skripto $out = exec('Rscript '.$script.' '.$params.' 2>&1', $output, $return_var); //$out = shell_exec('Rscript '.$script.' '.$params); // Testiranje - izpis errorjev if($admin_type == 0){ echo '
'; echo 'Rscript '.$script.' '.$params; //echo '
'.$out.'
'; var_dump($output); //print_r($output); echo '
'; } // Pobrisemo zacasne csv datoteke $this->deleteExportCSV(); // Zazipamo in pocistimo rezultate $this->finishExport(); $end_time = microtime(true);; if($admin_type == 0) echo 'Čas izvajanja: '.($end_time - $start_time).'s
'; } // Pobrisemo zacasne csv datoteke private function deleteExportCSV(){ global $site_path; $temp_folder = $site_path . TEMP_FOLDER.'/'; if (file_exists($temp_folder.'/sifrant_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv')) { unlink($temp_folder.'/sifrant_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv'); } if (file_exists($temp_folder.'/studenti_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv')) { unlink($temp_folder.'/studenti_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv'); } if (file_exists($temp_folder.'/programi_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv')) { unlink($temp_folder.'/programi_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv'); } if (file_exists($temp_folder.'/anketa_pred_izp_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv')) { unlink($temp_folder.'/anketa_pred_izp_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv'); } if (file_exists($temp_folder.'/anketa_po_izpitu_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv')) { unlink($temp_folder.'/anketa_po_izpitu_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv'); } } // Pripravimo zacasne csv datoteke private function prepareExportCSV(){ global $site_path; global $lang; // Inicializiramo class za datoteko s podatki /*$SDF = SurveyDataFile::get_instance(); // Nastavimo ustrezno anketo za generiranje datoteke s podatki if($this->exportSettings['anketa_pred'] > 0){ $SDF->init($this->exportSettings['anketa_pred']); } elseif($this->exportSettings['anketa_po'] > 0){ $SDF->init($this->exportSettings['anketa_po']); } elseif($this->exportSettings['anketa_splosna'] > 0){ $SDF->init($this->exportSettings['anketa_splosna']); } elseif($this->exportSettings['anketa_podipl'] > 0){ $SDF->init($this->exportSettings['anketa_podipl']); } elseif($this->exportSettings['anketa_podipl2'] > 0){ $SDF->init($this->exportSettings['anketa_podipl2']); } // Pripravimo ustrezno datoteko s podatki $SDF->prepareFiles(); $this->_headFileName = $SDF->getHeaderFileName(); $this->_dataFileName = $SDF->getDataFileName();*/ // PRVI CSV - profesorji s predmeti $this->prepareCSVProfesorji(); // DRUGI CSV - studenti $this->prepareCSVStudenti(); // DRUGI CSV - programi $this->prepareCSVProgrami(); // TRETJI CSV - reseni podatki v anketi PRED $this->prepareCSVData($this->exportSettings['anketa_pred'], 0); // CETRTI CSV - reseni podatki v anketi PO $this->prepareCSVData($this->exportSettings['anketa_po'], 1); // PETI CSV - reseni podatki v anketi splosna $this->prepareCSVData($this->exportSettings['anketa_splosna'], 2); // SESTI CSV - reseni podatki v anketi podiplomska $this->prepareCSVData($this->exportSettings['anketa_podipl'], 3); // SEDMI CSV - reseni podatki v anketi podiplomska 2 $this->prepareCSVData($this->exportSettings['anketa_podipl2'], 4); // OSMI CSV - reseni podatki v anketi podiplomska 3 $this->prepareCSVData($this->exportSettings['anketa_podipl3'], 5); } // Pripravimo CSV s sifranti - profesorji s predmeti private function prepareCSVProfesorji(){ global $site_path; global $lang; $temp_folder = $site_path . TEMP_FOLDER.'/'; $file = fopen($temp_folder.'sifrant_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv','w'); header('Content-Encoding: windows-1250'); header('Content-Type: application/csv charset=windows-1250'); // Prva vrstica $header = array('IDP', 'PREDMET', 'IDPEDAGOGA', 'NAZIV PEDAGOGA', 'NACIN_STUDIJA', 'SEMESTER_IZV', 'ST_KT', 'ST_STUD', 'STOPNJA', 'NOSILEC', 'PRAKSA', 'IZVEDBA'); fputcsv($file, $header, ';'); $sql = sisplet_query("SELECT idp, predmet, idpedagoga, ime_pedagoga, nacin_studija, semester_izv, st_kt, st_stud, stopnja, nosilec, praksa FROM eval_izvajalec WHERE fakulteta='".$this->exportSettings['fakulteta']."'"); // Loop po vrsticah while($row = mysqli_fetch_row($sql)){ // Popravimo stare čšž-je (ki so bili zamenjani z ccc, sss...) $row = str_replace(array("ccc", "CCC", "zzz", "ZZZ", "sss", "SSS", "cc_cc"), array("č","Č","ž","Ž","š","Š","ć"), $row); // Spremenimo encoding v windows-1250 foreach(array_keys($row) as $key){ $row[$key] = iconv("UTF-8","Windows-1250//TRANSLIT", $row[$key]); } // Dodamo stolpec izvedba (ker zna drugace R komplicirat:) if($row[5] == 'prvi semester' || $row[5] == 'zimski'|| $row[5] == '1') $row[] = '1 Z'; elseif($row[5] == 'drugi semester' || $row[5] == 'poletni' || $row[5] == '2') $row[] = '1 P'; else $row[] = '1 C'; // ID-ju predmeta pripnemo se nacin studija (redni/izredni), da se ujema s podatki $row[0] = $row[0].'_'.$row[4]; fputcsv($file, $row, ';'); } fclose($file); } // Pripravimo CSV s sifranti - studenti private function prepareCSVStudenti(){ global $site_path; global $lang; $temp_folder = $site_path . TEMP_FOLDER.'/'; $file = fopen($temp_folder.'studenti_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv','w'); header('Content-Encoding: windows-1250'); header('Content-Type: application/csv charset=windows-1250'); // Prva vrstica $header = array('ID_studenta_(MD5)', 'ID_vrsta_studija', 'Letnik', 'Nacin_studija', 'Fakulteta'); fputcsv($file, $header, ';'); // Po novem ne grupiramo po studentih, ker imajo lahko 2 programa /*$sql = sisplet_query("SELECT id_student, id_program, letnik, nacin_studija, fakulteta FROM eval_student WHERE fakulteta='".$this->exportSettings['fakulteta']."' GROUP BY id_student");*/ $sql = sisplet_query("SELECT id_student, id_program, letnik, nacin_studija, fakulteta FROM eval_student WHERE fakulteta='".$this->exportSettings['fakulteta']."'"); // Loop po vrsticah while($row = mysqli_fetch_row($sql)){ // Popravimo text letnik if($row[2] != 0) $row[2] = $row[2].'. letnik'; else $row[2] = 'dodatno leto'; // Popravimo stare čšž-je (ki so bili zamenjani z ccc, sss...) //$row = str_replace(array("ccc", "CCC", "zzz", "ZZZ", "sss", "SSS", "cc_cc"), array("č","Č","ž","Ž","š","Š","ć"), $row); // Spremenimo encoding v windows-1250 /*foreach(array_keys($row) as $key){ $row[$key] = iconv("UTF-8","Windows-1250//TRANSLIT", $row[$key]); }*/ fputcsv($file, $row, ';'); } fclose($file); } // Pripravimo CSV s programi private function prepareCSVProgrami(){ global $site_path; global $lang; $temp_folder = $site_path . TEMP_FOLDER.'/'; $file = fopen($temp_folder.'programi_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv','w'); header('Content-Encoding: windows-1250'); header('Content-Type: application/csv charset=windows-1250'); // Prva vrstica $header = array('ID', 'Naziv', 'St_letnikov', 'Stopnja', 'Vrsta'); fputcsv($file, $header, ';'); $sql = sisplet_query("SELECT id, program, st_letnik, stopnja, vrsta FROM eval_program"); // Loop po vrsticah while($row = mysqli_fetch_row($sql)){ // Popravimo stare čšž-je (ki so bili zamenjani z ccc, sss...) $row = str_replace(array("ccc", "CCC", "zzz", "ZZZ", "sss", "SSS", "cc_cc"), array("č","Č","ž","Ž","š","Š","ć"), $row); // Spremenimo encoding v windows-1250 foreach(array_keys($row) as $key){ $row[$key] = iconv("UTF-8","Windows-1250//TRANSLIT", $row[$key]); } fputcsv($file, $row, ';'); } fclose($file); } // Pripravimo CSV s podatki resene ankete ($type: 0->anketa_pred, 1->anketa_po, 2->splosna, 3->podipl, 4->podipl2, 5->podipl3) private function prepareCSVData($anketa, $type=0){ global $site_path; $temp_folder = $site_path . TEMP_FOLDER.'/'; // Poskrbimo za datoteko s podatki $SDF = SurveyDataFile::get_instance($force_new=true); $SDF->init($anketa); $SDF->prepareFiles(); $this->_headFileName = $SDF->getHeaderFileName(); $this->_dataFileName = $SDF->getDataFileName(); $this->getHeaderData(); // Zaenkrat dopuscamo samo status 6 in brez lurkerjev - PO NOVEM SO LAHKO LURKERJI $status_filter = '('.STATUS_FIELD.'==6)'; $start_sequence = 2; $end_sequence = $this->_HEADERS['_settings']['metaSequence']-1; $field_delimit = ';'; // Filtriramo podatke po statusu in jih zapisemo v temp folder if (IS_WINDOWS) { $out = shell_exec('awk -F"|" "BEGIN {{OFS=\",\"} {ORS=\"\n\"}} '.$status_filter.'" '.$this->_dataFileName.' | cut -d "|" -f '.$start_sequence.'-'.$end_sequence.' >> '.$temp_folder.'/temp_data_'.$anketa.'.dat'); } else { $out = shell_exec('awk -F"|" \'BEGIN {{OFS=","} {ORS="\n"}} '.$status_filter.'\' '.$this->_dataFileName.' | cut -d \'|\' -f '.$start_sequence.'-'.$end_sequence.' >> '.$temp_folder.'/temp_data_'.$anketa.'.dat'); } // Ustvarimo koncni CSV if ($fd = fopen($temp_folder.'/temp_data_'.$anketa.'.dat', "r")) { // Anketa PRED if($type == 0) $name = 'anketa_pred_izp'; elseif($type == 1) $name = 'anketa_po_izpitu'; elseif($type == 2) $name = 'anketa_splosna'; elseif($type == 3) $name = 'anketa_podipl'; elseif($type == 4) $name = 'anketa_podipl2'; elseif($type == 5) $name = 'anketa_podipl3'; $fd2 = fopen($temp_folder.'/'.$name.'_'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.csv', "w"); header('Content-Encoding: windows-1250'); header('Content-Type: application/csv charset=windows-1250'); # naredimo header row //$sifstud_cnt = 0; $sifpredm_cnt = 0; $idprog_cnt = 0; $i = 0; foreach ($this->_HEADERS AS $spid => $spremenljivka) { if (count($spremenljivka['grids']) > 0) { foreach ($spremenljivka['grids'] AS $gid => $grid) { foreach ($grid['variables'] AS $vid => $variable ){ if ($spremenljivka['tip'] !== 'sm' && !($variable['variable'] == 'uid' && $variable['naslov'] == 'User ID')){ $output1 .= strip_tags($variable['variable']).$field_delimit; $output2 .= '"'.strip_tags($variable['naslov']).'"'.$field_delimit; // Zabelezimo katero polje je sifstud /*if($variable['naslov'] == 'sifstud') $sifstud_cnt = $i;*/ // Zabelezimo katero polje je sifpredm if($variable['naslov'] == 'sifpredm') $sifpredm_cnt = $i; // Zabelezimo katero polje je idprog - PO NOVEM SO LAHKO PODATKI TUDI BREZ PROGRAMA /*if($variable['naslov'] == 'idprog') $idprog_cnt = $i;*/ $i++; } } } } } // Spremenimo encoding v windows-1250 //$output1 = iconv("UTF-8","Windows-1250//TRANSLIT", $output1); //$output2 = iconv("UTF-8","Windows-1250//TRANSLIT", $output2); fwrite($fd2, $output1."\r\n"); fwrite($fd2, $output2."\r\n"); $lines = array(); while ($line = fgets($fd)) { // Preverimo ce imamo ok sifro studenta, sifro predmeta - ce ni, ga pocistimo //$sifstud = ''; $sifpredm = ''; //$idprog = ''; if(/*$sifstud_cnt > 0 &&*/ $sifpredm_cnt > 0 ){ $temp = array(); $temp = explode('|', $line); //$sifstud = $temp[$sifstud_cnt]; $sifpredm = $temp[$sifpredm_cnt]; //$idprog = $temp[$idprog_cnt]; } // Vrstico zapisemo samo ce je sifstud res md5 vrednost, sifpredm > 0 - in preverimo da nimamo duplikata // Ce gre za splosno oz. podiplomsko ne preverjamo sifre predmeta //if(strlen($sifstud) == 32 && $sifpredm > 0 && /*$idprog > 0 &&*/ !in_array($sifstud.'_'.$sifpredm, $lines)){ if($sifpredm > 0 || $type > 1){ //fwrite($fd2, '="'); //$line = str_replace(array("\r","\n","|"), array("","",'";="'), $line); $line = '"' . str_replace(array("\r","\n","\"","|"), array("","","",'";"'), $line) . '"'; // Spremenimo encoding v windows-1250 $line = iconv("UTF-8","Windows-1250//TRANSLIT", $line); //$line = str_replace(array("č","š","ž","Č","Š","Ž"), array("\v{c}","\v{s}","\v{z}","\v{C}","\v{S}","\v{Z}"), $line); fwrite($fd2, $line); //fwrite($fd2, '"'); fwrite($fd2, "\r\n"); } } fclose($fd2); } fclose($fd); // Na koncu pobrisemo temp datoteke if (file_exists($temp_folder.'/temp_data_'.$anketa.'.dat')) { unlink($temp_folder.'/temp_data_'.$anketa.'.dat'); } } // Rezultate (pdf-je) zapakiramo v zip, prenesemo v direktorij "pdf" in pocistimo za sabo datoteke private function finishExport(){ global $site_path; global $lang; global $global_user_id; $pdfFolder = $site_path . PDF_FOLDER.'/'; $resultsFolder = $site_path . RESULTS_FOLDER.'/'; // Najprej zgradimo ime zip-a iz fakultete, tipa izvoza in timestamp-a $fakulteta = $this->fakultete[$this->exportSettings['fakulteta']]['kratica']; if($this->exportSettings['type'] == 2) $type = 'program'; elseif($this->exportSettings['type'] == 3) $type = 'fakulteta'; else $type = 'predmet'; $time = date("d-m-Y_H-i-s"); $zipName = $fakulteta.'_'.$type.'_'.$global_user_id.'_'.$time.'.zip'; $zip = new ZipArchive; if ($zip->open($pdfFolder.$zipName, ZIPARCHIVE::CREATE) !== TRUE) die ("Could not open archive"); if($handle = opendir($resultsFolder)){ // Dodamo vse pdf-je s fakulteto v imenu while(false !== ($entry = readdir($handle))){ if(pathinfo($entry, PATHINFO_EXTENSION) == 'pdf' && strpos(strtolower($entry), strtolower($fakulteta)) !== false){ $zip->addFile($resultsFolder.$entry, $entry); } } closedir($handle); } $zip->close(); // Zapisemo se vnos v bazo (ce je bil zip uspesno ustvarjen) if(is_file($pdfFolder.$zipName)){ $sql = sisplet_query("INSERT INTO eval_pdf_reports (usr_id, filename, date, type, ank_pred_id, ank_po_id, fak_id) VALUES ('".$global_user_id."', '".$zipName."', NOW(), '".$this->exportSettings['type']."', '".$this->exportSettings['anketa_pred']."', '".$this->exportSettings['anketa_po']."', '".$this->exportSettings['fakulteta']."')"); } // Na koncu vse pobrisemo // Pobrisemo vse iz "results" folderja $files = glob($resultsFolder.'*'); foreach($files as $file){ if(is_file($file) && strpos(strtolower(basename($file)), strtolower($fakulteta)) !== false){ unlink($file); //echo 'delete '.basename($file).'
'; } } // Pobrisemo vse iz "results/part-izvajalec-slike" folderja $files = glob($resultsFolder.'part-izvajalec-slike/*'); foreach($files as $file){ if(is_file($file) && strpos(strtolower(basename($file)), strtolower($fakulteta)) !== false){ unlink($file); //echo 'delete '.basename($file).'
'; } } // Pobrisemo vse iz "results/part-predmet-slike" folderja $files = glob($resultsFolder.'part-predmet-slike/*'); foreach($files as $file){ if(is_file($file) && strpos(strtolower(basename($file)), strtolower($fakulteta)) !== false){ unlink($file); //echo 'delete '.basename($file).'
'; } } } // Pripravimo csv izvoze za testiranje private function testExport(){ global $site_path; global $site_url; // Pripravimo zacasne csv datoteke $this->prepareExportCSV(); // Datoteke zapakiramo v zip $temp_folder = $site_path . TEMP_FOLDER.'/'; // Najprej zgradimo ime zip-a iz fakultete, tipa izvoza in timestamp-a $fakulteta = $this->fakultete[$this->exportSettings['fakulteta']]['kratica']; $zipName = $fakulteta.'_csv.zip'; // Ce ze obstaja pobrisemo zip if(is_file($temp_folder.$zipName)) unlink($temp_folder.$zipName); $zip = new ZipArchive; if ($zip->open($temp_folder.$zipName, ZIPARCHIVE::CREATE) !== TRUE) die ("Could not open archive"); // Dodamo csv-je v zip $csv = 'anketa_po_izpitu_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'anketa_pred_izp_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'anketa_splosna_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'anketa_podipl_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'anketa_podipl2_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'anketa_podipl3_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'programi_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'sifrant_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $csv = 'studenti_'.$fakulteta.'.csv'; $zip->addFile($temp_folder.$csv, $csv); $zip->close(); // Pobrisemo zacasne csv datoteke $this->deleteExportCSV(); // Ce je bil zip uspesno ustvarjen if(is_file($temp_folder.$zipName)){ echo $site_url.'/admin/survey/modules/Evalvacija/temp/'.$zipName; } } // Uvazamo tabelo preko CSV datoteke public function displayImport($showData=false){ global $lang; global $site_url; global $admin_type; global $mysql_database_name; $showData = (isset($_GET['s']) && $_GET['s'] == 'upload_csv') ? true : $showData; $semesterUpdate = (isset($_GET['s']) && $_GET['s'] == 'semester_update') ? true : false; // Procedure za update ob semestru (med tabelama eval_izvajalec in eval_izvajalec2) if($semesterUpdate){ $this->updateSemester(); } else{ // Skrit div za popup echo '
'; echo ''; echo '
Uvoz'; echo '

Posodabljanje ob semestru

'; echo '

Izberite tabelo in fakulteto, za katero želite izvesti uvoz:

'; echo '
'; echo '
'; // Nastavimo tip izpisa echo '

'; echo 'Tabela: '; echo 'importSettings['type']==1 ? ' checked="checked"':'').'> '; echo ' importSettings['type']==2 ? ' checked="checked"':'').'> '; echo ' importSettings['type']==4 ? ' checked="checked"':'').'> '; echo ' importSettings['type']==3 ? ' checked="checked"':'').'> '; echo '

'; // Nastavimo fakulteto echo '

'; echo 'Fakulteta: '; echo '

'; // Nastavimo ce gre za testni uvoz (v testno anketo za izvajalce eval_izvajalec_test) if($this->importSettings['type']==1){ echo '

'; echo 'Uvoz v testno tabelo: '; echo 'importSettings['test']=='' ? ' checked="checked"':'').'> '; echo ' importSettings['test']=='2' ? ' checked="checked"':'').'> '; echo '

'; } // Gumb za genereranje izpisov echo ''; echo '
'; echo '
'; // Izpis trenutne izbrane tabele if($showData){ // KONTROLE ZA X1 if($this->importSettings['type'] == 1){ echo ''; // Št. izvajalcev echo ''; // Frekvence - nacin studija echo ''; // Frekvence - semester izvajanja echo ''; // Frekvence - nosilec echo ''; // Frekvence - stopnja echo ''; // Frekvence - praksa echo ''; echo ''; echo ''; // KT izven mej (1-20) echo ''; // Št. studentov izven mej (<2) echo ''; // Manjkajoci nosilci echo ''; // Podvajanje predmeta in izvajalca echo ''; echo ''; echo ''; // Neujemanje imena predmeta echo ''; // Neujemanje imena pedagoga echo ''; // Neujemanje st. studentov echo ''; // Neujemanje semestra echo ''; // Neujemanje prakse echo ''; // Neujemanje kt echo ''; // Neujemanje stopnje echo ''; echo '
'; $sql = sisplet_query("SELECT DISTINCT(idpedagoga) FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."'"); echo 'Število pedagogov: '.mysqli_num_rows($sql); echo '
'; // Št. predmetov $sql = sisplet_query("SELECT DISTINCT(idp) FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."'"); echo 'Število predmetov: '.mysqli_num_rows($sql); echo '
'; $sql = sisplet_query("SELECT COUNT(*), nacin_studija FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' GROUP BY nacin_studija"); while($row = mysqli_fetch_assoc($sql)){ echo 'Način studija = '.$row['nacin_studija'].': '.$row['COUNT(*)']; echo '
'; } echo '
'; $sql = sisplet_query("SELECT COUNT(*), semester_izv FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' GROUP BY semester_izv"); while($row = mysqli_fetch_assoc($sql)){ echo 'Semester izvajanja = '.$row['semester_izv'].': '.$row['COUNT(*)']; echo '
'; } echo '
'; $sql = sisplet_query("SELECT COUNT(*), nosilec FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' GROUP BY nosilec"); while($row = mysqli_fetch_assoc($sql)){ echo 'Nosilec = '.$row['nosilec'].': '.$row['COUNT(*)']; echo '
'; } echo '
'; $sql = sisplet_query("SELECT COUNT(*), stopnja FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' GROUP BY stopnja"); while($row = mysqli_fetch_assoc($sql)){ echo 'Stopnja = '.$row['stopnja'].': '.$row['COUNT(*)']; echo '
'; } echo '
'; $sql = sisplet_query("SELECT COUNT(*), praksa FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' GROUP BY praksa"); while($row = mysqli_fetch_assoc($sql)){ echo 'Praksa = '.$row['praksa'].': '.$row['COUNT(*)']; echo '
'; } echo '
'; echo '
'; $sql = sisplet_query("SELECT * FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' AND (st_kt<'1' OR st_kt>'20')"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Kreditne točke izven mej (1 - 20): '.$row['st_kt'].' - '.$row['idp']; echo '
'; } } else echo 'Kreditne točke OK.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT * FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' AND st_stud<'2' GROUP BY idp"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Število študentov izven mej (<2): '.$row['st_stud'].' - '.$row['idp']; echo '
'; } } else echo 'Število študentov OK.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND i.nosilec='0' AND NOT EXISTS (SELECT i2.* FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i2.idp=i.idp AND i2.nosilec='1')"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'NIMA NOSILCA! : '.$row['predmet'].' ('.$row['idp'].')'; echo '
'; } } else echo 'Nosilci OK.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT idp, idpedagoga, COUNT(*) FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' GROUP BY idp, idpedagoga HAVING COUNT(*)>1"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Podvojen predmet in izvajalec: '.$row['st_kt'].' - '.$row['predmet'].' ('.$row['idp'].')'; echo '
'; } } else echo 'Ni podvojenih predmetov in izvajalcev.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idp, i2.predmet FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idp=i2.idp AND i.predmet!=i2.predmet)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje imena predmeta: '.$row['idp']; echo '
'; } } else echo 'Ni neujemanj v imenu predmeta.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.idpedagoga, i.ime_pedagoga FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idpedagoga, i2.ime_pedagoga FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idpedagoga=i2.idpedagoga AND i.ime_pedagoga!=i2.ime_pedagoga)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje imena pedagoga: '.$row['idpedagoga']; echo '
'; } } else echo 'Ni neujemanj v imenu pedagoga.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idp, i2.idpedagoga, i2.nacin_studija, i2.st_stud FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idp=i2.idp AND i.nacin_studija=i2.nacin_studija AND i.st_stud!=i2.st_stud)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje števila študentov: '.$row['st_stud']; echo '
'; } } else echo 'Ni neujemanj v številu študentov.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idp, i2.idpedagoga, i2.nacin_studija, i2.semester_izv FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idp=i2.idp AND i.nacin_studija=i2.nacin_studija AND i.semester_izv!=i2.semester_izv)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje semestra izvajanja: '.$row['semester_izv']; echo '
'; } } else echo 'Ni neujemanj semestra izvajanja.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idp, i2.idpedagoga, i2.nacin_studija, i2.praksa FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idp=i2.idp AND i.nacin_studija=i2.nacin_studija AND i.praksa!=i2.praksa)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje prakse: '.$row['praksa']; echo '
'; } } else echo 'Ni neujemanj prakse.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idp, i2.idpedagoga, i2.nacin_studija, i2.st_kt FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idp=i2.idp AND i.nacin_studija=i2.nacin_studija AND i.st_kt!=i2.st_kt)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje kreditnih točk: '.$row['st_kt']; echo '
'; } } else echo 'Ni neujemanj kreditnih točk.'; echo '
'; echo '
'; echo '
'; $sql = sisplet_query("SELECT i.* FROM eval_izvajalec".$this->importSettings['test']." i WHERE i.fakulteta='".$this->importSettings['fakulteta']."' AND EXISTS (SELECT i2.idp, i2.idpedagoga, i2.nacin_studija, i2.stopnja FROM eval_izvajalec".$this->importSettings['test']." i2 WHERE i2.fakulteta='".$this->importSettings['fakulteta']."' AND i.idp=i2.idp AND i.nacin_studija=i2.nacin_studija AND i.stopnja!=i2.stopnja)"); if(mysqli_num_rows($sql) > 0){ while($row = mysqli_fetch_assoc($sql)){ echo 'Neujemanje stopnje: '.$row['stopnja']; echo '
'; } } else echo 'Ni neujemanj stopnje.'; echo '
'; echo '
'; } echo '
'; echo 'Navodila za CSV datoteko:
    '; echo '
  • UTF 8 encoding (če bo ANSI ne bodo delali čšž-ji)!
  • '; echo '
  • Brez naslovne vrstice
  • '; echo '
  • Vsi stolpci se morajo ujemati po vrstnem redu in številu
  • '; echo '
  • Podatki so ločeni s podpičji (razen predmeti s profesorji, ki so ločeni z #)!
  • '; echo '
'; //echo 'Dodaj podatke (CSV - polja ločena z vejico): '; echo 'Dodaj podatke (CSV - polja ločena s ; oz. #): '; if($this->importError != '') echo $this->importError; echo '
'; // Gumb za brisanje tabele - samo admini if($admin_type == 0){ echo '
'; echo ''; echo '
'; echo '

'; } // Tabela s predmeti in izvajalci if($this->importSettings['type'] == 1){ $sql = sisplet_query("SELECT * FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."' ORDER BY idp, idpedagoga ASC"); $sqlH = sisplet_query("SHOW COLUMNS FROM eval_izvajalec".$this->importSettings['test'].""); // Dobimo cas zadnjega updata tabele $sqlTime = sisplet_query("SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='".$mysql_database_name."' AND TABLE_NAME='eval_izvajalec".$this->importSettings['test']."'"); $rowTime = mysqli_fetch_assoc($sqlTime); $updateTime = $rowTime['UPDATE_TIME']; } // Tabela s studenti elseif($this->importSettings['type'] == 2){ $sql = sisplet_query("SELECT * FROM eval_student WHERE fakulteta='".$this->importSettings['fakulteta']."' ORDER BY id_student ASC"); $sqlH = sisplet_query("SHOW COLUMNS FROM eval_student"); // Dobimo cas zadnjega updata tabele $sqlTime = sisplet_query("SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='".$mysql_database_name."' AND TABLE_NAME='eval_student'"); $rowTime = mysqli_fetch_assoc($sqlTime); $updateTime = $rowTime['UPDATE_TIME']; } // Tabela s podiplomskimi studenti elseif($this->importSettings['type'] == 4){ $sql = sisplet_query("SELECT * FROM eval_student_podipl ORDER BY id_student ASC"); $sqlH = sisplet_query("SHOW COLUMNS FROM eval_student_podipl"); // Dobimo cas zadnjega updata tabele $sqlTime = sisplet_query("SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='".$mysql_database_name."' AND TABLE_NAME='eval_student_podipl'"); $rowTime = mysqli_fetch_assoc($sqlTime); $updateTime = $rowTime['UPDATE_TIME']; } // Tabela s programi elseif($this->importSettings['type'] == 3){ $sql = sisplet_query("SELECT * FROM eval_program ORDER BY id ASC"); $sqlH = sisplet_query("SHOW COLUMNS FROM eval_program"); // Dobimo cas zadnjega updata tabele $sqlTime = sisplet_query("SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='".$mysql_database_name."' AND TABLE_NAME='eval_program'"); $rowTime = mysqli_fetch_assoc($sqlTime); $updateTime = $rowTime['UPDATE_TIME']; } // Cas zadnje spremembe na tabeli echo 'Zadnja sprememba: '.date("d.m.Y H:i:s", strtotime($updateTime)).''; // Število vseh v bazi echo '
Število vseh vnosov: '.mysqli_num_rows($sql).''; echo ''; echo ''; while($rowH = mysqli_fetch_assoc($sqlH)){ echo ''; } echo ''; $i=0; while($row = mysqli_fetch_assoc($sql)){ echo ''; foreach($row as $val){ echo ''; } echo ''; // Tabela studentov je drugace prevelika /*if($i > 100 && $this->importSettings['type'] == 2) break;*/ $i++; } echo '
'.$rowH['Field'].'
'.$val.'
'; } echo '
'; echo '
'; } } function uploadCSV(){ global $site_path; $target_file = $site_path.TEMP_FOLDER.'/'.basename($_FILES['import_csv']['name']); if(file_exists($target_file)){ $this->importError = 'Datoteka, ki jo želite naložiti že obstaja!'; return; } if(move_uploaded_file($_FILES['import_csv']['tmp_name'], $target_file)){ //echo 'Datoteka '. basename( $_FILES["fileToUpload"]["name"]). ' je bila uspešno uvožena.'; $file = fopen($target_file, 'r'); while(!feof($file)){ $line = fgetcsv($file, 0, ';'); // Tabela s studenti if($this->importSettings['type'] == 2){ $sql_table = 'eval_student'; } // Tabela s podiplomskimi studenti elseif($this->importSettings['type'] == 4){ $sql_table = 'eval_student_podipl'; } // Tabela s programi elseif($this->importSettings['type'] == 3){ $sql_table = 'eval_program'; } // Preverimo ce se ujema stevilo stolpcev $sqlC = sisplet_query("SHOW COLUMNS FROM ".$sql_table.""); $cols = array(); while($rowC = mysqli_fetch_assoc($sqlC)){ $cols[] = $rowC['Field']; } if(count($line) == count($cols)){ // String z vrednostmi ki jih vstavljamo $values = ''; foreach($line as $val){ $values .= '\''.$val.'\','; } $values = substr($values, 0, -1); // String s stolpci v katere vstavljamo vrednosti $columns = ''; foreach($cols as $val){ $columns .= $val.','; } $columns = substr($columns, 0, -1); // Vstavimo vrstico $sql = sisplet_query("INSERT IGNORE INTO ".$sql_table." (".$columns.") VALUES (".$values.")"); if (!$sql) $this->importError = mysqli_error($GLOBALS['connect_db']); } else{ $this->importError = 'Število stolpcev se ne ujema!'; break; } } fclose($file); // Na koncu pobrisemo datoteko if (file_exists($target_file)) { unlink($target_file); } } else{ $this->importError = 'Prišlo je do napake pri uvažanju.'; } } function uploadProfesorji(){ global $site_path; $target_file = $site_path.TEMP_FOLDER.'/'.basename($_FILES['import_csv']['name']); if(file_exists($target_file)){ $this->importError = 'Datoteka, ki jo želite naložiti že obstaja!'; return; } if(move_uploaded_file($_FILES['import_csv']['tmp_name'], $target_file)){ //echo 'Datoteka '. basename( $_FILES["fileToUpload"]["name"]). ' je bila uspešno uvožena.'; // Za odstranjevanje bom znakov $bom = pack('H*','EFBBBF'); $file = fopen($target_file, 'r'); while(!feof($file)){ $skip = false; $line = fgetcsv($file, $length=0, $delimiter="#"); // String z vrednostmi ki jih vstavljamo $values = ''; $i=0; foreach($line as $val){ // Ce je stevilo studentov 0 ne uvazamo if($i == 8 && $val == '0') $skip = true; // za vsak slucaj odstranimo utf8 bom znake if($i == 0) $val = preg_replace("/^$bom/", '', $val); $values .= '\''.$val.'\','; $i++; } $values = substr($values, 0, -1); // Se spremenimo encoding zaradi čšž-jev $values = iconv(mb_detect_encoding($values, mb_detect_order(), true), "UTF-8", $values); // Vstavimo vrstico - ce ni st_stud 0 if(!$skip){ $sql = sisplet_query("INSERT IGNORE INTO eval_izvajalec".$this->importSettings['test']." (fakulteta, idp, predmet, idpedagoga, ime_pedagoga, nacin_studija, semester_izv, st_kt, st_stud, nosilec, stopnja, praksa) VALUES (".$values.") ON DUPLICATE KEY UPDATE st_stud = GREATEST(st_stud, VALUES(nosilec)), nosilec = GREATEST(nosilec, VALUES(nosilec)) "); if (!$sql) $this->importError = mysqli_error($GLOBALS['connect_db']); } } fclose($file); // Na koncu pobrisemo datoteko if (file_exists($target_file)) { unlink($target_file); } } else{ $this->importError = 'Prišlo je do napake pri uvažanju.'; } } function uploadProfesorjiNew(){ global $site_path; $target_file = $site_path.TEMP_FOLDER.'/'.basename($_FILES['import_csv']['name']); if(file_exists($target_file)){ $this->importError = 'Datoteka, ki jo želite naložiti že obstaja!'; return; } if(move_uploaded_file($_FILES['import_csv']['tmp_name'], $target_file)){ //echo 'Datoteka '. basename( $_FILES["fileToUpload"]["name"]). ' je bila uspešno uvožena.'; $file = fopen($target_file, 'r'); $first_line = true; while(!feof($file)){ $skip = false; // Po novem je delimiter ; $line = fgetcsv($file, $length=0, $delimiter=";"); if(!$first_line){ // String z vrednostmi ki jih vstavljamo - po novem dodamo na zacetek fakulteto $values = '\''.$this->importSettings['fakulteta'].'\','; $i=0; foreach($line as $val){ // Po novem pobrisemo quote ce so prisotni $val = str_replace('"', '', $val); // Po novem popravimo id predmeta iz 123_1 v 123 if($i == 0) $val = substr($val, 0, strpos($val, '_')); // Ce je stevilo studentov 0 ne uvazamo if($i == 7 && $val == '0') $skip = true; $values .= '\''.$val.'\','; $i++; } $values = substr($values, 0, -1); // Se spremenimo encoding zaradi čšž-jev $values = iconv(mb_detect_encoding($values, mb_detect_order(), true), "UTF-8", $values); // Vstavimo vrstico - ce ni st_stud 0 if(!$skip){ $sql = sisplet_query("INSERT IGNORE INTO eval_izvajalec".$this->importSettings['test']." (fakulteta, idp, predmet, idpedagoga, ime_pedagoga, nacin_studija, semester_izv, st_kt, st_stud, nosilec, stopnja, praksa) VALUES (".$values.") ON DUPLICATE KEY UPDATE st_stud = GREATEST(st_stud, VALUES(nosilec)), nosilec = GREATEST(nosilec, VALUES(nosilec)) "); if (!$sql) $this->importError = mysqli_error($GLOBALS['connect_db']); } } else{ $first_line = false; } } fclose($file); // Na koncu pobrisemo datoteko if (file_exists($target_file)) { unlink($target_file); } } else{ $this->importError = 'Prišlo je do napake pri uvažanju.'; } } // Preverimo sistemske spremenljivke ki so nastavljene v anketah (test za admine!) public function displayTestSurveys(){ global $lang; global $site_url; global $site_path; echo '
Testiranje'; // Testiranje baze - pravilnosti v bazi, ujemanje id-jev... /*echo '
'; $this->testDatabase(); echo '
';*/ // Ce imamo nastavljen ank_id in ank_type izpisemo tabelo s podatki if(isset($_GET['ank_type']) && isset($_GET['ank_id'])){ echo ''; $ank_id = $_GET['ank_id']; if($_GET['ank_type'] == 'anketa_pred'){ echo ''; echo ''; echo ''; echo ''; echo ''; $sql = sisplet_query("SELECT * FROM eval_data_anketaPred WHERE ank_id='".$ank_id."' ORDER BY student ASC, predmet"); while($row = mysqli_fetch_array($sql)){ echo ''; echo ''; echo ''; echo ''; echo ''; } } elseif($_GET['ank_type'] == 'anketa_po'){ echo ''; echo ''; echo ''; echo ''; echo ''; $sql = sisplet_query("SELECT * FROM eval_data_anketaPo WHERE ank_id='".$ank_id."' ORDER BY student ASC, predmet"); while($row = mysqli_fetch_array($sql)){ echo ''; echo ''; echo ''; echo ''; echo ''; } } elseif($_GET['ank_type'] == 'anketa_splosna'){ echo ''; echo ''; echo ''; echo ''; $sql = sisplet_query("SELECT * FROM eval_data_splosna WHERE ank_id='".$ank_id."' ORDER BY student ASC"); while($row = mysqli_fetch_array($sql)){ echo ''; echo ''; echo ''; echo ''; } } elseif($_GET['ank_type'] == 'anketa_podipl'){ echo ''; echo ''; echo ''; echo ''; $sql = sisplet_query("SELECT * FROM eval_data_podipl WHERE ank_id='".$ank_id."' ORDER BY student ASC"); while($row = mysqli_fetch_array($sql)){ echo ''; echo ''; echo ''; echo ''; } } elseif($_GET['ank_type'] == 'anketa_podipl2'){ echo ''; echo ''; echo ''; echo ''; $sql = sisplet_query("SELECT * FROM eval_data_podipl2 WHERE ank_id='".$ank_id."' ORDER BY student ASC"); while($row = mysqli_fetch_array($sql)){ echo ''; echo ''; echo ''; echo ''; } } elseif($_GET['ank_type'] == 'anketa_podipl3'){ echo ''; echo ''; echo ''; echo ''; $sql = sisplet_query("SELECT * FROM eval_data_podipl3 WHERE ank_id='".$ank_id."' ORDER BY student ASC"); while($row = mysqli_fetch_array($sql)){ echo ''; echo ''; echo ''; echo ''; } } echo '
PredmetŠtudentID ankete
'.$row['predmet'].''.$row['student'].''.$row['ank_id'].'
PredmetŠtudentID ankete
'.$row['predmet'].''.$row['student'].''.$row['ank_id'].'
ŠtudentID ankete
'.$row['student'].''.$row['ank_id'].'
ŠtudentID ankete
'.$row['student'].''.$row['ank_id'].'
ŠtudentID ankete
'.$row['student'].''.$row['ank_id'].'
ŠtudentID ankete
'.$row['student'].''.$row['ank_id'].'
'; } // Drugače izpišemo tabelo z vsemi anketami else{ //echo '

Vsaka študentska anketa mora imeti sistemsko spremenljivko "sifstud" (da vemo za katerega študenta gre).

'; echo '

Fakulteta se identificira na podlagi spremenljivke "siffaks" in ta se ob reševanju ustrezno napolni.

'; echo '

Na podlagi spremenljivke "sifpredm" se ugotovi ali gre za splošne ankete (navadna oz. podiplomska - ti dve se loči glede na prisotnost spremenljivke "podipl") ali za ankete vezane na predmet (pred in po - ti dve se loči na podlagi pristonosti spremenljivke "sifizv1").

'; echo '
'; // Tabela s fakultetami echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $sqlF = sisplet_query("SELECT * FROM eval_fakulteta ORDER BY vrstni_red ASC"); while($rowF = mysqli_fetch_array($sqlF)){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IDVrstni redImeKraticaUniverzaAnketa PREDAnketa POSplošna anketaPodiplomska anketaPodiplomska anketa 2Podiplomska anketa 3Aktivna
'.$rowF['id'].''.$rowF['vrstni_red'].''.$rowF['ime'].''.$rowF['kratica'].''.$rowF['univerza'].''; echo ' '.$rowF['anketa_pred'].' (podatki)'; echo ''; echo ' '.$rowF['anketa_po'].' (podatki)'; echo ''; echo ' '.$rowF['anketa_splosna'].' (podatki)'; echo ''; echo ' '.$rowF['anketa_podipl'].' (podatki)'; echo ''; echo ' '.$rowF['anketa_podipl2'].' (podatki)'; echo ''; echo ' '.$rowF['anketa_podipl3'].' (podatki)'; echo ''.$rowF['active'].'
'; } echo '
'; } // Poizvedbe ki testirajo pravilnost uvozenih tabel function testDatabase(){ // Preverjanje za ujemanje imen v programih /*$sql = sisplet_query("SELECT prog.id AS id, prog.program AS program, pred.id_program AS id_program, pred.program AS program2 FROM eval_program prog, eval_student pred WHERE prog.id=pred.id_program AND prog.program!=pred.program GROUP BY prog.id"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka v ujemanju imena programa (programi in studenti):
'.$row['id'].' ('.$row['program'].' --- '.$row['program2'].')'; echo '
'; } echo '
';*/ // Preverjanje za ujemanje programov $sql = sisplet_query("SELECT pred.id_program, pred.program FROM eval_student pred WHERE pred.id_program NOT IN (SELECT id FROM eval_program) GROUP BY pred.id_program"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka v ujemanju programa (programi in studenti): '.$row['id_program'].' ('.$row['program'].') ni prisoten v tabeli s programi!'; echo '
'; } echo '
'; // Preverjanje za ujemanje imen v predmetih /*$sql = sisplet_query("SELECT prof.idp AS idp, prof.predmet AS predmet, pred.idp AS idp2, pred.predmet AS predmet2 FROM eval_izvajalec prof, eval_student pred WHERE prof.idp=pred.idp AND prof.predmet!=pred.predmet GROUP BY prof.idp"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka v ujemanju imena predmeta (studenti in profesorji):
'.$row['idp'].' ('.$row['predmet'].' --- '.$row['predmet2'].')'; echo '
'; } echo '
';*/ // Preverjanje za ujemanje semestra v predmetih /*$sql = sisplet_query("SELECT prof.idp AS idp, prof.semester_izv AS semester, pred.idp AS idp2, pred.semester_izv AS semester2 FROM eval_izvajalec prof, eval_student pred WHERE prof.idp=pred.pid_program AND prof.semester_izv!=pred.semester_izv GROUP BY prof.idp"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka v ujemanju semestra predmeta (studenti in profesorji):
'.$row['idp'].' ('.$row['semester'].' --- '.$row['semester2'].')'; echo '
'; } echo '
';*/ // Preverjanje za ujemanje predmetov (v studetnih s predmeti in profesorjih) /*$sql = sisplet_query("SELECT idp, predmet FROM eval_student WHERE idp NOT IN (SELECT idp FROM eval_izvajalec) GROUP BY idp"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka v ujemanju predmeta (profesorji in studenti): '.$row['idp'].' ('.$row['predmet'].') ni prisoten v tabeli s profesorji!'; echo '
'; } echo '
';*/ // Preverjanje da ni duplikatov z istim predmetom in profesorjem /*$sql = sisplet_query("SELECT idp, predmet, idpedagoga, ime_pedagoga, count(*) FROM eval_izvajalec GROUP BY idp, idpedagoga HAVING count(*) > 1"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka zaradi duplikata predmeta in profesorja: '.$row['idp'].', '.$row['idpedagoga'].' ('.$row['predmet'].', '.$row['ime_pedagoga'].')'; echo '
'; } echo '
';*/ // Preverjanje da ni predmetov z istim id-jem in razlicnim imenom $sql = sisplet_query("SELECT a1.idp AS idp, a1.predmet AS predmet, a2.idp AS idp2, a2.predmet AS predmet2 FROM eval_izvajalec a1, eval_izvajalec a2 WHERE a1.idp=a2.idp AND a1.predmet!=a2.predmet GROUP BY a1.idp, a1.predmet ORDER BY a1.idp"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka zaradi napacnega imena: '.$row['idp'].' - '.$row['predmet2']; echo '
'; } echo '
'; // Preverjanje da ni profesorjev z istim id-jem in razlicnim imenom $sql = sisplet_query("SELECT a1.idpedagoga AS idpedagoga, a1.ime_pedagoga AS ime_pedagoga, a2.idpedagoga AS idpedagoga2, a2.ime_pedagoga AS ime_pedagoga2 FROM eval_izvajalec a1, eval_izvajalec a2 WHERE a1.idpedagoga=a2.idpedagoga AND a1.ime_pedagoga!=a2.ime_pedagoga GROUP BY a1.idpedagoga, a1.ime_pedagoga ORDER BY a1.idpedagoga"); while($row = mysqli_fetch_array($sql)){ echo 'Napaka zaradi napacnega imena: '.$row['idpedagoga'].' - '.$row['ime_pedagoga2']; echo '
'; } echo '
'; } // Poizvedbe za posodabljanje eval_izvajalec pred 2. semestrom function updateSemester(){ global $site_url; echo ''; echo ''; // Spremembe na samo enem polju echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // Sprememba vecih polj pri istih idp, id_pedagoga in izvedba echo ''; echo ''; echo ''; echo ''; echo ''; // Dodajanje in brisanje vnosov pri istih idp, id_pedagoga in izvedba echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
VKLJUČNO S 1. SEMESTROM
Spremembe ID-ja predmeta//
Spremembe načina študija//
Spremembe ID-ja pedagoga//
Spremembe imena predmetaUPDATE imena predmeta
Spremembe imena pedagogaUPDATE imena pedagoga
Spremembe semestraUPDATE semestra
Spremembe KTUPDATE KT
Spremembe števila študentovUPDATE števila študentov
Spremembe nosilcaUPDATE nosilca
Spremembe stopnjeUPDATE stopnje
Spremembe prakseUPDATE prakse
 
Spremembe večih poljUPDATE več polj
 
Dodane vrsticeDODAJ nove vrstice
Pobrisane vrsticePOBRIŠI odvečne vrstice
'; // Spremembe 2. in obeh semestrov (BREZ 1. semestra) - DEFAULT echo ''; echo ''; // Spremembe na samo enem polju echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; //echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // Sprememba vecih polj pri istih idp, id_pedagoga in izvedba echo ''; echo ''; echo ''; echo ''; echo ''; // Dodajanje in brisanje vnosov pri istih idp, id_pedagoga in izvedba echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
BREZ 1. SEMESTRA
Spremembe ID-ja predmeta//
Spremembe načina študija//
Spremembe ID-ja pedagoga//
Spremembe imena predmetaUPDATE imena predmeta
Spremembe imena pedagogaUPDATE imena pedagoga
Spremembe semestraUPDATE semestra
Spremembe KTUPDATE KT
Spremembe števila študentovUPDATE števila študentov
Spremembe nosilcaUPDATE nosilca
Spremembe stopnjeUPDATE stopnje
Spremembe prakseUPDATE prakse
 
Spremembe večih poljUPDATE več polj
 
Dodane vrsticeDODAJ nove vrstice
Pobrisane vrsticePOBRIŠI odvečne vrstice
'; echo '
'; // Ali updatamo ali selectamo $action = (isset($_GET['action']) && $_GET['action']=='2') ? 'update' : 'select'; // Katero polje gledamo $what = (isset($_GET['column'])) ? $_GET['column'] : 'st_stud'; // Ustvarimo BACKUP tabele eval_izvajalec if($action == 'backup'){ $this->createBackupTable('eval_izvajalec'); } // Updatanje sprememb vecih polj elseif($action == 'update'){ // Izvedemo spremembe vecih polj if($what == 'multi'){ $query = $this->executeMultiChangeUpdate(); } // Izvedemo dodajanje novih vrstic if($what == 'add'){ $query = $this->executeAddChangeUpdate(); } // Izvedemo brisanje odvecnih vrstic if($what == 'delete'){ $query = $this->executeDeleteChangeUpdate(); } // Izvedemo spremembe na samo 1 polju else{ $query = $this->executeSingleChangeUpdate($what); } } // Preverjanje sprememb polj ($action == 'select') else{ // Sprememba na vecih poljih if($what == 'multi'){ $query = $this->getMultiChangeSelect(); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); echo '

'; echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'

'; while($row = mysqli_fetch_array($sql)){ //var_dump($row); echo $row['idp'].' ('.$row['predmet_old'].'), '.$row['idpedagoga'].' ('.$row['ime_pedagoga_old'].'), način študija '.$row['nacin_studija'].', semester '.$row['semester_izv_old'].''; echo '
'; echo 'STARO: predmet: '.$row['predmet_old'].', ime_pedagoga: '.$row['ime_pedagoga_old'].', semester_izv: '.$row['semester_izv_old'].', st_kt: '.$row['st_kt_old'].', st_stud: '.$row['st_stud_old'].', nosilec: '.$row['nosilec_old'].', stopnja: '.$row['stopnja_old'].', praksa: '.$row['praksa_old'].''; echo '
'; echo 'NOVO: predmet:  '.$row['predmet_new'].', ime_pedagoga: '.$row['ime_pedagoga_new'].', semester_izv: '.$row['semester_izv_new'].', st_kt: '.$row['st_kt_new'].', st_stud: '.$row['st_stud_new'].', nosilec: '.$row['nosilec_new'].', stopnja: '.$row['stopnja_new'].', praksa: '.$row['praksa_new'].''; echo '

'; } } // Na novo dodane vrstice elseif($what == 'add'){ $query = $this->getAddChangeSelect(); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); echo '

'; echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'

'; while($row = mysqli_fetch_array($sql)){ //var_dump($row); echo $row['idp'].' ('.$row['predmet'].'), '.$row['idpedagoga'].' ('.$row['ime_pedagoga'].'), način študija '.$row['nacin_studija'].', semester '.$row['semester_izv'].''; echo '

'; } } // Odvecne vrstice za brisanje elseif($what == 'delete'){ $query = $this->getDeleteChangeSelect(); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); echo '

'; echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'

'; while($row = mysqli_fetch_array($sql)){ //var_dump($row); echo $row['idp'].' ('.$row['predmet'].'), '.$row['idpedagoga'].' ('.$row['ime_pedagoga'].'), način študija '.$row['nacin_studija'].', semester '.$row['semester_izv'].''; echo '

'; } } // Sprememba na enem polju else{ $query = $this->getSingleChangeSelect($what); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); echo '

'; echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'

'; while($row = mysqli_fetch_array($sql)){ //var_dump($row); echo $row['idp'].' ('.$row['predmet'].'), '.$row['idpedagoga'].' ('.$row['ime_pedagoga'].'), način študija '.$row['nacin_studija'].', semester '.$row['semester_izv'].''; echo '
'; echo 'STARO POLJE: '.$what.': '.$row[$what.'_OLD'].''; echo '
'; echo 'NOVO POLJE:  '.$what.': '.$row[$what.'_NEW'].''; echo '

'; } } } } // Ustvarimo BACKUP tabele eval_izvajalec private function createBackupTable($table_name='eval_izvajalec'){ $sql = sisplet_query("CREATE TABLE ".$table_name."_bck LIKE ".$table_name.""); $sql = sisplet_query("INSERT ".$table_name."_bck SELECT * FROM ".$table_name.""); } // Vrnemo query za SELECT enojnih sprememb na eval_izvajalec private function getSingleChangeSelect($what){ $eval_izvajalec = array( 'idp' => false, 'predmet' => false, 'idpedagoga' => false, 'ime_pedagoga' => false, 'nacin_studija' => false, 'semester_izv' => false, 'st_kt' => false, 'st_stud' => false, 'nosilec' => false, 'stopnja' => false, 'praksa' => false, 'fakulteta' => false ); $eval_izvajalec[$what] = true; $query = "SELECT a2.*, a2.".$what." ".$what."_NEW, a1.".$what." AS ".$what."_OLD"; $query .= " FROM eval_izvajalec a1, eval_izvajalec2 a2 WHERE"; $i = 0; foreach($eval_izvajalec as $field => $val){ if($i > 0) $query .= " AND"; if($val == true) $query .= " a1.".$field." != a2.".$field; else $query .= " a1.".$field." = a2.".$field; $i++; } // Ce gledamo tudi prvi semester ali ne $semester = (isset($_GET['semester'])) ? $_GET['semester'] : 0; if($semester != 1 && $what == 'semester_izv') $query .= " AND (a2.semester_izv='2' OR a2.semester_izv='3')"; elseif($semester != 1) $query .= " AND (a1.semester_izv='2' OR a1.semester_izv='3')"; $query .= " ORDER BY a1.idp"; return $query; } // Vrnemo query za SELECT vecih sprememb na eval_izvajalec private function getMultiChangeSelect(){ $eval_izvajalec = array('predmet','ime_pedagoga','semester_izv','st_kt','st_stud','nosilec','stopnja','praksa'); // Ce gledamo tudi prvi semester ali ne $semester = (isset($_GET['semester'])) ? $_GET['semester'] : 0; $semester_query = ""; if($semester != 1){ //$semester_query = " AND (a1.semester_izv='2' OR a1.semester_izv='3') AND (a2.semester_izv='2' OR a2.semester_izv='3')"; $semester_query = " AND (a2.semester_izv='2' OR a2.semester_izv='3' OR a1.semester_izv='1') AND (a1.stopnja=a2.stopnja AND a1.st_kt=a2.st_kt AND a1.praksa=a2.praksa)"; } $query = "SELECT a1.idp, a1.idpedagoga, a1.nacin_studija, a1.predmet AS predmet_old, a1.ime_pedagoga AS ime_pedagoga_old, a1.semester_izv AS semester_izv_old, a1.st_kt AS st_kt_old, a1.st_stud AS st_stud_old, a1.nosilec AS nosilec_old, a1.stopnja AS stopnja_old, a1.praksa AS praksa_old, a2.predmet AS predmet_new, a2.ime_pedagoga AS ime_pedagoga_new, a2.semester_izv AS semester_izv_new, a2.st_kt AS st_kt_new, a2.st_stud AS st_stud_new, a2.nosilec AS nosilec_new, a2.stopnja AS stopnja_new, a2.praksa AS praksa_new FROM eval_izvajalec a1, eval_izvajalec2 a2 WHERE a1.idp=a2.idp AND a1.idpedagoga=a2.idpedagoga AND a1.nacin_studija=a2.nacin_studija ".$semester_query." AND (a1.predmet != a2.predmet OR a1.ime_pedagoga != a2.ime_pedagoga OR a1.semester_izv != a2.semester_izv OR a1.st_kt != a2.st_kt OR a1.st_stud != a2.st_stud OR a1.nosilec != a2.nosilec OR a1.stopnja != a2.stopnja OR a1.praksa != a2.praksa)"; // Izkljucimo vse primere kjer je razlicen samo en stolpec for($i=0; $igetSingleChangeSelect($what); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); // Loopamo cez vse vrstice ki jih popravljamo in izvedemo update while($row = mysqli_fetch_array($sql)){ $sqlU = sisplet_query("UPDATE eval_izvajalec SET ".$what." = '".$row[$what.'_NEW']."' WHERE idp='".$row['idp']."' AND idpedagoga='".$row['idpedagoga']."' AND nacin_studija='".$row['nacin_studija']."'"); if (!$sqlU) echo mysqli_error($GLOBALS['connect_db']); echo '
POPRAVEK:'; //var_dump($row); echo 'OK!

'; } } // Izvedemo UPDATE vecih sprememb na eval_izvajalec private function executeMultiChangeUpdate(){ $query = $this->getMultiChangeSelect(); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); // Loopamo cez vse vrstice ki jih popravljamo while($row = mysqli_fetch_array($sql)){ $sqlU = sisplet_query("UPDATE eval_izvajalec SET predmet = '".$row['predmet_new']."', ime_pedagoga = '".$row['ime_pedagoga_new']."', semester_izv = '".$row['semester_izv_new']."', st_kt = '".$row['st_kt_new']."', st_stud = '".$row['st_stud_new']."', nosilec = '".$row['nosilec_new']."', stopnja = '".$row['stopnja_new']."', praksa = '".$row['praksa_new']."' WHERE idp = '".$row['idp']."' AND idpedagoga='".$row['idpedagoga']."' AND nacin_studija='".$row['nacin_studija']."'"); if (!$sqlU) echo mysqli_error($GLOBALS['connect_db']); echo '
POPRAVEK:'; //var_dump($row); echo 'OK!

'; } } // Izvedemo INSERT dodanih vrstic v eval_izvajalec private function executeAddChangeUpdate(){ $query = $this->getAddChangeSelect(); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); // Loopamo cez vse vrstice ki jih popravljamo in izvedemo insert while($row = mysqli_fetch_array($sql)){ $sqlU = sisplet_query("INSERT INTO eval_izvajalec (idp, predmet, idpedagoga, ime_pedagoga, nacin_studija, semester_izv, st_kt, st_stud, nosilec, stopnja, praksa, fakulteta) VALUES ('".$row['idp']."', '".$row['predmet']."', '".$row['idpedagoga']."', '".$row['ime_pedagoga']."', '".$row['nacin_studija']."', '".$row['semester_izv']."', '".$row['st_kt']."', '".$row['st_stud']."', '".$row['nosilec']."', '".$row['stopnja']."', '".$row['praksa']."', '".$row['fakulteta']."') "); if (!$sqlU) echo mysqli_error($GLOBALS['connect_db']); echo '
POPRAVEK:'; //var_dump($row); echo 'OK!

'; } } // Izvedemo DELETE pobrisanih vrstic iz eval_izvajalec private function executeDeleteChangeUpdate(){ $query = $this->getDeleteChangeSelect(); // Izpisemo rezultat queryja $sql = sisplet_query($query); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); // Loopamo cez vse vrstice ki jih popravljamo in izvedemo update while($row = mysqli_fetch_array($sql)){ $sqlU = sisplet_query("DELETE FROM eval_izvajalec WHERE idp='".$row['idp']."' AND idpedagoga='".$row['idpedagoga']."' AND nacin_studija='".$row['nacin_studija']."' AND fakulteta='".$row['fakulteta']."'"); if (!$sqlU) echo mysqli_error($GLOBALS['connect_db']); echo '
POPRAVEK:'; //var_dump($row); echo 'OK!

'; } } // Posiljanje pdf-jev z rezultati profesorjem public function displayEmailing(){ global $lang; global $site_url; $type = (isset($_POST['type'])) ? $_POST['type'] : 0; echo '
Pošiljanje rezultatov'; echo '
'; echo '
'; echo '
'; // Nastavimo tip izpisa echo '

'; echo 'Tip pošiljanja: '; echo ' '; echo ' '; echo '

'; // Gumb za posiljanje pdf-jev echo ''; // Gumb za praznjenje tabele echo ''; echo '
'; echo '
'; // Izpis trenutne izbrane tabele echo '
'; echo 'Navodila za CSV datoteko:
    '; echo '
  • UTF 8 encoding (če bo ANSI ne bodo delali čšž-ji)!
  • '; echo '
  • Brez naslovne vrstice
  • '; echo '
  • Vsi stolpci se morajo ujemati po vrstnem redu in številu
  • '; echo '
  • Podatki so ločeni z vejico (in ne podpičji!)
  • '; echo '
'; echo 'Dodaj podatke (CSV - polja ločena z vejico): '; echo '
'; // Tabela s predmeti in izvajalci if($type == 1){ $sql = sisplet_query("SELECT * FROM eval_pdf_mailer_predmeti ORDER BY ABS(v1) ASC"); $sqlH = sisplet_query("SHOW COLUMNS FROM eval_pdf_mailer_predmeti"); } else{ $sql = sisplet_query("SELECT * FROM eval_pdf_mailer_izvajalci ORDER BY ABS(v1) ASC"); $sqlH = sisplet_query("SHOW COLUMNS FROM eval_pdf_mailer_izvajalci"); } echo ''; echo ''; while($rowH = mysqli_fetch_assoc($sqlH)){ echo ''; } echo ''; // Naslovna vrstca za emailing predmetov if($type == 1){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } // Naslovna vrstca za emailing profesorjem else{ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } while($row = mysqli_fetch_assoc($sql)){ echo ''; foreach($row as $val){ echo ''; } echo ''; } echo '
'.$rowH['Field'].'
CNT1CNT2ID Profesorja??Predmetv5ImeAttachmentEmailv9v10
CNT1CNT2ID ProfesorjaImeAttachmentEmailv7v8v9v10
'.$val.'
'; echo '
'; echo '
'; } function uploadEmailingCSV(){ global $site_path; if(!isset($_POST['type'])){ echo 'Napaka! Niso nastavljeni vsi parametri uvoza!'; exit(); } $type = (isset($_POST['type'])) ? $_POST['type'] : 0; $target_file = $site_path.TEMP_FOLDER.'/'.basename($_FILES['import_csv']['name']); if(file_exists($target_file)){ echo 'Datoteka, ki jo želite naložiti že obstaja!'; return; } if(move_uploaded_file($_FILES['import_csv']['tmp_name'], $target_file)){ $file = fopen($target_file, 'r'); while(!feof($file)){ $line = fgetcsv($file); if($type == 1) $sql_table = 'eval_pdf_mailer_predmeti'; else $sql_table = 'eval_pdf_mailer_izvajalci'; // Preverimo ce se ujema stevilo stolpcev $sqlC = sisplet_query("SHOW COLUMNS FROM ".$sql_table.""); $cols = array(); while($rowC = mysqli_fetch_assoc($sqlC)){ $cols[] = $rowC['Field']; } if(count($line) == count($cols)){ // String z vrednostmi ki jih vstavljamo $values = ''; foreach($line as $val){ $values .= '\''.$val.'\','; } $values = substr($values, 0, -1); // String s stolpci v katere vstavljamo vrednosti $columns = ''; foreach($cols as $val){ $columns .= $val.','; } $columns = substr($columns, 0, -1); // Vstavimo vrstico $sql = sisplet_query("INSERT INTO ".$sql_table." (".$columns.") VALUES (".$values.")"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); } else{ echo 'Število stolpcev se ne ujema!'; break; } } fclose($file); // Na koncu pobrisemo datoteko if (file_exists($target_file)) { unlink($target_file); } } else{ echo 'Prišlo je do napake pri uvažanju.'; } } // Polovimo array z header podatki function getHeaderData() { if ($this->_headFileName != null && $this->_headFileName != '') { $this->_HEADERS = unserialize(file_get_contents($this->_headFileName)); } else { echo 'Error! Empty file name!'; } } // Napolnimo fakultete function setFakultete(){ $sql = sisplet_query("SELECT * FROM eval_fakulteta ORDER BY vrstni_red ASC"); while($row = mysqli_fetch_array($sql)){ $this->fakultete[$row['id']] = $row; } } // Pridobimo id fakultete glede na id ankete function getFakultetaId($ank_id){ $sql = sisplet_query("SELECT * FROM eval_fakulteta WHERE anketa_pred='".$ank_id."' OR anketa_po='".$ank_id."' OR anketa_splosna='".$ank_id."' OR anketa_podipl='".$ank_id."' OR anketa_podipl2='".$ank_id."' OR anketa_podipl3='".$ank_id."' "); if(mysqli_num_rows($sql) == 0){ echo 'Anketa ne pripada nobeni članici!'; return -1; } elseif(mysqli_num_rows($sql) > 1){ echo 'Anketa pripada večim članicam!'; return -1; } else{ $row = mysqli_fetch_array($sql); return $row['id']; } } // Ajax klici public function ajax(){ global $lang; global $site_path; global $global_user_id; if (isset ($_POST['anketa'])) $this->anketa = $_POST['anketa']; if (isset ($_POST['fakulteta'])) $this->fakulteta = $_POST['fakulteta']; // Nastavimo vse fakultete $this->setFakultete(); // Priprava csv-jev (ZA TESTIRANJE) if($_GET['a'] == 'execute_test_export'){ $this->exportSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : -1; $this->exportSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->exportSettings['anketa_pred'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_pred']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_pred'] : -1; $this->exportSettings['anketa_po'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_po']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_po'] : -1; $this->exportSettings['anketa_splosna'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_splosna']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_splosna'] : -1; $this->exportSettings['anketa_podipl'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_podipl']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_podipl'] : -1; $this->exportSettings['anketa_podipl2'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_podipl2']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_podipl2'] : -1; $this->exportSettings['anketa_podipl3'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_podipl3']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_podipl3'] : -1; $this->testExport(); } // Priprava izpisov if($_GET['a'] == 'execute_export'){ $this->exportSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : -1; $this->exportSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->exportSettings['anketa_pred'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_pred']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_pred'] : -1; $this->exportSettings['anketa_po'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_po']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_po'] : -1; // Pozenemo generiranje izpisov $this->executeExport(); // Na novo prikazemo pripravljene izpise $this->displayExport(); echo 'Izpis po '; if($this->exportSettings['type'] == 1) echo 'profesorjih '; if($this->exportSettings['type'] == 2) echo 'programih '; if($this->exportSettings['type'] == 3) echo 'fakulteti '; echo 'za fakulteto '.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].' pripravljeni!'; //var_dump($this->exportSettings); } // Popup pred pripravo izpisov if($_GET['a'] == 'execute_export_popup'){ $this->exportSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : -1; $this->exportSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->exportSettings['anketa_pred'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_pred']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_pred'] : -1; $this->exportSettings['anketa_po'] = isset($this->fakultete[$this->exportSettings['fakulteta']]['anketa_po']) ? $this->fakultete[$this->exportSettings['fakulteta']]['anketa_po'] : -1; echo '
Priprava PDF izvozov
'; echo '
'; // Preverimo ce so izbrane vse vrednosti da lahko pripravimo pdf-je $allow_export = true; $error = ''; if($this->exportSettings['fakulteta'] <= 0){ $error .= 'Obvezna je izbira fakultete!
'; $allow_export = false; } if($this->exportSettings['anketa_pred'] <= 0){ $error .= 'Fakulteta nima nastavljene ankete, ki se je izvajala PRED izpitom!
'; $allow_export = false; } if($this->exportSettings['anketa_po'] <= 0){ $error .= 'Fakulteta nima nastavljene ankete, ki se je izvajala PO izpitu!
'; $allow_export = false; } // Vse je izbrano ok - lahko se pozene priprava pdf-jev if($allow_export){ echo '

Izvedla se bo priprava pdf poročil po '; if($this->exportSettings['type'] == 1) echo 'profesorjih '; if($this->exportSettings['type'] == 2) echo 'programih '; if($this->exportSettings['type'] == 3) echo 'fakulteti '; echo 'za fakulteto '.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.

'; SurveyInfo::getInstance()->SurveyInit($this->exportSettings['anketa_pred']); $row = SurveyInfo::getInstance()->getSurveyRow(); echo '

Anketa, ki se je izvajala PRED izpitu:
'.$row['naslov'].' (ID '.$this->exportSettings['anketa_pred'].')

'; SurveyInfo::getInstance()->SurveyInit($this->exportSettings['anketa_po']); $row = SurveyInfo::getInstance()->getSurveyRow(); echo '

Anketa, ki se je izvajala PO izpitu:
'.$row['naslov'].' (ID '.$this->exportSettings['anketa_po'].')

'; echo '

Generiranje lahko traja tudi do 20 minut! Ali ste prepričani da želite nadaljevati?

'; //var_dump($this->exportSettings); echo '
'; // Gumb za izvoz echo '
'; echo ''; } else{ echo '

Generiranje se ne more izvesti, ker niso izbrane vse ustrezne nastavitve.

'; echo '

'.$error.'

'; echo '
'; echo '
'; } // Gumb za preklic echo ''; echo '
'; } // Popup pred nalaganjem na GC if($_GET['a'] == 'execute_GC_popup'){ $id = (isset($_POST['id'])) ? $_POST['id'] : -1; $fakulteta = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : -1; $type = (isset($_POST['type'])) ? $_POST['type'] : 1; $date = (isset($_POST['date'])) ? $_POST['date'] : 1; echo '
Nalaganje poročil na GC
'; echo '
'; if($id > 0 && $fakulteta > 0){ echo '

Izvedlo se bo nalaganje pdf poročil na GC po '; if($this->exportSettings['type'] == 1) echo 'profesorjih '; if($this->exportSettings['type'] == 2) echo 'programih '; if($this->exportSettings['type'] == 3) echo 'fakulteti '; echo 'za fakulteto '.$this->fakultete[$fakulteta]['kratica'].', ki so bila zgenerirana '.date('d.m.Y H:i:s', strtotime($date)).'.

'; echo '

Ali ste prepričani da želite nadaljevati?

'; } else{ echo '

Manjkajo parametri dokumenta!

'; } echo '
'; echo '
'; // Gumb za izvoz if($id > 0 && $fakulteta > 0){ echo ''; } // Gumb za preklic echo ''; echo '
'; } // Nalaganje pdf-jev na GC if($_GET['a'] == 'execute_GC_upload'){ include_once ('class.GC.php'); $reports_id = (isset($_POST['id'])) ? $_POST['id'] : -1; echo 'Ustvarimo GC client...
'; $GC = new GC(); echo 'Ustvarjen!

'; // Unzipamo poročila in loopamo po njih echo 'Začnemo z uploadom...
'; $GC->executeUpload($reports_id); echo 'Upload končan!

'; } // Uvoz - prikaz izbrane tabele if($_GET['a'] == 'show_import'){ $this->importSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : 0; $this->importSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->importSettings['test'] = (isset($_POST['test'])) ? $_POST['test'] : ''; // Na novo prikazemo pripravljene izpise $this->displayImport($showData=true); //var_dump($this->importSettings); } // Popup pred uvozom if($_GET['a'] == 'execute_import_popup'){ $this->importSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : -1; $this->importSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->importSettings['test'] = (isset($_POST['test'])) ? $_POST['test'] : ''; echo '
Uvoz podatkov
'; echo '
'; echo '

Izvedel se bo uvoz '; if($this->importSettings['type'] == 1) echo 'PROFESORJEV S PREDMETI '; elseif($this->importSettings['type'] == 2) echo 'ŠTUDENTOV '; elseif($this->importSettings['type'] == 3) echo 'PROGRAMOV '; elseif($this->importSettings['type'] == 4) echo 'PODIPLOMSKIH ŠTUDENTOV '; echo 'za fakulteto '.$this->fakultete[$this->importSettings['fakulteta']]['kratica'].'.

'; //var_dump($this->exportSettings); echo '
'; // Gumb za uvoz echo '
'; echo ''; // Gumb za preklic echo ''; echo '
'; } // popup za brisanje izbrane tabele if($_GET['a'] == 'execute_import_delete_popup'){ $this->importSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : -1; $this->importSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->importSettings['test'] = (isset($_POST['test'])) ? $_POST['test'] : ''; echo '
Brisanje podatkov
'; echo '
'; echo '

Pobrisali boste tabelo '; if($this->importSettings['type'] == 1) echo 'PROFESORJEV S PREDMETI '; elseif($this->importSettings['type'] == 2) echo 'ŠTUDENTOV '; elseif($this->importSettings['type'] == 3) echo 'PROGRAMOV '; elseif($this->importSettings['type'] == 4) echo 'PODIPLOMSKIH ŠTUDENTOV '; echo 'za fakulteto '.$this->fakultete[$this->importSettings['fakulteta']]['kratica'].'.

'; echo '

Ali ste prepričani da želite nadaljevati?

'; //var_dump($this->exportSettings); echo '
'; // Gumb za brisanje echo '
'; echo ''; // Gumb za preklic echo ''; echo '
'; } // brisanje izbrane tabele if($_GET['a'] == 'execute_import_delete'){ $this->importSettings['fakulteta'] = (isset($_POST['fakulteta'])) ? $_POST['fakulteta'] : 0; $this->importSettings['type'] = (isset($_POST['type'])) ? $_POST['type'] : 1; $this->importSettings['test'] = (isset($_POST['test'])) ? $_POST['test'] : ''; // Brisanje profesorjev s predmeti if($this->importSettings['type'] == 1){ $sql = sisplet_query("DELETE FROM eval_izvajalec".$this->importSettings['test']." WHERE fakulteta='".$this->importSettings['fakulteta']."'"); } // Brisanje studentov elseif($this->importSettings['type'] == 2){ $sql = sisplet_query("DELETE FROM eval_student"); } // Brisanje programov - ZAENKRAT NE PUSTIMO elseif($this->importSettings['type'] == 3 && false){ $sql = sisplet_query("DELETE FROM eval_program"); } // Brisanje podiplomskih studentov elseif($this->importSettings['type'] == 4){ $sql = sisplet_query("DELETE FROM eval_student_podipl"); } // Na novo prikazemo pripravljene izpise $this->displayImport($showData=true); } // Praznjenje vseh folderjev userja - pdf (z koncnimi izvozi), temp z zacasnimi datotekami, results z rezultati - samo admini zaradi testiranja if($_GET['a'] == 'clear_pdf'){ $pdfFolder = $site_path . PDF_FOLDER.'/'; $resultsFolder = $site_path . RESULTS_FOLDER.'/'; $tempFolder = $site_path . TEMP_FOLDER.'/'; // Pobrisemo vsa pdf porocila od userja $files = glob($pdfFolder.'*'); foreach($files as $file){ if(is_file($file) && strpos(basename($file), '_'.$global_user_id.'_') !== false){ unlink($file); } } // Pocistimo se bazo $sql = sisplet_query("DELETE FROM eval_pdf_reports WHERE usr_id='".$global_user_id."'"); // Pocistimo se mozne ostanke zacasnih datotek $files = glob($resultsFolder.'*'); foreach($files as $file){ if(is_file($file)){ unlink($file); } } $files = glob($resultsFolder.'part-izvajalec-slike/*'); foreach($files as $file){ if(is_file($file)){ unlink($file); } } $files = glob($resultsFolder.'part-predmet-slike/*'); foreach($files as $file){ if(is_file($file)){ unlink($file); } } $files = glob($tempFolder.'*'); foreach($files as $file){ if(is_file($file) && basename($file) != 'navodila.xlsx' && basename($file) != 'navodila.csv'){ unlink($file); } } // Na novo prikazemo pripravljene izpise $this->displayExport(); } // Emailing - prikaz izbrane tabele if($_GET['a'] == 'show_emailing_data'){ // Na novo prikazemo pripravljene izpise $this->displayEmailing(); } // Emailing - praznjenje izbrane tabele if($_GET['a'] == 'delete_emailing_data'){ $type = (isset($_POST['type'])) ? $_POST['type'] : 0; if($type == 1) $sql_table = 'eval_pdf_mailer_predmeti'; else $sql_table = 'eval_pdf_mailer_izvajalci'; $sql = sisplet_query("TRUNCATE ".$sql_table.""); // Na novo prikazemo pripravljene izpise $this->displayEmailing(); } } }