3061 lines
122 KiB
PHP
3061 lines
122 KiB
PHP
<?php
|
|
|
|
ini_set('max_execution_time', 3600); // 1800 seconds = 30 minutes
|
|
|
|
/**
|
|
*
|
|
* Class ki skrbi za prikaz raznih analiz glede studentskih anket
|
|
*
|
|
*/
|
|
|
|
define("TEMP_FOLDER", "admin/survey/modules/Evalvacija/temp");
|
|
define("SCRIPT_FOLDER", "admin/survey/modules/Evalvacija/R");
|
|
define("RESULTS_FOLDER", "admin/survey/modules/Evalvacija/results");
|
|
define("PDF_FOLDER", "admin/survey/modules/Evalvacija/pdf");
|
|
|
|
class Evalvacija{
|
|
|
|
var $anketa; # id ankete
|
|
var $db_table = '';
|
|
|
|
var $eval_survey_type = 0; # tip ankete (1->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 '<p>Ankete potekajo v skladu s Pravilnikom in Priporočili (glej <a href="http://ul.1ka.si/">http://ul.1ka.si/</a>).</p>';
|
|
|
|
echo '<p>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).</p>';
|
|
|
|
|
|
$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 '<h2>Anketa PRED izpiti ('.$this->fakultete[$this->fakulteta]['kratica'].')</h2>';
|
|
|
|
$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 '<p>V anketo je bilo v prvem semestru vključenih <span class="bold red">'.$rowIzvajalci['countPredmet'].'</span> predmetov in <span class="bold red">'.$rowIzvajalci['countPedagog'].'</span> pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) <span class="bold red">'.$rowStudenti['countStudent'].'</span> študentov.</p>';
|
|
|
|
// Letni semester
|
|
echo '<p>V anketo je bilo v drugem semestru vključenih <span class="bold red">'.$rowIzvajalci2['countPredmet'].'</span> predmetov in <span class="bold red">'.$rowIzvajalci2['countPedagog'].'</span> pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) <span class="bold red">'.$rowStudenti2['countStudent'].'</span> študentov.</p>';
|
|
|
|
echo '<p>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.</p>';
|
|
}
|
|
// Anketa PO
|
|
elseif($this->eval_survey_type == 2){
|
|
echo '<h2>Anketa PO izpitih ('.$this->fakultete[$this->fakulteta]['kratica'].')</h2>';
|
|
|
|
$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 '<p>V anketo je bilo v prvem semestru vključenih <span class="bold red">'.$rowIzvajalci['countPredmet'].'</span> predmetov in <span class="bold red">'.$rowIzvajalci['countPedagog'].'</span> pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) <span class="bold red">'.$rowStudenti['countStudent'].'</span> študentov.</p>';
|
|
|
|
// Letni semester
|
|
echo '<p>V anketo je bilo v drugem semestru vključenih <span class="bold red">'.$rowIzvajalci2['countPredmet'].'</span> predmetov in <span class="bold red">'.$rowIzvajalci2['countPedagog'].'</span> pedagogov. V njej je doslej sodelovalo (odgovorilo ali zavrnilo) <span class="bold red">'.$rowStudenti2['countStudent'].'</span> študentov.</p>';
|
|
|
|
echo '<p>Študenti so se lahko pri vsakem predmetu odločili, da ankete tudi ne izpolnijo.</p>';
|
|
}
|
|
// Splosna anketa
|
|
else{
|
|
echo '<h2>Splošna anketa ('.$this->fakultete[$this->fakulteta]['kratica'].')</h2>';
|
|
|
|
$sqlStudenti = sisplet_query("SELECT COUNT(DISTINCT(student)) AS countStudent FROM eval_data_splosna");
|
|
$rowStudenti = mysqli_fetch_array($sqlStudenti);
|
|
|
|
echo '<p>V anketo je bilo vključenih <span class="bold red">'.$rowStudenti['countStudent'].'</span> študentov.</p>';
|
|
}
|
|
}
|
|
|
|
|
|
// 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 '<div id="fade"></div>';
|
|
echo '<div id="ul_exports_popup" class="divPopUp"
|
|
style="display:none; z-index:9999; width:400px; height:260px; position:absolute; top:200px; left:40%;">
|
|
</div>';
|
|
|
|
|
|
echo '<fieldset><legend>Izvoz</legend>';
|
|
|
|
echo '<p class="bold">Izberite tip željenega izpisa, fakulteto ter ustrezni anketi ki sta se izvajali pred in po izpitu:</p>';
|
|
|
|
|
|
echo '<div class="ul_settings_holder" style="float:left; margin:0 0 20px 10px; padding:10px 10px 20px; width:500px; background-color:#eff2f7;">';
|
|
|
|
// Nastavimo tip izpisa
|
|
echo '<p>';
|
|
echo '<span class="nastavitveSpan2">Izpis po: </span>';
|
|
echo '<input type="radio" name="export_type" id="export_type_1" value="1" '.($this->exportSettings['type']==1 ? ' checked="checked"':'').'> <label for="export_type_1">Profesorjih</label></input>';
|
|
echo ' <input type="radio" name="export_type" id="export_type_2" value="2" '.($this->exportSettings['type']==2 ? ' checked="checked"':'').'> <label for="export_type_2">Programih</label></input>';
|
|
echo ' <input type="radio" name="export_type" id="export_type_3" value="3" '.($this->exportSettings['type']==3 ? ' checked="checked"':'').'> <label for="export_type_3">Faksu</label></input>';
|
|
echo '</p>';
|
|
|
|
// Nastavimo fakulteto
|
|
echo '<p>';
|
|
echo '<span class="nastavitveSpan2">Fakulteta: </span><select name="export_fakulteta" id="export_fakulteta">';
|
|
echo '<option value="-1" '.($this->exportSettings['fakulteta'] == -1 ? ' selected="selected"' : '').'>Izberite fakulteto</option>';
|
|
foreach($this->fakultete as $vrstni_red => $fakulteta){
|
|
echo '<option value="'.$vrstni_red.'" '.($this->exportSettings['fakulteta'] == $vrstni_red ? ' selected="selected"' : '').'>'.$fakulteta['kratica'].'</option>';
|
|
}
|
|
echo '</select>';
|
|
echo '</p>';
|
|
|
|
echo '<br />';
|
|
|
|
// Gumb za genereranje izpisov
|
|
//echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="executeReport(); return false;">';
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="executeReportPopup(); return false;">';
|
|
echo 'Pripravi izpise';
|
|
echo '</a></div></span>';
|
|
|
|
// Gumb za genereranje CSV-jev (za testiranje)
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="executeTestExport(); return false;">';
|
|
echo '<span>Izvozi začasne datoteke (CSV)</span>';
|
|
echo '</a></div></span>';
|
|
|
|
echo '<br />';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Seznam datotek, ki so na voljo za download
|
|
echo '<div id="ul_export_dl" style="float:left; margin:0 0 20px 50px; padding:10px 10px 20px; width:500px; background-color:#eff2f7;">';
|
|
echo '<span class="bold">Datoteke:</span>';
|
|
|
|
$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 '<ul style="list-style-type:none; margin:10px 0 10px; padding-left:20px;">';
|
|
|
|
$pdfFolder = $site_path . PDF_FOLDER.'/';
|
|
$files = glob($pdfFolder.'*');
|
|
|
|
while($rowPdf = mysqli_fetch_array($sqlPdf)){
|
|
echo '<li style="padding:5px 0; border-bottom: 1px solid #b6b6b6;">';
|
|
|
|
echo '<span>Čas generiranja: '.date('d.m.Y H:i:s', strtotime($rowPdf['date'])).'</span><br />';
|
|
echo '<a href="'.$site_url . PDF_FOLDER . '/' . $rowPdf['filename'].'"><span class="bold">'.$rowPdf['filename'].'</span></a>';
|
|
|
|
// Gumb za nalaganje datotek na GC
|
|
echo '<div style="float: right; margin: -10px 10px;">';
|
|
echo '<a href="#" onClick="executeUploadGCPopup(\''.$rowPdf['id'].'\', \''.$rowPdf['fak_id'].'\', \''.$rowPdf['type'].'\', \''.$rowPdf['date'].'\'); return false;">Naloži na GC</a>';
|
|
echo '</div>';
|
|
|
|
echo '</li>';
|
|
}
|
|
|
|
echo '</ul>';
|
|
}
|
|
else
|
|
echo '<p style="padding-left:10px;">Trenutno še nimate pripravljenih nobenih izpisov!</p>';
|
|
|
|
// 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 '<ul style="list-style-type:none; margin:10px 0 10px; padding-left:20px;">';
|
|
|
|
$pdfFolder = $site_path . PDF_FOLDER.'/';
|
|
$files = glob($pdfFolder.'*');
|
|
|
|
while($rowPdf = mysqli_fetch_array($sqlPdf)){
|
|
echo '<li style="padding:2px 0;">';
|
|
|
|
echo '<span>Avtor: '.$rowPdf['name'].' '.$rowPdf['surname'].' ('.$rowPdf['email'].')</span><br />';
|
|
echo '<span>Čas generiranja: '.date('d.m.Y H:i:s', strtotime($rowPdf['date'])).'</span><br />';
|
|
echo '<a href="'.$site_url . PDF_FOLDER . '/' . $rowPdf['filename'].'"><span class="bold">'.$rowPdf['filename'].'</span></a>';
|
|
|
|
echo '</li>';
|
|
}
|
|
|
|
echo '</ul>';
|
|
}
|
|
}
|
|
|
|
// Gumb za brisanje folderja "pdf" z koncnimi datotekami izpisov - SAMO ADMIN ZARADI TESTIRANJA
|
|
if($admin_type == 0){
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="clearPdf(); return false;">';
|
|
echo 'Pobriši vse datoteke';
|
|
echo '</a></div></span>';
|
|
echo '<br />';
|
|
}
|
|
|
|
echo '</div>';
|
|
|
|
echo '</fieldset>';
|
|
}
|
|
|
|
// 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 '<div style="display:none;">';
|
|
echo 'Rscript '.$script.' '.$params;
|
|
//echo '<br />'.$out.'<br />';
|
|
var_dump($output);
|
|
//print_r($output);
|
|
echo '</div>';
|
|
}
|
|
|
|
|
|
// 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<br />';
|
|
}
|
|
|
|
// 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).'<br>';
|
|
}
|
|
}
|
|
// 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).'<br>';
|
|
}
|
|
}
|
|
// 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).'<br>';
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// 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 '<div id="fade"></div>';
|
|
echo '<div id="ul_imports_popup" class="divPopUp"
|
|
style="display:none; z-index:9999; width:400px; height:260px; position:absolute; top:200px; left:40%;">
|
|
</div>';
|
|
|
|
|
|
echo '<fieldset><legend>Uvoz</legend>';
|
|
|
|
echo '<p class="bold"><a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=import&s=semester_update">Posodabljanje ob semestru</a></p>';
|
|
|
|
echo '<p class="bold">Izberite tabelo in fakulteto, za katero želite izvesti uvoz:</p>';
|
|
|
|
echo '<form name="upload_csv_form" action="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&t=import&s=upload_csv" method="post" enctype="multipart/form-data">';
|
|
|
|
|
|
echo '<div class="ul_settings_holder" style="margin:0 0 20px 10px; padding:10px 10px 20px; width:700px; background-color:#eff2f7;">';
|
|
|
|
// Nastavimo tip izpisa
|
|
echo '<p>';
|
|
echo '<span class="nastavitveSpan2">Tabela: </span>';
|
|
echo '<input type="radio" name="import_type" id="import_type_1" value="1" '.($this->importSettings['type']==1 ? ' checked="checked"':'').'> <label for="import_type_1">Predmeti s profesorji</label></input>';
|
|
echo ' <input type="radio" name="import_type" id="import_type_2" value="2" '.($this->importSettings['type']==2 ? ' checked="checked"':'').'> <label for="import_type_2">Študenti</label></input>';
|
|
echo ' <input type="radio" name="import_type" id="import_type_4" value="4" '.($this->importSettings['type']==4 ? ' checked="checked"':'').'> <label for="import_type_4">Podiplomski študenti</label></input>';
|
|
echo ' <input type="radio" name="import_type" id="import_type_3" value="3" '.($this->importSettings['type']==3 ? ' checked="checked"':'').'> <label for="import_type_3">Programi</label></input>';
|
|
echo '</p>';
|
|
|
|
// Nastavimo fakulteto
|
|
echo '<p>';
|
|
echo '<span class="nastavitveSpan2">Fakulteta: </span><select name="import_fakulteta" id="import_fakulteta">';
|
|
foreach($this->fakultete as $fakulteta){
|
|
echo '<option value="'.$fakulteta['id'].'" '.($this->importSettings['fakulteta'] == $fakulteta['id'] ? ' selected="selected"' : '').'>'.$fakulteta['kratica'].'</option>';
|
|
}
|
|
echo '</select>';
|
|
echo '</p>';
|
|
|
|
// Nastavimo ce gre za testni uvoz (v testno anketo za izvajalce eval_izvajalec_test)
|
|
if($this->importSettings['type']==1){
|
|
echo '<p>';
|
|
echo '<span class="nastavitveSpan2">Uvoz v testno tabelo: </span>';
|
|
echo '<input type="radio" name="import_test" id="import_test_1" value="" '.($this->importSettings['test']=='' ? ' checked="checked"':'').'> <label for="import_test_1">Navadna</label></input>';
|
|
echo ' <input type="radio" name="import_test" id="import_test_2" value="2" '.($this->importSettings['test']=='2' ? ' checked="checked"':'').'> <label for="import_test_2">Testna</label></input>';
|
|
echo '</p>';
|
|
}
|
|
|
|
// Gumb za genereranje izpisov
|
|
echo '<span class="floatRight spaceLeft"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="showImport(); return false;">';
|
|
echo 'Prikaži';
|
|
echo '</a></div></span>';
|
|
echo '<br />';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Izpis trenutne izbrane tabele
|
|
if($showData){
|
|
|
|
// KONTROLE ZA X1
|
|
if($this->importSettings['type'] == 1){
|
|
|
|
echo '<table style="border: 1px black solid;" cellspacing="0" cellpadding="10"><tr>';
|
|
|
|
// Št. izvajalcev
|
|
echo '<td style="border: 1px black solid;">';
|
|
$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 '<br />';
|
|
|
|
// Š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 '</td>';
|
|
|
|
// Frekvence - nacin studija
|
|
echo '<td style="border: 1px black solid;">';
|
|
$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 '<br />';
|
|
}
|
|
echo '</td>';
|
|
|
|
// Frekvence - semester izvajanja
|
|
echo '<td style="border: 1px black solid;">';
|
|
$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 '<br />';
|
|
}
|
|
echo '</td>';
|
|
|
|
// Frekvence - nosilec
|
|
echo '<td style="border: 1px black solid;">';
|
|
$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 '<br />';
|
|
}
|
|
echo '</td>';
|
|
|
|
// Frekvence - stopnja
|
|
echo '<td style="border: 1px black solid;">';
|
|
$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 '<br />';
|
|
}
|
|
echo '</td>';
|
|
|
|
// Frekvence - praksa
|
|
echo '<td style="border: 1px black solid;" colspan="2">';
|
|
$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 '<br />';
|
|
}
|
|
echo '</td>';
|
|
|
|
echo '</tr>';
|
|
echo '<tr>';
|
|
|
|
// KT izven mej (1-20)
|
|
echo '<td style="border: 1px black solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Kreditne točke OK.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Št. studentov izven mej (<2)
|
|
echo '<td style="border: 1px black solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Število študentov OK.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Manjkajoci nosilci
|
|
echo '<td style="border: 1px black solid; height:100px;" colspan="3">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Nosilci OK.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Podvajanje predmeta in izvajalca
|
|
echo '<td style="border: 1px black solid; height:100px;" colspan="2">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni podvojenih predmetov in izvajalcev.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
echo '</tr>';
|
|
echo '<tr>';
|
|
|
|
// Neujemanje imena predmeta
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj v imenu predmeta.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Neujemanje imena pedagoga
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj v imenu pedagoga.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Neujemanje st. studentov
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj v številu študentov.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Neujemanje semestra
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj semestra izvajanja.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Neujemanje prakse
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj prakse.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Neujemanje kt
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj kreditnih točk.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
// Neujemanje stopnje
|
|
echo '<td style="border: 1px red solid; height:100px;">';
|
|
echo '<div style="height:100%; width:100%; overflow:auto;">';
|
|
$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 '<br />';
|
|
}
|
|
}
|
|
else
|
|
echo 'Ni neujemanj stopnje.';
|
|
echo '</div>';
|
|
echo '</td>';
|
|
|
|
echo '</tr></table>';
|
|
}
|
|
|
|
|
|
echo '<div style="margin: 20px;">';
|
|
echo 'Navodila za CSV datoteko: <ul>';
|
|
echo ' <li>UTF 8 encoding (če bo ANSI ne bodo delali čšž-ji)!</li>';
|
|
echo ' <li>Brez naslovne vrstice</li>';
|
|
echo ' <li>Vsi stolpci se morajo ujemati po vrstnem redu in številu</li>';
|
|
echo ' <li>Podatki so ločeni s podpičji (razen predmeti s profesorji, ki so ločeni z #)!</li>';
|
|
echo '</ul>';
|
|
//echo 'Dodaj podatke (CSV - polja ločena z vejico): <input type="file" name="import_csv" onchange="submit();" />';
|
|
echo 'Dodaj podatke (CSV - polja ločena s ; oz. #): <input type="file" name="import_csv" onchange="executeImportPopup();" />';
|
|
if($this->importError != '')
|
|
echo $this->importError;
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Gumb za brisanje tabele - samo admini
|
|
if($admin_type == 0){
|
|
echo '<div style="float:left; margin:-20px 0 0 20px;">';
|
|
echo '<span class="spaceLeft"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="executeImportDeletePopup(); return false;">';
|
|
echo 'Pobriši podatke';
|
|
echo '</a></div></span>';
|
|
echo '</div>';
|
|
echo '<br /><br />';
|
|
}
|
|
|
|
|
|
// 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 '<span style="padding-left:20px; font-style:italic;">Zadnja sprememba: '.date("d.m.Y H:i:s", strtotime($updateTime)).'</span>';
|
|
|
|
// Število vseh v bazi
|
|
echo '<br /><span style="padding-left:20px; font-style:italic;">Število vseh vnosov: '.mysqli_num_rows($sql).'</span>';
|
|
|
|
echo '<table style="border-spacing:0px; border:2px black solid; table-layout:fixed; border-collapse:collapse; margin:10px 20px;">';
|
|
|
|
echo '<tr>';
|
|
while($rowH = mysqli_fetch_assoc($sqlH)){
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">'.$rowH['Field'].'</td>';
|
|
}
|
|
echo '</tr>';
|
|
|
|
$i=0;
|
|
while($row = mysqli_fetch_assoc($sql)){
|
|
echo '<tr>';
|
|
foreach($row as $val){
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$val.'</td>';
|
|
}
|
|
echo '</tr>';
|
|
|
|
// Tabela studentov je drugace prevelika
|
|
/*if($i > 100 && $this->importSettings['type'] == 2)
|
|
break;*/
|
|
|
|
$i++;
|
|
}
|
|
|
|
echo '</table>';
|
|
}
|
|
|
|
echo '</form>';
|
|
|
|
echo '</fieldset>';
|
|
}
|
|
}
|
|
|
|
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 = '<span class="red bold">Število stolpcev se ne ujema!</span>';
|
|
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 '<fieldset><legend>Testiranje</legend>';
|
|
|
|
|
|
// Testiranje baze - pravilnosti v bazi, ujemanje id-jev...
|
|
/*echo '<div style="margin:15px 0; color:red;">';
|
|
$this->testDatabase();
|
|
echo '</div>';*/
|
|
|
|
|
|
// Ce imamo nastavljen ank_id in ank_type izpisemo tabelo s podatki
|
|
if(isset($_GET['ank_type']) && isset($_GET['ank_id'])){
|
|
|
|
echo '<table style="float:left; border-spacing:0px; border:2px black solid; table-layout:fixed; border-collapse:collapse; margin:10px 20px 10px 60px;">';
|
|
|
|
$ank_id = $_GET['ank_id'];
|
|
|
|
if($_GET['ank_type'] == 'anketa_pred'){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Predmet</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Študent</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID ankete</td>';
|
|
echo '</tr>';
|
|
|
|
$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 '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['predmet'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['student'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['ank_id'].'</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
elseif($_GET['ank_type'] == 'anketa_po'){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Predmet</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Študent</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID ankete</td>';
|
|
echo '</tr>';
|
|
|
|
$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 '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['predmet'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['student'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['ank_id'].'</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
elseif($_GET['ank_type'] == 'anketa_splosna'){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Študent</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID ankete</td>';
|
|
echo '</tr>';
|
|
|
|
$sql = sisplet_query("SELECT * FROM eval_data_splosna WHERE ank_id='".$ank_id."' ORDER BY student ASC");
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['student'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['ank_id'].'</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
elseif($_GET['ank_type'] == 'anketa_podipl'){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Študent</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID ankete</td>';
|
|
echo '</tr>';
|
|
|
|
$sql = sisplet_query("SELECT * FROM eval_data_podipl WHERE ank_id='".$ank_id."' ORDER BY student ASC");
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['student'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['ank_id'].'</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
elseif($_GET['ank_type'] == 'anketa_podipl2'){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Študent</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID ankete</td>';
|
|
echo '</tr>';
|
|
|
|
$sql = sisplet_query("SELECT * FROM eval_data_podipl2 WHERE ank_id='".$ank_id."' ORDER BY student ASC");
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['student'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['ank_id'].'</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
elseif($_GET['ank_type'] == 'anketa_podipl3'){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Študent</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID ankete</td>';
|
|
echo '</tr>';
|
|
|
|
$sql = sisplet_query("SELECT * FROM eval_data_podipl3 WHERE ank_id='".$ank_id."' ORDER BY student ASC");
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['student'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">'.$row['ank_id'].'</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
|
|
echo '</table>';
|
|
}
|
|
// Drugače izpišemo tabelo z vsemi anketami
|
|
else{
|
|
//echo '<p>Vsaka študentska anketa mora imeti sistemsko spremenljivko "sifstud" (da vemo za katerega študenta gre).</p>';
|
|
echo '<p>Fakulteta se identificira na podlagi spremenljivke "siffaks" in ta se ob reševanju ustrezno napolni.</p>';
|
|
echo '<p>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").</p>';
|
|
|
|
echo '<br />';
|
|
|
|
|
|
// Tabela s fakultetami
|
|
echo '<table style="float:left; border-spacing:0px; border:2px black solid; table-layout:fixed; border-collapse:collapse; margin:10px 20px 10px 60px;">';
|
|
|
|
echo '<tr>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">ID</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Vrstni red</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Ime</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Kratica</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Univerza</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Anketa PRED</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Anketa PO</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Splošna anketa</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Podiplomska anketa</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Podiplomska anketa 2</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Podiplomska anketa 3</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px; font-weight:bold;">Aktivna</td>';
|
|
echo '</tr>';
|
|
|
|
$sqlF = sisplet_query("SELECT * FROM eval_fakulteta ORDER BY vrstni_red ASC");
|
|
while($rowF = mysqli_fetch_array($sqlF)){
|
|
echo '<tr>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$rowF['id'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$rowF['vrstni_red'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$rowF['ime'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$rowF['kratica'].'</td>';
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$rowF['univerza'].'</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">';
|
|
echo ' <a href="'.$site_url.'admin/survey/index.php?anketa='.$rowF['anketa_pred'].'">'.$rowF['anketa_pred'].'</a> (<a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=test&ank_type=anketa_pred&ank_id='.$rowF['anketa_pred'].'">podatki</a>)';
|
|
echo '</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">';
|
|
echo ' <a href="'.$site_url.'admin/survey/index.php?anketa='.$rowF['anketa_po'].'">'.$rowF['anketa_po'].'</a> (<a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=test&ank_type=anketa_po&ank_id='.$rowF['anketa_po'].'">podatki</a>)';
|
|
echo '</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">';
|
|
echo ' <a href="'.$site_url.'admin/survey/index.php?anketa='.$rowF['anketa_splosna'].'">'.$rowF['anketa_splosna'].'</a> (<a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=test&ank_type=anketa_splosna&ank_id='.$rowF['anketa_splosna'].'">podatki</a>)';
|
|
echo '</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">';
|
|
echo ' <a href="'.$site_url.'admin/survey/index.php?anketa='.$rowF['anketa_podipl'].'">'.$rowF['anketa_podipl'].'</a> (<a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=test&ank_type=anketa_podipl&ank_id='.$rowF['anketa_podipl'].'">podatki</a>)';
|
|
echo '</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">';
|
|
echo ' <a href="'.$site_url.'admin/survey/index.php?anketa='.$rowF['anketa_podipl2'].'">'.$rowF['anketa_podipl2'].'</a> (<a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=test&ank_type=anketa_podipl2&ank_id='.$rowF['anketa_podipl2'].'">podatki</a>)';
|
|
echo '</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">';
|
|
echo ' <a href="'.$site_url.'admin/survey/index.php?anketa='.$rowF['anketa_podipl3'].'">'.$rowF['anketa_podipl3'].'</a> (<a href="'.$site_url.'admin/survey/index.php?a=ul_evalvation&t=test&ank_type=anketa_podipl3&ank_id='.$rowF['anketa_podipl3'].'">podatki</a>)';
|
|
echo '</td>';
|
|
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$rowF['active'].'</td>';
|
|
|
|
echo '</tr>';
|
|
}
|
|
|
|
echo '</table>';
|
|
}
|
|
|
|
echo '</fieldset>';
|
|
}
|
|
|
|
// 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):<br/>'.$row['id'].' ('.$row['program'].' --- '.$row['program2'].')';
|
|
echo '<br />';
|
|
}
|
|
echo '<br />';*/
|
|
|
|
// 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 '<br />';
|
|
}
|
|
echo '<br />';
|
|
|
|
|
|
// 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):<br/>'.$row['idp'].' ('.$row['predmet'].' --- '.$row['predmet2'].')';
|
|
echo '<br />';
|
|
}
|
|
echo '<br />';*/
|
|
|
|
// 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):<br/>'.$row['idp'].' ('.$row['semester'].' --- '.$row['semester2'].')';
|
|
echo '<br />';
|
|
}
|
|
echo '<br />';*/
|
|
|
|
// 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 '<br />';
|
|
}
|
|
echo '<br />';*/
|
|
|
|
|
|
// 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 '<br />';
|
|
}
|
|
echo '<br />';*/
|
|
|
|
// 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 '<br />';
|
|
}
|
|
echo '<br />';
|
|
|
|
// 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 '<br />';
|
|
}
|
|
echo '<br />';
|
|
}
|
|
|
|
|
|
// Poizvedbe za posodabljanje eval_izvajalec pred 2. semestrom
|
|
function updateSemester(){
|
|
global $site_url;
|
|
|
|
echo '<table class="floatLeft">';
|
|
echo '<tr><td class="bold">VKLJUČNO S 1. SEMESTROM</td></tr>';
|
|
|
|
// Spremembe na samo enem polju
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=idp&semester=1">Spremembe ID-ja predmeta</a></td>';
|
|
//echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=idp&semester=1">/</a></td>';
|
|
echo '<td>/</td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=nacin_studija&semester=1">Spremembe načina študija</a></td>';
|
|
//echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=nacin_studija&semester=1">/</a></td>';
|
|
echo '<td>/</td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=idpedagoga&semester=1">Spremembe ID-ja pedagoga</a></td>';
|
|
//echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=idpedagoga&semester=1">/</a></td>';
|
|
echo '<td>/</td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=predmet&semester=1">Spremembe imena predmeta</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=predmet&semester=1">UPDATE imena predmeta</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=ime_pedagoga&semester=1">Spremembe imena pedagoga</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=ime_pedagoga&semester=1">UPDATE imena pedagoga</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=semester_izv&semester=1">Spremembe semestra</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=semester_izv&semester=1">UPDATE semestra</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=st_kt&semester=1">Spremembe KT</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=st_kt&semester=1">UPDATE KT</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=st_stud&semester=1">Spremembe števila študentov</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=st_stud&semester=1">UPDATE števila študentov</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=nosilec&semester=1">Spremembe nosilca</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=nosilec&semester=1">UPDATE nosilca</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=stopnja&semester=1">Spremembe stopnje</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=stopnja&semester=1">UPDATE stopnje</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=praksa&semester=1">Spremembe prakse</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=praksa&semester=1">UPDATE prakse</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr><td> </td><td></td></tr>';
|
|
|
|
// Sprememba vecih polj pri istih idp, id_pedagoga in izvedba
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=multi&semester=1">Spremembe večih polj</a></td>';
|
|
echo '<td><a style="color:purple;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=multi&semester=1">UPDATE več polj</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr><td> </td><td></td></tr>';
|
|
|
|
// Dodajanje in brisanje vnosov pri istih idp, id_pedagoga in izvedba
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=add&semester=1">Dodane vrstice</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=add&semester=1">DODAJ nove vrstice</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=delete&semester=1">Pobrisane vrstice</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=delete&semester=1">POBRIŠI odvečne vrstice</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '</table>';
|
|
|
|
|
|
// Spremembe 2. in obeh semestrov (BREZ 1. semestra) - DEFAULT
|
|
echo '<table class="floatLeft" style="margin-left:50px;">';
|
|
echo '<tr><td class="bold">BREZ 1. SEMESTRA</td></tr>';
|
|
|
|
// Spremembe na samo enem polju
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=idp">Spremembe ID-ja predmeta</a></td>';
|
|
//echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=idp">/</a></td>';
|
|
echo '<td>/</td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=nacin_studija">Spremembe načina študija</a></td>';
|
|
//echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=nacin_studija">/</a></td>';
|
|
echo '<td>/</td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=idpedagoga">Spremembe ID-ja pedagoga</a></td>';
|
|
//echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=idpedagoga">/</a></td>';
|
|
echo '<td>/</td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=predmet">Spremembe imena predmeta</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=predmet">UPDATE imena predmeta</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=ime_pedagoga">Spremembe imena pedagoga</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=ime_pedagoga">UPDATE imena pedagoga</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=semester_izv">Spremembe semestra</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=semester_izv">UPDATE semestra</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=st_kt">Spremembe KT</a></td>';
|
|
echo '<td><a style="color:red;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=st_kt">UPDATE KT</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=st_stud">Spremembe števila študentov</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=st_stud">UPDATE števila študentov</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=nosilec">Spremembe nosilca</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=nosilec">UPDATE nosilca</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=stopnja">Spremembe stopnje</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=stopnja">UPDATE stopnje</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=praksa">Spremembe prakse</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=praksa">UPDATE prakse</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr><td> </td><td></td></tr>';
|
|
|
|
// Sprememba vecih polj pri istih idp, id_pedagoga in izvedba
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=multi">Spremembe večih polj</a></td>';
|
|
echo '<td><a style="color:purple;" href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=multi">UPDATE več polj</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr><td> </td><td></td></tr>';
|
|
|
|
// Dodajanje in brisanje vnosov pri istih idp, id_pedagoga in izvedba
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=add">Dodane vrstice</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=add">DODAJ nove vrstice</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=1&column=delete">Pobrisane vrstice</a></td>';
|
|
echo '<td><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&&t=import&s=semester_update&action=2&column=delete">POBRIŠI odvečne vrstice</a></td>';
|
|
echo '</tr>';
|
|
|
|
echo '</table>';
|
|
|
|
echo '<div class="clr"></div>';
|
|
|
|
|
|
// 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 '<br /><br />';
|
|
echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'<br /><br />';
|
|
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
//var_dump($row);
|
|
|
|
echo $row['idp'].' <b>('.$row['predmet_old'].')</b>, '.$row['idpedagoga'].' <b>('.$row['ime_pedagoga_old'].')</b>, način študija <b>'.$row['nacin_studija'].'</b>, semester <b>'.$row['semester_izv_old'].'</b>';
|
|
|
|
echo '<br />';
|
|
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 '<br />';
|
|
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 '<br /><br />';
|
|
}
|
|
}
|
|
// 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 '<br /><br />';
|
|
echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'<br /><br />';
|
|
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
//var_dump($row);
|
|
|
|
echo $row['idp'].' <b>('.$row['predmet'].')</b>, '.$row['idpedagoga'].' <b>('.$row['ime_pedagoga'].')</b>, način študija <b>'.$row['nacin_studija'].'</b>, semester <b>'.$row['semester_izv'].'</b>';
|
|
|
|
echo '<br /><br />';
|
|
}
|
|
}
|
|
// 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 '<br /><br />';
|
|
echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'<br /><br />';
|
|
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
//var_dump($row);
|
|
|
|
echo $row['idp'].' <b>('.$row['predmet'].')</b>, '.$row['idpedagoga'].' <b>('.$row['ime_pedagoga'].')</b>, način študija <b>'.$row['nacin_studija'].'</b>, semester <b>'.$row['semester_izv'].'</b>';
|
|
|
|
echo '<br /><br />';
|
|
}
|
|
}
|
|
// 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 '<br /><br />';
|
|
echo 'Število različnih vrstic: '.mysqli_num_rows($sql).'<br /><br />';
|
|
|
|
while($row = mysqli_fetch_array($sql)){
|
|
|
|
//var_dump($row);
|
|
|
|
echo $row['idp'].' <b>('.$row['predmet'].')</b>, '.$row['idpedagoga'].' <b>('.$row['ime_pedagoga'].')</b>, način študija <b>'.$row['nacin_studija'].'</b>, semester <b>'.$row['semester_izv'].'</b>';
|
|
|
|
echo '<br />';
|
|
echo 'STARO POLJE: '.$what.': <b>'.$row[$what.'_OLD'].'</b>';
|
|
echo '<br />';
|
|
echo 'NOVO POLJE: '.$what.': <b>'.$row[$what.'_NEW'].'</b>';
|
|
|
|
echo '<br /><br />';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 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; $i<sizeof($eval_izvajalec); $i++){
|
|
|
|
$query .= " AND (a2.idp, a2.idpedagoga, a2.nacin_studija) NOT IN";
|
|
|
|
$query .= " (SELECT a3.idp, a3.idpedagoga, a3.nacin_studija FROM eval_izvajalec a3
|
|
WHERE a2.idp = a3.idp AND a2.idpedagoga = a3.idpedagoga AND a2.nacin_studija = a3.nacin_studija";
|
|
|
|
foreach($eval_izvajalec as $field){
|
|
|
|
if($field == $eval_izvajalec[$i])
|
|
$query .= " AND a2.".$field." != a3.".$field;
|
|
else
|
|
$query .= " AND a2.".$field." = a3.".$field;
|
|
}
|
|
|
|
$query .= ")";
|
|
}
|
|
|
|
$query .= " ORDER BY a1.idp";
|
|
|
|
|
|
return $query;
|
|
}
|
|
|
|
// Vrnemo query za dodane vrstice v eval_izvajalec
|
|
private function getAddChangeSelect(){
|
|
|
|
// Ce gledamo tudi prvi semester ali ne
|
|
$semester = (isset($_GET['semester'])) ? $_GET['semester'] : 0;
|
|
$semester_query = "";
|
|
if($semester != 1)
|
|
$semester_query = " AND (a2.semester_izv='2' OR a2.semester_izv='3')";
|
|
|
|
$query = "SELECT a2.*
|
|
FROM eval_izvajalec2 a2
|
|
WHERE NOT EXISTS (
|
|
SELECT a1.* FROM eval_izvajalec a1
|
|
WHERE a1.idp = a2.idp AND a1.idpedagoga = a2.idpedagoga AND a1.nacin_studija = a2.nacin_studija
|
|
) ".$semester_query."
|
|
ORDER BY a2.fakulteta, a2.idp";
|
|
|
|
|
|
return $query;
|
|
}
|
|
|
|
// Vrnemo query za pobrisane vrstice v eval_izvajalec
|
|
private function getDeleteChangeSelect(){
|
|
|
|
// 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')";
|
|
|
|
$query = "SELECT a1.*
|
|
FROM eval_izvajalec a1
|
|
WHERE NOT EXISTS (
|
|
SELECT a2.* FROM eval_izvajalec2 a2
|
|
WHERE a1.idp = a2.idp AND a1.idpedagoga = a2.idpedagoga AND a1.nacin_studija = a2.nacin_studija
|
|
) ".$semester_query."
|
|
ORDER BY a1.fakulteta, a1.idp";
|
|
|
|
|
|
return $query;
|
|
}
|
|
|
|
// Izvedemo UPDATE enojnih sprememb na eval_izvajalec
|
|
private function executeSingleChangeUpdate($what){
|
|
|
|
$query = $this->getSingleChangeSelect($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 '<br />POPRAVEK:';
|
|
//var_dump($row);
|
|
echo 'OK!<br /><br />';
|
|
}
|
|
}
|
|
|
|
// 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 '<br />POPRAVEK:';
|
|
//var_dump($row);
|
|
echo 'OK!<br /><br />';
|
|
}
|
|
}
|
|
|
|
// 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 '<br />POPRAVEK:';
|
|
//var_dump($row);
|
|
echo 'OK!<br /><br />';
|
|
}
|
|
}
|
|
|
|
// 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 '<br />POPRAVEK:';
|
|
//var_dump($row);
|
|
echo 'OK!<br /><br />';
|
|
}
|
|
}
|
|
|
|
|
|
// Posiljanje pdf-jev z rezultati profesorjem
|
|
public function displayEmailing(){
|
|
global $lang;
|
|
global $site_url;
|
|
|
|
$type = (isset($_POST['type'])) ? $_POST['type'] : 0;
|
|
|
|
echo '<fieldset><legend>Pošiljanje rezultatov</legend>';
|
|
|
|
echo '<br />';
|
|
|
|
echo '<form action="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=ul_evalvation&t=emailing&s=upload_emailing_csv" method="post" enctype="multipart/form-data">';
|
|
|
|
|
|
echo '<div class="ul_settings_holder" style="margin:0 0 20px 10px; padding:10px 10px 20px; width:700px; background-color:#eff2f7;">';
|
|
|
|
// Nastavimo tip izpisa
|
|
echo '<p>';
|
|
echo '<span class="nastavitveSpan2">Tip pošiljanja: </span>';
|
|
echo '<input type="radio" name="type" id="type_0" value="0" '.($type==0 ? ' checked="checked"':'').' onClick="showEmailingData(); return false;"> <label for="type_0">Izvajalci</label></input>';
|
|
echo ' <input type="radio" name="type" id="type_1" value="1" '.($type==1 ? ' checked="checked"':'').' onClick="showEmailingData(); return false;"> <label for="type_1">Predmeti</label></input>';
|
|
echo '</p>';
|
|
|
|
|
|
// Gumb za posiljanje pdf-jev
|
|
echo '<span class="floatRight spaceLeft"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="'.$site_url.'admin/survey/modules/Evalvacija/PDF_mailer/mailer.php?type='.$type.'" target="_blank">';
|
|
echo 'Pošlji poročila';
|
|
echo '</a></div></span>';
|
|
|
|
// Gumb za praznjenje tabele
|
|
echo '<span class="floatRight spaceLeft"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="deleteEmailingData(); return false;">';
|
|
echo '<span>Pobriši tabelo</span>';
|
|
echo '</a></div></span>';
|
|
|
|
echo '<br />';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Izpis trenutne izbrane tabele
|
|
echo '<div style="margin: 20px;">';
|
|
echo 'Navodila za CSV datoteko: <ul>';
|
|
echo ' <li>UTF 8 encoding (če bo ANSI ne bodo delali čšž-ji)!</li>';
|
|
echo ' <li>Brez naslovne vrstice</li>';
|
|
echo ' <li>Vsi stolpci se morajo ujemati po vrstnem redu in številu</li>';
|
|
echo ' <li>Podatki so ločeni z vejico (in ne podpičji!)</li>';
|
|
echo '</ul>';
|
|
echo 'Dodaj podatke (CSV - polja ločena z vejico): <input type="file" name="import_csv" onchange="submit();" />';
|
|
echo '</div>';
|
|
|
|
|
|
// 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 '<table style="border-spacing:0px; border:2px black solid; table-layout:fixed; border-collapse:collapse; margin:10px 20px;">';
|
|
|
|
echo '<tr>';
|
|
while($rowH = mysqli_fetch_assoc($sqlH)){
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">'.$rowH['Field'].'</td>';
|
|
}
|
|
echo '</tr>';
|
|
|
|
// Naslovna vrstca za emailing predmetov
|
|
if($type == 1){
|
|
echo '<tr>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">CNT1</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">CNT2</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">ID Profesorja??</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Predmet</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v5</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Ime</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Attachment</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Email</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v9</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v10</td>';
|
|
echo '</tr>';
|
|
}
|
|
// Naslovna vrstca za emailing profesorjem
|
|
else{
|
|
echo '<tr>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">CNT1</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">CNT2</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">ID Profesorja</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Ime</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Attachment</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">Email</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v7</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v8</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v9</td>';
|
|
echo '<td style="border:2px black solid; padding:2px 5px; font-weight:600;">v10</td>';
|
|
echo '</tr>';
|
|
}
|
|
|
|
while($row = mysqli_fetch_assoc($sql)){
|
|
echo '<tr>';
|
|
foreach($row as $val){
|
|
echo '<td style="border:1px solid black; padding:2px 5px;">'.$val.'</td>';
|
|
}
|
|
echo '</tr>';
|
|
}
|
|
|
|
echo '</table>';
|
|
|
|
|
|
echo '</form>';
|
|
|
|
echo '</fieldset>';
|
|
}
|
|
|
|
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 '<span class="red bold">Število stolpcev se ne ujema!</span>';
|
|
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 '<div class="divPopUp_top">Priprava PDF izvozov</div>';
|
|
|
|
|
|
echo '<div class="divPopUp_content">';
|
|
|
|
// 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! <br />';
|
|
$allow_export = false;
|
|
}
|
|
if($this->exportSettings['anketa_pred'] <= 0){
|
|
$error .= 'Fakulteta nima nastavljene ankete, ki se je izvajala PRED izpitom!<br />';
|
|
$allow_export = false;
|
|
}
|
|
if($this->exportSettings['anketa_po'] <= 0){
|
|
$error .= 'Fakulteta nima nastavljene ankete, ki se je izvajala PO izpitu!<br />';
|
|
$allow_export = false;
|
|
}
|
|
|
|
// Vse je izbrano ok - lahko se pozene priprava pdf-jev
|
|
if($allow_export){
|
|
echo '<p>Izvedla se bo priprava pdf poročil po ';
|
|
|
|
if($this->exportSettings['type'] == 1)
|
|
echo '<span class="bold">profesorjih</span> ';
|
|
if($this->exportSettings['type'] == 2)
|
|
echo '<span class="bold">programih ';
|
|
if($this->exportSettings['type'] == 3)
|
|
echo '<span class="bold">fakulteti ';
|
|
|
|
echo 'za fakulteto <span class="bold">'.$this->fakultete[$this->exportSettings['fakulteta']]['kratica'].'.</p>';
|
|
|
|
SurveyInfo::getInstance()->SurveyInit($this->exportSettings['anketa_pred']);
|
|
$row = SurveyInfo::getInstance()->getSurveyRow();
|
|
echo '<p>Anketa, ki se je izvajala PRED izpitu:<br /><span class="bold">'.$row['naslov'].' (ID '.$this->exportSettings['anketa_pred'].')</span></p>';
|
|
|
|
SurveyInfo::getInstance()->SurveyInit($this->exportSettings['anketa_po']);
|
|
$row = SurveyInfo::getInstance()->getSurveyRow();
|
|
echo '<p>Anketa, ki se je izvajala PO izpitu:<br /><span class="bold">'.$row['naslov'].' (ID '.$this->exportSettings['anketa_po'].')</span></p>';
|
|
|
|
echo '<p>Generiranje lahko traja tudi do <span class="bold">20 minut</span>! Ali ste prepričani da želite nadaljevati?</p>';
|
|
|
|
//var_dump($this->exportSettings);
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Gumb za izvoz
|
|
echo '<div style="position:absolute; bottom:15px; right:10px;">';
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="executeReport(); return false;">';
|
|
echo '<span>Potrdi</span>';
|
|
echo '</a></div></span>';
|
|
|
|
}
|
|
else{
|
|
echo '<p>Generiranje se ne more izvesti, ker niso izbrane vse ustrezne nastavitve.</p>';
|
|
echo '<p><span class="red bold">'.$error.'</span></p>';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
echo '<div style="position:absolute; bottom:15px; right:10px;">';
|
|
}
|
|
|
|
// Gumb za preklic
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="closeReportPopup(); return false;">';
|
|
echo '<span>Prekliči</span>';
|
|
echo '</a></div></span>';
|
|
echo '</div>';
|
|
}
|
|
|
|
// 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 '<div class="divPopUp_top">Nalaganje poročil na GC</div>';
|
|
|
|
echo '<div class="divPopUp_content">';
|
|
if($id > 0 && $fakulteta > 0){
|
|
echo '<p>Izvedlo se bo nalaganje pdf poročil na GC po ';
|
|
|
|
if($this->exportSettings['type'] == 1)
|
|
echo '<span class="bold">profesorjih</span> ';
|
|
if($this->exportSettings['type'] == 2)
|
|
echo '<span class="bold">programih ';
|
|
if($this->exportSettings['type'] == 3)
|
|
echo '<span class="bold">fakulteti ';
|
|
|
|
echo 'za fakulteto <span class="bold">'.$this->fakultete[$fakulteta]['kratica'].'</span>, ki so bila zgenerirana <span class="bold">'.date('d.m.Y H:i:s', strtotime($date)).'</span>.</p>';
|
|
|
|
echo '<p>Ali ste prepričani da želite nadaljevati?</p>';
|
|
}
|
|
else{
|
|
echo '<p>Manjkajo parametri dokumenta!</p>';
|
|
}
|
|
echo '</div>';
|
|
|
|
|
|
echo '<div style="position:absolute; bottom:15px; right:10px;">';
|
|
|
|
// Gumb za izvoz
|
|
if($id > 0 && $fakulteta > 0){
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="executeUploadGC(\''.$id.'\'); return false;">';
|
|
echo '<span>Potrdi</span>';
|
|
echo '</a></div></span>';
|
|
}
|
|
|
|
// Gumb za preklic
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="closeReportPopup(); return false;">';
|
|
echo '<span>Prekliči</span>';
|
|
echo '</a></div></span>';
|
|
|
|
echo '</div>';
|
|
}
|
|
|
|
// 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...<br />';
|
|
$GC = new GC();
|
|
echo 'Ustvarjen!<br /><br />';
|
|
|
|
// Unzipamo poročila in loopamo po njih
|
|
echo 'Začnemo z uploadom...<br />';
|
|
$GC->executeUpload($reports_id);
|
|
echo 'Upload končan!<br /><br />';
|
|
}
|
|
|
|
|
|
// 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 '<div class="divPopUp_top">Uvoz podatkov</div>';
|
|
|
|
|
|
echo '<div class="divPopUp_content">';
|
|
|
|
echo '<p>Izvedel se bo uvoz ';
|
|
|
|
if($this->importSettings['type'] == 1)
|
|
echo '<span class="bold">PROFESORJEV S PREDMETI</span> ';
|
|
elseif($this->importSettings['type'] == 2)
|
|
echo '<span class="bold">ŠTUDENTOV</span> ';
|
|
elseif($this->importSettings['type'] == 3)
|
|
echo '<span class="bold">PROGRAMOV</span> ';
|
|
elseif($this->importSettings['type'] == 4)
|
|
echo '<span class="bold">PODIPLOMSKIH ŠTUDENTOV</span> ';
|
|
|
|
echo 'za fakulteto <span class="bold">'.$this->fakultete[$this->importSettings['fakulteta']]['kratica'].'.</p>';
|
|
|
|
//var_dump($this->exportSettings);
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Gumb za uvoz
|
|
echo '<div style="position:absolute; bottom:15px; right:10px;">';
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="document.upload_csv_form.submit(); return false;">';
|
|
echo '<span>Potrdi</span>';
|
|
echo '</a></div></span>';
|
|
|
|
// Gumb za preklic
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="closeImportPopup(); return false;">';
|
|
echo '<span>Prekliči</span>';
|
|
echo '</a></div></span>';
|
|
echo '</div>';
|
|
}
|
|
|
|
// 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 '<div class="divPopUp_top">Brisanje podatkov</div>';
|
|
|
|
|
|
echo '<div class="divPopUp_content">';
|
|
|
|
echo '<p>Pobrisali boste tabelo ';
|
|
|
|
if($this->importSettings['type'] == 1)
|
|
echo '<span class="bold">PROFESORJEV S PREDMETI</span> ';
|
|
elseif($this->importSettings['type'] == 2)
|
|
echo '<span class="bold">ŠTUDENTOV</span> ';
|
|
elseif($this->importSettings['type'] == 3)
|
|
echo '<span class="bold">PROGRAMOV</span> ';
|
|
elseif($this->importSettings['type'] == 4)
|
|
echo '<span class="bold">PODIPLOMSKIH ŠTUDENTOV</span> ';
|
|
|
|
echo 'za fakulteto <span class="bold">'.$this->fakultete[$this->importSettings['fakulteta']]['kratica'].'.</p>';
|
|
|
|
echo '<p class="bold">Ali ste prepričani da želite nadaljevati?</p>';
|
|
|
|
//var_dump($this->exportSettings);
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Gumb za brisanje
|
|
echo '<div style="position:absolute; bottom:15px; right:10px;">';
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onClick="executeImportDelete(); return false;">';
|
|
echo '<span>Potrdi</span>';
|
|
echo '</a></div></span>';
|
|
|
|
// Gumb za preklic
|
|
echo '<span class="floatRight spaceLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="closeImportPopup(); return false;">';
|
|
echo '<span>Prekliči</span>';
|
|
echo '</a></div></span>';
|
|
echo '</div>';
|
|
}
|
|
|
|
// 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();
|
|
}
|
|
}
|
|
} |