function nastavnik_unos_ocjene() { global $userid, $user_studentska, $user_siteadmin; // Parametri $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // Naziv predmeta $q10 = myquery("select naziv from predmet where id={$predmet}"); if (mysql_num_rows($q10) < 1) { biguglyerror("Nepoznat predmet"); zamgerlog("ilegalan predmet {$predmet}", 3); //nivo 3: greska zamgerlog2("nepoznat predmet", $predmet); return; } $predmet_naziv = mysql_result($q10, 0, 0); $kolokvij = false; $q12 = myquery("SELECT tippredmeta FROM akademska_godina_predmet WHERE akademska_godina={$ag} AND predmet={$predmet}"); if (mysql_num_rows($q12) > 0 && mysql_result($q12, 0, 0) == 2000) { // FIXME: Ovo ne treba biti hardcodirani tip predmeta nego jedan od parametara za tip predmeta $kolokvij = true; } // Da li korisnik ima pravo ući u modul? if (!$user_siteadmin && !$user_studentska) { $q10 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q10) < 1 || mysql_result($q10, 0, 0) != "nastavnik") { zamgerlog("nastavnik/ispiti privilegije (predmet pp{$predmet})", 3); zamgerlog2("nije nastavnik na predmetu", $predmet, $ag); biguglyerror("Nemate pravo pristupa ovoj opciji"); return; } } ?> <p> </p> <p><h3><?php echo $predmet_naziv; ?> - Konačna ocjena (pojedinačni unos)</h3></p> <?php print ajah_box(); ?> <SCRIPT language="JavaScript"> function dobio_focus(element) { element.style.borderColor='red'; if (element.value == "/") element.value=""; } function izgubio_focus(element) { element.style.borderColor='black'; var id = element.id; if (element.value == "") element.value="/"; var vrijednost = element.value; if (vrijednost!=origval[id]) { if (id.substr(0,6) == "ocjena") { var value = parseInt(element.id.substr(6)); ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja=ko-"+value+"-<?php echo $predmet; ?> -<?php echo $ag; ?> &vrijednost="+vrijednost+"","document.getElementById('ocjena'+"+id+").focus()"); } else if (id.substr(0,5) == "datum") { var value = parseInt(element.id.substr(5)); ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja=kodatum-"+value+"-<?php echo $predmet; ?> -<?php echo $ag; ?> &vrijednost="+vrijednost+"","document.getElementById('datum'+"+id+").focus()"); element.style.backgroundColor="#FFFFFF"; } origval[id]=vrijednost; } } function ispunio_uslove(element) { var id = element.id; var vrijednost = element.checked; if (vrijednost!=origval[id]) { var oc_vrijednost; if (vrijednost) oc_vrijednost=11; else oc_vrijednost='/'; var value = parseInt(element.id.substr(6)); ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja=ko-"+value+"-<?php echo $predmet; ?> -<?php echo $ag; ?> &vrijednost="+oc_vrijednost+"","document.getElementById('ocjena'+"+id+").focus()"); } } function enterhack(element,e) { if(e.keyCode==13) { element.blur(); // document.getElementById('ocjena'+gdje).focus(); // document.getElementById('ocjena'+gdje).select(); document.getElementById(nextjump[element.id]).focus(); document.getElementById(nextjump[element.id]).select(); } } var origval=new Array(); var nextjump=new Array(); </SCRIPT> <table border="1" bordercolordark="grey" cellspacing="0"> <tr> <td><b>R. br.</b></td><td width="300"><b>Prezime i ime</b></td> <td><b>Broj indeksa</b></td> <td><b><?php if ($kolokvij) { ?> Ispunio/la obaveze<?php } else { ?> Ocjena<?php } ?> </b></td> <td><b>Datum</b></td> </tr> <?php $upit = "SELECT o.id, o.ime, o.prezime, o.brindexa from osoba as o, student_predmet as sp, ponudakursa as pk where sp.student=o.id and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} order by o.prezime, o.ime"; $q520 = myquery($upit); $id = 0; $rbr = 0; while ($r520 = mysql_fetch_row($q520)) { $rbr++; if ($id != 0) { ?> <SCRIPT language="JavaScript"> nextjump['ocjena<?php echo $id; ?> ']="ocjena<?php echo $r520[0]; ?> ";</SCRIPT> <SCRIPT language="JavaScript"> nextjump['datum<?php echo $id; ?> ']="datum<?php echo $r520[0]; ?> ";</SCRIPT> <?php } // print "$r520[0])\"></tr>\n"; $id = $r520[0]; $q530 = myquery("select ocjena, UNIX_TIMESTAMP(datum_u_indeksu), datum_provjeren from konacna_ocjena where student={$r520['0']} and predmet={$predmet}"); if (mysql_num_rows($q530) > 0) { $ocjena = mysql_result($q530, 0, 0); $datum_u_indeksu = date("d. m. Y.", mysql_result($q530, 0, 1)); $datum_provjeren = mysql_result($q530, 0, 2); // $datum_u_indeksu = mysql_result($q530,0,1); } else { $ocjena = "/"; $datum_u_indeksu = date("d. m. Y.", time()); $datum_provjeren = 1; } if ($kolokvij) { if ($ocjena == 11) { $ispunio_uslove = "CHECKED"; $ocjena = "true"; } else { $ispunio_uslove = ""; $ocjena = "false"; } } ?> <SCRIPT language="JavaScript"> origval['ocjena<?php echo $id; ?> ']="<?php echo $ocjena; ?> ";</SCRIPT> <SCRIPT language="JavaScript"> origval['datum<?php echo $id; ?> ']="<?php echo $datum_u_indeksu; ?> ";</SCRIPT> <tr> <td><?php echo $rbr; ?> </td> <td><?php echo $r520[2]; ?> <?php echo $r520[1]; ?> </td> <td><?php echo $r520[3]; ?> </td> <td align="center"> <?php if ($kolokvij) { ?> <input type="checkbox" id="ocjena<?php echo $id; ?> " onchange="ispunio_uslove(this)" <?php echo $ispunio_uslove; ?> ><?php } else { ?> <input type="text" id="ocjena<?php echo $id; ?> " size="2" value="<?php echo $ocjena; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="enterhack(this,event)"><?php } ?> </td> <td align="center"><input type="text" id="datum<?php echo $id; ?> " size="8" value="<?php echo $datum_u_indeksu; ?> " style="border:1px black solid<?php if ($datum_provjeren != 1) { print "; background-color: ffaaaa"; } ?> " onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="enterhack(this,event)"></td> </tr> <?php } ?> </table> <?php }
function studentska_prijemni() { global $_lv_; // Default akcija je unos novog studenta if ($_REQUEST['akcija'] == "") { $_REQUEST['akcija'] = "unos"; } ?> <center> <table border="0" width="100%"> <?php // ODREDJIVANJE TERMINA I NASLOVA $termin = intval($_REQUEST['termin']); if ($termin == 0) { // Daj najskoriji ispit $q10 = myquery("select pt.id, ag.naziv, UNIX_TIMESTAMP(pt.datum), pt.ciklus_studija from prijemni_termin as pt, akademska_godina as ag where pt.akademska_godina=ag.id order by pt.datum desc limit 1"); if (mysql_num_rows($q10) < 1) { $_REQUEST['akcija'] = "novi_ispit"; $termin = 0; } else { $termin = mysql_result($q10, 0, 0); } } else { $q10 = myquery("select pt.id, ag.naziv, UNIX_TIMESTAMP(pt.datum), pt.ciklus_studija from prijemni_termin as pt, akademska_godina as ag where pt.id={$termin} and pt.akademska_godina=ag.id"); if (mysql_num_rows($q10) < 1) { niceerror("Nepostojeći termin."); zamgerlog("nepostojeci termin {$termin}", 3); zamgerlog2("nepostojeci termin prijemnog ispita", $termin); return; } } if (mysql_num_rows($q10) < 1) { // Ovo će se desiti samo ako nije kreiran niti jedan termin $datum = "/"; $ciklus_studija = 1; } else { $datum = date("d. m. Y.", mysql_result($q10, 0, 2)); $ciklus_studija = mysql_result($q10, 0, 3); $naziv = " za " . mysql_result($q10, 0, 1) . " akademsku godinu (" . mysql_result($q10, 0, 3) . " ciklus studija), {$datum}"; } // MENI S LIJEVE STRANE // (ne prikazuje se ako je akcija "pregled") if ($_REQUEST['akcija'] != "pregled") { ?> <tr><td valign="top" width="220"> <!-- Termini prijemnog ispita --> * <a href="?sta=studentska/prijemni&akcija=novi_ispit">Novi prijemni ispit</a><br /> * <a href="?sta=studentska/prijemni&akcija=arhiva_ispita">Arhiva prijemnih ispita</a><br /><br /><br /> <!-- Tabela za linkove koji otvaraju ostale stranice vezane za modul --> <?php echo $datum; ?> :<br /> <table bgcolor="" style="border:1px;border-style:solid;border-color:black"> <tr> <td align="left"><a href="?sta=studentska/prijemni&akcija=unos&termin=<?php echo $termin; ?> ">Unos kandidata</a></td> </tr> <tr> </tr> <tr> <td align="left"><a href="?sta=studentska/prijemni&akcija=brzi_unos&termin=<?php echo $termin; ?> ">Brzi unos</a></td> </tr> <tr> </tr> <tr> <td align="left"><a href="?sta=studentska/prijemni&akcija=pregled&termin=<?php echo $termin; ?> ">Tabelarni pregled kandidata</a></td> </tr> <tr> </tr> <tr> <td><a href="?sta=studentska/prijemni&akcija=prijemni&termin=<?php echo $termin; ?> ">Unos bodova sa prijemnog ispita</a></td> </tr> <tr> </tr> <tr> <td align="left"><a href="?sta=studentska/prijemni&akcija=prijemni_sifre&termin=<?php echo $termin; ?> ">Unos bodova po šiframa</a></td> </tr> <tr> </tr> <tr> <td><a href="?sta=studentska/prijemni&akcija=upis_kriterij&termin=<?php echo $termin; ?> ">Kriteriji za upis</a></td> </tr> <tr> </tr> <tr> <td><a href="?sta=studentska/prijemni&akcija=spisak&termin=<?php echo $termin; ?> ">Spisak kandidata</a></td> </tr> <tr> </tr> <tr> <td><a href="?sta=izvjestaj/prijemni_top10posto&termin=<?php echo $termin; ?> ">Najboljih 10% po školama</a></td> </tr> <tr> </tr> <tr> <td><a href="?sta=studentska/prijemni&akcija=rang_liste&termin=<?php echo $termin; ?> ">Rang liste kandidata</a></td> </tr> </table> </td><td width="10"> </td> <?php } // if ($_REQUEST['akcija'] != "pregled" ) // NASLOV ?> <td valign="top"> <h1>Prijemni ispit</h1> <?php // NOVI PRIJEMNI ISPIT if ($_POST['akcija'] == "novi_ispit_potvrda" && check_csrf_token()) { $ciklus = intval($_REQUEST['ciklus']); if ($ciklus != 1 && $ciklus != 2 && $ciklus != 3) { biguglyerror("Neispravan ciklus studija"); return; } $ag = intval($_REQUEST['_lv_column_akademska_godina']); if (preg_match("/(\\d+).*?(\\d+).*?(\\d+)/", $_REQUEST['datum'], $matches)) { $dan = $matches[1]; $mjesec = $matches[2]; $godina = $matches[3]; if ($godina < 100) { if ($godina < 50) { $godina += 2000; } else { $godina += 1900; } } if ($godina < 1000) { if ($godina < 900) { $godina += 2000; } else { $godina += 1000; } } } else { biguglyerror("Neispravan datum"); return; } $q20 = myquery("insert into prijemni_termin set akademska_godina={$ag}, datum='{$godina}-{$mjesec}-{$dan}', ciklus_studija={$ciklus}"); zamgerlog("kreiran novi termin za prijemni ispit", 4); // 4 = audit zamgerlog2("kreiran novi termin za prijemni ispit", mysql_insert_id()); ?> <p>Novi termin kreiran. <a href="?sta=studentska/prijemni">Kliknite ovdje za nastavak</a></p> </td></tr></table></center> <?php return; // Necemo da se ispise naziv } if ($_REQUEST['akcija'] == "novi_ispit") { unset($_REQUEST['akcija']); ?> <h2>Novi termin prijemnog ispita:</h2> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="novi_ispit_potvrda"> <table border="0"><tr><td> Ciklus studija:</td><td><select name="ciklus"><option value="1">Prvi</option><option value="2">Drugi</option><option value="3">Treći</option></select> </td></tr><tr><td> Akademska godina:</td><td><?php echo db_dropdown("akademska_godina"); ?> </td></tr><tr><td> Datum održavanja ispita:</td><td><input type="text" name="datum" size="20"> </td></tr><tr><td> </td><td> <input type="submit" value=" Kreiraj "> </td></tr></table> </form> <p>Za povratak, kliknite na link "Unos kandidata" sa lijeve strane.</p> </td></tr></table></center> <?php return; // Necemo da se ispise naziv } // ARHIVA PRIJEMNIH ISPITA if ($_REQUEST['akcija'] == "arhiva_ispita") { ?> <p>Do sada održani prijemni ispiti (po datumu ispita):</p> <ul> <?php $q30 = myquery("select pt.id, ag.naziv, UNIX_TIMESTAMP(pt.datum), pt.ciklus_studija from prijemni_termin as pt, akademska_godina as ag where pt.akademska_godina=ag.id order by pt.datum"); while ($r30 = mysql_fetch_row($q30)) { $datum = date("d. m. Y.", $r30[2]); ?> <li><a href="?sta=studentska/prijemni&termin=<?php echo $r30[0]; ?> ">(<?php echo $datum; ?> ) Akademska <?php echo $r30[1]; ?> godina, <?php echo $r30[3]; ?> . ciklus studija</a></li> <?php } ?> </ul> </td></tr></table></center> <?php return; // Necemo da se ispise naziv } // ISPIS NAZIVA ODABRANOG TERMINA ISPITA ?> <p><?php echo $naziv; ?> </p> <?php // BRZI UNOS SA AUTOMATSKOM OBRADOM if ($_REQUEST['akcija'] == "promijeni_kod") { $osoba = intval($_REQUEST['osoba']); do { $sifra = chr(ord('A') + rand(0, 7)) . chr(ord('A') + rand(0, 7)) . chr(ord('A') + rand(0, 7)) . rand(1, 8) . rand(1, 8); $q3015 = myquery("select count(*) from prijemni_obrazac where sifra='{$sifra}' and prijemni_termin={$termin}"); } while (mysql_result($q3015, 0, 0) > 0); $q3040 = myquery("update prijemni_obrazac set sifra='{$sifra}' where prijemni_termin={$termin} and osoba={$osoba}"); print "Kod promijenjen"; return; } if ($_REQUEST['akcija'] == "prijemni_sifre_submit" && check_csrf_token()) { if ($_POST['fakatradi'] != 1) { $ispis = 1; } else { $ispis = 0; } $redovi = explode("\n", $_POST['massinput']); $separator = intval($_REQUEST['separator']); if ($separator == 1) { $sepchar = ','; } else { $sepchar = "\t"; } $kolona = 2; unset($_REQUEST['fakatradi']); if ($ispis) { print genform("POST"); ?> <input type="hidden" name="fakatradi" value="1"> <?php } $sifra_izasao = array(); $q6 = myquery("select sifra from prijemni_obrazac where prijemni_termin={$termin}"); while ($r6 = mysql_fetch_row($q6)) { $sifra_izasao[$r6[0]] = "nije"; } foreach ($redovi as $red) { $red = trim($red); if (strlen($red) < 2) { continue; } // prazan red // popravljamo nbsp Unicode karakter $red = str_replace("¡", " ", $red); $red = str_replace(" ", " ", $red); $red = my_escape($red); $nred = explode($sepchar, $red, $kolona); $sifra = $nred[0]; $bodovi = floatval(str_replace(",", ".", $nred[1])); // Da li korisnik postoji u bazi? $q10 = myquery("select osoba from prijemni_obrazac where sifra='{$sifra}' and prijemni_termin={$termin}"); if (mysql_num_rows($q10) < 1) { if ($ispis) { print "<font color=\"red\">Nepoznata šifra {$sifra}</font><br>\n"; } $greska = 1; continue; } else { $osoba = mysql_result($q10, 0, 0); $q20 = myquery("select izasao from prijemni_prijava where prijemni_termin={$termin} and osoba={$osoba}"); /*if (mysql_result($q20,0,0)==1) { if ($ispis) { print "<font color=\"red\">Kandidatu pod šifrom $sifra je već evidentiran izlazak na prijemni.</font><br>\n"; } $greska=1; continue; }*/ if ($ispis) { print "-- Upisujem {$bodovi} bodova za kandidata pod šifrom {$sifra}<br>\n"; } else { $q20 = myquery("update prijemni_prijava set izasao=1, rezultat={$bodovi} where prijemni_termin={$termin} and osoba={$osoba}"); } $sifra_izasao[$sifra] = "jeste"; } } // Potvrda i Nazad if ($ispis) { foreach ($sifra_izasao as $sifra => $izasao) { if ($izasao == "nije") { print "Nije izasao: {$sifra}<br />\n"; } } print '<input type="submit" name="nazad" value=" Nazad "> '; if ($greska == 0) { print '<input type="submit" value=" Potvrda ">'; } print "</form>"; return; } else { ?> Upisani rezultati prijemnog. <?php } } if ($_REQUEST['akcija'] == "prijemni_sifre") { ?> <p><hr/></p><p><b>Masovni unos rezultata prijemnog ispita po šiframa</b><br/> <?php echo genform("POST"); ?> <input type="hidden" name="fakatradi" value="0"> <input type="hidden" name="akcija" value="prijemni_sifre_submit"> <input type="hidden" name="nazad" value=""> <input type="hidden" name="visestruki" value="1"> <input type="hidden" name="duplikati" value="0"> <input type="hidden" name="brpodataka" value="1"> <textarea name="massinput" cols="50" rows="10"><?php if (strlen($_POST['nazad']) > 1) { print $_POST['massinput']; } ?> </textarea><br/> <br/>Separator: <select name="separator" class="default"> <option value="0" <?php if ($separator == 0) { print "SELECTED"; } ?> >Tab</option> <option value="1" <?php if ($separator == 1) { print "SELECTED"; } ?> >Zarez</option></select><br/><br/> <br/><br/> <input type="submit" value=" Dodaj "> </form></p><?php } if ($_REQUEST['akcija'] == "brzi_unos") { $bojaime = $bojaimerod = $bojaprezime = $bojajmbg = "#FFFF00"; $rjezik = 'bs'; if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { $rime = my_escape($_REQUEST['ime']); $rprezime = my_escape($_REQUEST['prezime']); $rimeroditelja = my_escape($_REQUEST['imeroditelja']); $rjmbg = my_escape($_REQUEST['jmbg']); $rjezik = my_escape($_REQUEST['jezik']); if (!preg_match("/\\w/", $rime)) { niceerror("Ime nije ispravno"); $greska = 1; $greskaime = 1; $bojaime = "#FF0000"; } if (!preg_match("/\\w/", $rprezime)) { niceerror("Prezime nije ispravno"); $greska = 1; $greskaprezme = 1; $bojaprezime = "#FF0000"; } if (!preg_match("/\\w/", $rimeroditelja)) { niceerror("Ime roditelja nije ispravno"); $greska = 1; $greskaime = 1; $bojaimerod = "#FF0000"; } if (testjmbg($rjmbg) != "") { niceerror("JMBG neispravan: " . testjmbg($rjmbg)); $greska = 1; $greskajmbg = 1; $bojajmbg = "#FF0000"; } $q2995 = myquery("select count(*) from osoba where jmbg='{$rjmbg}'"); if (mysql_result($q2995, 0, 0) > 0) { niceerror("Osoba sa ovim JMBGom već postoji u bazi"); print "<p>Moguće je da sljedeće:<br />\n\t\t\t1. Pogrešno unesen JMBG. Molimo da ga popravite ispod.<br />\n\t\t\t2. Moguće je da ste ovog kandidata već unijeli! Koristite tabelarni pregled da biste ušli u dosje kandidata, a zatim kliknite na link <i>Odštampaj obrazac</i> koji se nalazi odmah ispod broja dosjea.<br />\n\t\t\t3. Ako se isti kandidat ponovo prijavljuje za prijemni ispit, kliknite na link <i>Unos kandidata</i> a zatim koristite pretragu po broju JMBGa kako biste automatski povukli podatke ovog kandidata i generisali novi obrazac za njega.</p>"; $greska = 1; $greskajmbg = 1; $bojajmbg = "#FF0000"; } if ($greska == 0) { $q3000 = myquery("select broj_dosjea from prijemni_prijava where prijemni_termin={$termin} order by broj_dosjea desc limit 1"); if (mysql_num_rows($q3000) > 0) { $broj_dosjea = mysql_result($q3000, 0, 0) + 1; } else { $broj_dosjea = 1; } $q3010 = myquery("select id from osoba order by id desc limit 1"); $osoba = mysql_result($q3010, 0, 0) + 1; // Određivanje šifre do { $sifra = chr(ord('A') + rand(0, 7)) . chr(ord('A') + rand(0, 7)) . chr(ord('A') + rand(0, 7)) . rand(1, 8) . rand(1, 8); $q3015 = myquery("select count(*) from prijemni_obrazac where sifra='{$sifra}' and prijemni_termin={$termin}"); } while (mysql_result($q3015, 0, 0) > 0); // Određivanje datuma rođenja iz JMBGa $datumrod = mktime(0, 0, 0, substr($rjmbg, 2, 2), substr($rmjbg, 0, 2), substr($rjmbg, 4, 3) + 1000); $q3020 = myquery("insert into osoba set id={$osoba}, ime='{$rime}', prezime='{$rprezime}', imeoca='{$rimeroditelja}', jmbg='{$rjmbg}', datum_rodjenja=FROM_UNIXTIME({$datumrod})"); $q3030 = myquery("insert into prijemni_prijava set prijemni_termin={$termin}, osoba={$osoba}, broj_dosjea={$broj_dosjea}, izasao=0, rezultat=0"); $q3040 = myquery("insert into prijemni_obrazac set prijemni_termin={$termin}, osoba={$osoba}, sifra='{$sifra}', jezik='{$rjezik}'"); if ($ciklus_studija == 1) { $q3050 = myquery("select count(*) from uspjeh_u_srednjoj where osoba={$osoba}"); if (mysql_result($q3050, 0, 0) == 0) { // Kreiramo blank zapis u tabeli uspjeh u srednjoj kako bi kandidat bio prikazan u tabeli, a naknadno se može popuniti podacima $q3060 = myquery("insert into uspjeh_u_srednjoj set osoba={$osoba}"); } } else { $q3050 = myquery("select count(*) from prosliciklus_uspjeh where osoba={$osoba}"); if (mysql_result($q3050, 0, 0) == 0) { // Kreiramo blank zapis u tabeli uspjeh u srednjoj kako bi kandidat bio prikazan u tabeli, a naknadno se može popuniti podacima $q3060 = myquery("insert into prosliciklus_uspjeh set osoba={$osoba}"); } } zamgerlog("brzo unesen kandidat {$rime} {$rprezime} za termin {$termin}", 2); zamgerlog2("brzo unesen kandidat za prijemni", $termin, 0, 0, "{$rime} {$rprezime}"); ?> <table border="1" cellspacing="0" cellpadding="3"><tr><td> <table border="0"> <tr><td>Broj dosjea:</td><td><b><?php echo $broj_dosjea; ?> </b></td></tr> <tr><td>Šifra za prijemni ispit:</td><td><b><?php echo $sifra; ?> </b></td></tr> <tr><td>Ime:</td><td><b><?php echo $rime; ?> </b></td></tr> <tr><td>Prezime:</td><td><b><?php echo $rprezime; ?> </b></td></tr> <tr><td>Ime roditelja:</td><td><b><?php echo $rimeroditelja; ?> </b></td></tr> <tr><td>JMBG:</td><td><b><?php echo $rjmbg; ?> </b></td></tr> </table> </td></tr></table> <p><a href="?sta=izvjestaj/prijemni_brzi_unos&termin=<?php echo $termin; ?> &osoba=<?php echo $osoba; ?> " target="_new">Odštampaj obrazac</a></p> <p><a href="?sta=studentska/prijemni&termin=<?php echo $termin; ?> &akcija=brzi_unos">Unos sljedećeg studenta</a></p> <?php return; } } ?> <script language="JavaScript"> // Kada korisnik ukuca nesto u obavezno polje, ono prestaje biti zuto (postaje bijelo) function odzuti(nesto) { nesto.style.backgroundColor = '#FFFFFF'; } // Predji na sljedece polje pritiskom na dugme enter function enterhack(e,gdje) { if(e.keyCode==13) { document.getElementById(gdje).focus(); return false; } } function provjeri(varijablu) { var nesto = document.getElementById(varijablu); if(nesto.value=="") { alert("Niste unijeli "+varijablu); nesto.focus(); self.scrollTo(nesto.offsetLeft,nesto.offsetTop); return false; } return true; } function provjeri_sve() { if (!provjeri('ime')) return false; if (!provjeri('imeroditelja')) return false; if (!provjeri('prezime')) return false; if (!provjeri('jmbg')) return false; document.getElementById('slanje').disabled = true; document.getElementsByName('brzaforma')[0].submit(); return true; } </script> <?php echo genform("POST", "brzaforma"); ?> <input type="hidden" name="subakcija" value="potvrda"> <h2>Brzi unos kandidata za prijemni ispit</h2> <table border="0"> <tr> <td>Ime:</td><td><input type="text" name="ime" id="ime" size="20" style="background-color:<?php echo $bojaime; ?> " oninput="odzuti(this)" autocomplete="off" onkeypress="return enterhack(event,'prezimeoca')" value="<?php echo $rime; ?> " /></td> </tr> <tr> <td>Ime roditelja:</td><td><input type="text" name="imeroditelja" id="imeroditelja" size="20" style="background-color:<?php echo $bojaimerod; ?> " oninput="odzuti(this)" autocomplete="off" onkeypress="return enterhack(event,'prezimeoca')" value="<?php echo $rimeroditelja; ?> " /></td> </tr> <tr> <td>Prezime:</td><td><input type="text" name="prezime" id="prezime" size="20" style="background-color:<?php echo $bojaprezime; ?> " oninput="odzuti(this)" autocomplete="off" onkeypress="return enterhack(event,'prezimeoca')" value="<?php echo $rprezime; ?> " /></td> </tr> <tr> <td>JMBG:</td><td><input type="text" name="jmbg" id="jmbg" size="20" style="background-color:<?php echo $bojajmbg; ?> " oninput="odzuti(this)" autocomplete="off" onkeypress="return enterhack(event,'prezimeoca')" value="<?php echo $rjmbg; ?> " /></td> </tr> <tr> <td>Jezik:</td><td> <select name="jezik"> <option value="bs" <?php if ($rjezik == "bs") { print "CHECKED"; } ?> >Bosanski</option> <option value="en" <?php if ($rjezik == "en") { print "CHECKED"; } ?> >Engleski</option> </select> </td> </tr> <tr> <td> </td><td><input type="button" id="slanje" value="Pošalji" onclick="provjeri_sve()"></td> </tr> </table> </form> <?php } // GENERATORI IZVJEŠTAJA if ($_REQUEST['akcija'] == "spisak") { ?> <form action="index.php" method="GET"> <input type="hidden" name="sta" value="izvjestaj/prijemni"> <input type="hidden" name="akcija" value="kandidati"> <input type="hidden" name="termin" value="<?php echo $termin; ?> "> <h2>Spisak kandidata za prijemni ispit</h2> <p>Studij: <select name="studij"><option value="0">Svi zajedno</option><?php $q1000 = myquery("select s.id, s.naziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.ciklus={$ciklus_studija} and ts.moguc_upis=1 and s.moguc_upis=1 order by s.naziv"); while ($r1000 = mysql_fetch_row($q1000)) { print "<option value=\"{$r1000['0']}\">{$r1000['1']}</option>\n"; } ?> </select></p> <p>Državljanstvo: <select name="iz"><option value="bih">BiH</option> <option value="strani">Strani državljani</option> <option>Svi zajedno</option> </select></p> <p>Sortirano po: <select name="sort"><option value="abecedno">imenu i prezimenu</option> <option>ukupnom broju bodova</option> </select></p> <input type="submit" value=" Kreni "> </form> <?php } if ($_REQUEST['akcija'] == "rang_liste") { ?> <form action="index.php" method="GET"> <input type="hidden" name="sta" value="izvjestaj/prijemni"> <input type="hidden" name="akcija" value="rang_liste"> <input type="hidden" name="termin" value="<?php echo $termin; ?> "> <h2>Rang liste kandidata</h2> <p>Vrsta izvještaja: <select name="vrsta"><option value="preliminarni">Preliminarni rezultati</option> <option value="konacni">Konačni rezultati</option></select></p> <p>Studij: <select name="studij"><?php $q1000 = myquery("select s.id, s.naziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.ciklus={$ciklus_studija} and ts.moguc_upis=1 and s.moguc_upis=1 order by s.naziv"); while ($r1000 = mysql_fetch_row($q1000)) { print "<option value=\"{$r1000['0']}\">{$r1000['1']}</option>\n"; } ?> </select></p> <p>Državljanstvo: <select name="iz"><option value="bih">BiH</option> <option value="strani">Strani državljani</option> <option>Svi zajedno</option> </select></p> <p>Način studiranja: <select name="nacin"> <option value="o_trosku_kantona">O trošku kantona</option> <option value="samofinansirajuci">Samofinansirajući</option> <option value="redovni">O trošku kantona i samofinansirajući</option> <option value="vanredni">Vanredni</option> <option>Svi zajedno</option> </select></p> <input type="submit" value=" Kreni "> </form> <?php } // UNOS KRITERIJA ZA UPIS if ($_REQUEST['akcija'] == "upis_kriterij") { if ($_POST['spremi'] && check_csrf_token()) { $rdonja = intval($_REQUEST['donja_granica']); $rgornja = intval($_REQUEST['gornja_granica']); $rkandidatisd = intval($_REQUEST['kandidati_sd']); $rkandidatisp = intval($_REQUEST['kandidati_sp']); $rkandidatikp = intval($_REQUEST['kandidati_kp']); $rkandidativan = intval($_REQUEST['kandidati_van']); $rprijemnimax = floatval($_REQUEST['prijemni_max']); $rstudij = intval($_REQUEST['rstudij']); $qInsert = myquery("REPLACE upis_kriterij SET donja_granica={$rdonja}, gornja_granica={$rgornja}, kandidati_strani={$rkandidatisd}, kandidati_sami_placaju={$rkandidatisp}, kandidati_kanton_placa={$rkandidatikp}, kandidati_vanredni={$rkandidativan}, prijemni_max={$rprijemnimax}, studij={$rstudij}, prijemni_termin={$termin}"); $_REQUEST['prikazi'] = true; // prikazi upravo unesene podatke zamgerlog("promijenjeni kriteriji za prijemni ispit termin {$termin}, studij {$rstudij}", 4); zamgerlog2("promijenjeni kriteriji za prijemni ispit", $termin); } if ($_REQUEST['prikazi']) { $rstudij = intval($_REQUEST['rstudij']); $q120 = myquery("select donja_granica, gornja_granica, kandidati_strani, kandidati_sami_placaju, kandidati_kanton_placa, kandidati_vanredni, prijemni_max from upis_kriterij where studij={$rstudij} and prijemni_termin={$termin}"); if (mysql_num_rows($q120) < 1) { $pdonja = $pgornja = $pksd = $pksp = $pkkp = $ppmax = 0; } else { $pdonja = mysql_result($q120, 0, 0); $pgornja = mysql_result($q120, 0, 1); $pksd = mysql_result($q120, 0, 2); $pksp = mysql_result($q120, 0, 3); $pkkp = mysql_result($q120, 0, 4); $pkvan = mysql_result($q120, 0, 5); $ppmax = mysql_result($q120, 0, 6); } } // Spisak dostupnih studija $q130 = myquery("select s.id, s.naziv from studij as s, tipstudija as ts where s.moguc_upis=1 and s.tipstudija=ts.id and ts.ciklus={$ciklus_studija}"); $spisak_studija = ""; while ($r130 = mysql_fetch_row($q130)) { $spisak_studija .= "<option value=\"{$r130['0']}\""; if ($r130[0] == $rstudij) { $spisak_studija .= " selected"; } $spisak_studija .= ">{$r130['1']}</option>\n"; } unset($_REQUEST['spremi']); ?> <SCRIPT language="JavaScript"> function odzuti(nesto) { nesto.style.backgroundColor = '#FFFFFF'; } </SCRIPT> <h3>Unos kriterija za upis</h3> <br/> <?php echo genform("POST"); ?> <table align="left" border="0" width="70%" bgcolor=""> <tr> <td colspan="2" align="left">Odsjek:</td> </tr> <tr> <td><select name="rstudij"><?php echo $spisak_studija; ?> </select></td> <td><input type="submit" name="prikazi" value=" Prikaži "></td> </tr> <tr> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td width="70%" align="left">Maksimalni broj bodova na prijemnom ispitu:</td> <td><input type="text" size="12" name="prijemni_max" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $ppmax; ?> "></td> </tr> <tr> <td width="70%" align="left">Hard limit:</td> <td><input type="text" size="12" name="donja_granica" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $pdonja; ?> "></td> </tr> <tr> <td width="70%" align="left">Soft limit:</td> <td><input type="text" size="12" name="gornja_granica" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $pgornja; ?> "></td> </tr> <tr> <td width="70%" align="left">Broj kandidata (strani državljani):</td> <td><input type="text" size="12" name="kandidati_sd" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $pksd; ?> "></td> </tr> <tr> <td width="70%" align="left">Broj kandidata (sami plaćaju školovanje):</td> <td><input type="text" size="12" name="kandidati_sp" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $pksp; ?> "></td> </tr> <tr> <td width="70%" align="left">Broj kandidata (kanton plaća školovanje):</td> <td><input type="text" size="12" name="kandidati_kp" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $pkkp; ?> "></td> </tr> <tr> <td width="70%" align="left">Broj kandidata (vanrednih):</td> <td><input type="text" size="12" name="kandidati_van" style="background-color:#FFFF00" oninput="odzuti(this)" autocomplete="off" value="<?php echo $pkvan; ?> "></td> </tr> <tr> <td> <td> </tr> <tr> <td><input type="submit" name="spremi" value="Spremi"></td> </tr> </table> </form> <?php } // TABELARNI UNOS BODOVA SA PRIJEMNOG ISPITA if ($_REQUEST['akcija'] == "prijemni") { ?> <h3>Unos bodova sa prijemnog ispita</h3> <br /> <hr color="black" width="100%"> <a href="index.php?sta=studentska/prijemni&akcija=prijemni&sort=prezime&termin=<?php echo $termin; ?> ">Sortirano po prezimenu</a> <a href="index.php?sta=studentska/prijemni&akcija=prijemni&sort=unos&termin=<?php echo $termin; ?> ">Sortirano po broju dosjea</a> <hr color="black" width="100%"> <?php // AJAH i prateće funkcije print ajah_box(); ?> <SCRIPT language="JavaScript"> function dobio_focus(element) { element.style.borderColor='red'; if (element.value == "/") element.value=""; } function izgubio_focus(element) { element.style.borderColor='black'; var id = parseInt(element.id.substr(8)); if (element.value == "") element.value="/"; var vrijednost = element.value; if (vrijednost!=origval[id]) ajah_start("index.php?c=N&sta=common/ajah&akcija=prijemni_unos&osoba="+id+"&vrijednost="+vrijednost+"&termin=<?php echo $termin; ?> ","document.getElementById('prijemni'+"+id+").focus()"); origval[id]=vrijednost; } function enterhack(element,e,gdje) { if(e.keyCode==13) { element.blur(); document.getElementById('prijemni'+gdje).focus(); document.getElementById('prijemni'+gdje).select(); } } var origval=new Array(); </SCRIPT> <table border="1" bordercolordark="grey" cellspacing="0"> <tr><td><b>R. br.</b></td><td width="300"><b>Prezime i ime</b></td> <td><b>Bodovi (srednja šk.)</b></td> <td><b>Bodovi (prijemni)</b></td></tr> <?php $upit = ""; $upit = "SELECT o.id, o.ime, o.prezime, pp.rezultat, pp.izasao, us.opci_uspjeh+us.kljucni_predmeti+us.dodatni_bodovi, pp.broj_dosjea from osoba as o, prijemni_prijava as pp, uspjeh_u_srednjoj as us where o.id=pp.osoba and pp.prijemni_termin={$termin} and us.osoba=o.id"; if ($_REQUEST['sort'] == "prezime") { $upit .= " ORDER BY o.prezime, o.ime"; } else { $upit .= " ORDER BY pp.broj_dosjea"; } $q = myquery($upit); $id = 0; while ($r = mysql_fetch_row($q)) { if ($id != 0) { print "{$r['0']})\"></tr>\n"; } $id = $r[0]; if ($r[4] == 0) { $bodova = "/"; } else { $bodova = $r[3]; } // izasao na prijemni? ?> <SCRIPT language="JavaScript"> origval[<?php echo $id; ?> ]="<?php echo $bodova; ?> ";</SCRIPT> <tr><td><?php echo $r[6]; ?> </td> <td><?php echo $r[2]; ?> <?php echo $r[1]; ?> </td> <td align="center"><?php echo round($r[5] * 10) / 10; ?> </td> <td align="center"><input type="text" id="prijemni<?php echo $id; ?> " size="2" value="<?php echo $bodova; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="enterhack(this,event,<?php } if ($id != 0) { ?> 0)"><?php } ?> </tr> <?php ?> </table> <?php } // BRISANJE KANDIDATA (poziva se sa vise mjesta) if ($_REQUEST["akcija"] == "obrisi") { $osoba = intval($_GET['osoba']); if ($osoba > 0) { myquery("DELETE FROM prijemni_prijava WHERE osoba={$osoba} AND prijemni_termin={$termin} LIMIT 1"); myquery("DELETE FROM prijemni_obrazac WHERE osoba={$osoba} AND prijemni_termin={$termin} LIMIT 1"); // Necemo brisati osobu i ostale podatke zamgerlog("brisem osobu u{$osoba} sa prijemnog - termin {$termin}", 4); zamgerlog2("brisem osobu sa prijemnog", $osoba, $termin); nicemessage("Kandidat ispisan sa prijemnog ispita"); } $_REQUEST['akcija'] = "pregled"; } // SPISAK KANDIDATA - TABELA if ($_REQUEST['akcija'] == "pregled") { if ($ciklus_studija == 1) { $sirina = "4000"; } else { $sirina = "3000"; } ?> <p><a href="?sta=studentska/prijemni&termin=<?php echo $termin; ?> ">< < Nazad na unos kandidata</a></p> <h3>Pregled kandidata</h3> <br /> <hr color="black" width="<?php echo $sirina; ?> "> <a href="index.php?sta=studentska/prijemni&akcija=pregled&sort=prezime&termin=<?php echo $termin; ?> ">Sortirano po prezimenu</a> <a href="index.php?sta=studentska/prijemni&akcija=pregled&sort=bd&termin=<?php echo $termin; ?> ">Sortirano po broju dosjea</a> <a href="index.php?sta=studentska/prijemni&akcija=unos&termin=<?php echo $termin; ?> ">Dodaj kandidata</a> <a href="index.php?sta=studentska/prijemni&akcija=prijemni&termin=<?php echo $termin; ?> ">Unos bodova sa prijemnog ispita</a> <a href="index.php?sta=studentska/prijemni&akcija=kandidati&iz=bih&termin=<?php echo $termin; ?> ">Kandidati BiH</a> <a href="index.php?sta=studentska/prijemni&akcija=kandidati&iz=strani&termin=<?php echo $termin; ?> ">Kandidati (strani državljani)</a> <hr color="black" width="<?php echo $sirina; ?> "> <?php $imena_godina = array(); $q = myquery("select id, naziv from akademska_godina"); while ($r = mysql_fetch_row($q)) { $imena_godina[$r[0]] = $r[1]; } $imena_studija = array(); $q = myquery("select id,kratkinaziv from studij"); while ($r = mysql_fetch_row($q)) { $imena_studija[$r[0]] = $r[1]; } $imena_opcina = array(); $q = myquery("select id, naziv from opcina"); while ($r = mysql_fetch_row($q)) { $imena_opcina[$r[0]] = $r[1]; } $imena_drzava = array(); $q = myquery("select id, naziv from drzava"); while ($r = mysql_fetch_row($q)) { $imena_drzava[$r[0]] = $r[1]; } $imena_nacionalnosti = array(); $q = myquery("select id, naziv from nacionalnost"); while ($r = mysql_fetch_row($q)) { $imena_nacionalnosti[$r[0]] = $r[1]; } $imena_skola = $opcina_skola = $domaca_skola = array(); $q = myquery("select id, naziv, opcina, domaca from srednja_skola"); while ($r = mysql_fetch_row($q)) { $imena_skola[$r[0]] = $r[1]; $opcina_skola[$r[0]] = $imena_opcina[$r[2]]; $domaca_skola[$r[0]] = $r[3]; } $imena_mjesta = $opcine_mjesta = $drzave_mjesta = array(); $q = myquery("select id, naziv, opcina, drzava from mjesto"); while ($r = mysql_fetch_row($q)) { $imena_mjesta[$r[0]] = $r[1]; $opcine_mjesta[$r[0]] = $imena_opcina[$r[2]]; $drzave_mjesta[$r[0]] = $imena_drzava[$r[3]]; } $imena_kantona = array(); $q = myquery("select id, naziv from kanton"); while ($r = mysql_fetch_row($q)) { $imena_kantona[$r[0]] = $r[1]; } if ($ciklus_studija == 1) { $sqlSelect = "SELECT o.id, o.ime, o.prezime, o.imeoca, o.prezimeoca, o.imemajke, o.prezimemajke, o.spol, UNIX_TIMESTAMP(o.datum_rodjenja), o.mjesto_rodjenja, o.nacionalnost, o.drzavljanstvo, o.boracke_kategorije, o.jmbg, us.srednja_skola, us.godina, us.ucenik_generacije, o.adresa, o.adresa_mjesto, o.telefon, o.kanton, us.opci_uspjeh, us.kljucni_predmeti, us.dodatni_bodovi, pp.broj_dosjea, ns.naziv, pp.rezultat, pp.izasao, pp.studij_prvi, pp.studij_drugi, pp.studij_treci, pp.studij_cetvrti, pp.broj_dosjea\n\t\tFROM osoba as o, uspjeh_u_srednjoj as us, prijemni_prijava as pp, nacin_studiranja as ns\n\t\tWHERE pp.osoba=o.id and pp.prijemni_termin={$termin} and us.osoba=o.id and pp.nacin_studiranja=ns.id "; } else { $sqlSelect = "SELECT o.id, o.ime, o.prezime, o.imeoca, o.prezimeoca, o.imemajke, o.prezimemajke, o.spol, UNIX_TIMESTAMP(o.datum_rodjenja), o.mjesto_rodjenja, o.nacionalnost, o.drzavljanstvo, o.boracke_kategorije, o.jmbg, 0, 0, 0, o.adresa, o.adresa_mjesto, o.telefon, o.kanton, pcu.opci_uspjeh, 0, pcu.dodatni_bodovi, pp.broj_dosjea, ns.naziv, pp.rezultat, pp.izasao, pp.studij_prvi, pp.studij_drugi, pp.studij_treci, pp.studij_cetvrti, pp.broj_dosjea\n\t\tFROM osoba as o, prosliciklus_uspjeh as pcu, prijemni_prijava as pp, nacin_studiranja as ns\n\t\tWHERE pp.osoba=o.id and pp.prijemni_termin={$termin} and pcu.osoba=o.id and pp.nacin_studiranja=ns.id "; } if ($_REQUEST['sort'] == "bd") { $sqlSelect .= "ORDER BY pp.broj_dosjea"; } else { $sqlSelect .= "ORDER BY o.prezime, o.ime"; } $q = myquery($sqlSelect); ?> <table width="<?php echo $sirina; ?> " border="1" cellpadding="1" cellspacing="1" bordercolor="#000000"> <tr> <td width="10"><b>R.br.</b></td> <td align="center"><b>Opcije</b></td> <td><b>Prezime</b></td> <td><b>Ime</b></td> <td><b>Prezime oca</b></td> <td><b>Ime oca</b></td> <td><b>Prezime majke</b></td> <td><b>Ime majke</b></td> <td><b>Spol</b></td> <td width="100"><b>Datum rođenja</b></td> <td><b>Mjesto rođenja</b></td> <td><b>Općina rođenja</b></td> <td><b>Država rođenja</b></td> <td><b>Nacionalnost</b></td> <td><b>Državljanstvo</b></td> <td><b>Por. šeh / RVI</b></td> <td><b>JMBG</b></td> <?php if ($ciklus_studija == 1) { ?> <td><b>Završena škola</b></td> <td><b>Općina</b></td> <td><b>Domaća škola</b></td> <td><b>Šk. god.</b></td> <td><b>Uč. gen.</b></td><?php } ?> <td><b>Adresa</b></td> <td width="200"><b>Kanton</b></td> <td><b>Telefon</b></td> <?php if ($ciklus_studija == 1) { ?> <td width="90"><b>Opći uspjeh</b></td> <td width="90"><b>Ključni pred.</b></td> <td width="90"><b>Dodatni bod.</b></td> <td width="90"><b>Prijemni ispit</b></td><?php } else { ?> <td width="90"><b>Prethodni ciklus</b></td> <td width="90"><b>Dodatni bod.</b></td><?php } ?> <td width="70"><b>Tip studija</b></td> <?php if ($ciklus_studija == 1) { ?> <td width="80"><b>Odsjek prvi</b></td> <td width="80"><b>Odsjek drugi</b></td> <td width="80"><b>Odsjek treći</b></td> <td width="80"><b>Odsjek četvrti</b></td> <?php } else { ?> <td width="80"><b>Odsjek</b></td><?php } ?> <td width="10"><b>R.br.</b></td> <td align="center"><b>Opcije</b></td> </tr> <?php $brojac = 1; while ($kandidat = mysql_fetch_row($q)) { ?> <tr> <td align="center"><?php echo $kandidat[24]; ?> </td> <td align="center"> <a href="?sta=studentska/prijemni&akcija=obrisi&osoba=<?php echo $kandidat[0]; ?> &termin=<?php echo $termin; ?> ">Obriši </a> <a href="?sta=studentska/prijemni&akcija=unos&izmjena=<?php echo $kandidat[0]; ?> &termin=<?php echo $termin; ?> ">Izmijeni</a> </td> <td><?php echo $kandidat[2]; ?> </td> <td><?php echo $kandidat[1]; ?> </td> <td><?php echo $kandidat[4]; ?> </td> <td><?php echo $kandidat[3]; ?> </td> <td><?php echo $kandidat[6]; ?> </td> <td><?php echo $kandidat[5]; ?> </td> <td><?php echo $kandidat[7]; ?> </td> <td><?php echo date("d. m. Y", $kandidat[8]); ?> </td> <td><?php echo $imena_mjesta[$kandidat[9]]; ?> </td> <td><?php echo $opcine_mjesta[$kandidat[9]]; ?> </td> <td><?php echo $drzave_mjesta[$kandidat[9]]; ?> </td> <td><?php echo $imena_nacionalnosti[$kandidat[10]]; ?> </td> <td><?php echo $imena_drzava[$kandidat[11]]; ?> </td> <td><?php if ($kandidat[12] == 1) { print "DA"; } else { print " "; } ?> </td> <td><?php echo $kandidat[13]; ?> </td> <?php if ($ciklus_studija == 1) { ?> <td><?php echo $imena_skola[$kandidat[14]]; ?> </td> <td><?php echo $opcina_skola[$kandidat[14]]; ?> </td> <td><?php if ($domaca_skola[$kandidat[14]] > 0) { print "DA"; } else { print " "; } ?> </td> <td><?php echo $imena_godina[$kandidat[15]]; ?> </td> <td><?php if ($kandidat[16] > 0) { print "DA"; } else { print " "; } ?> </td><?php } ?> <td><?php echo $kandidat[17]; ?> , <?php echo $imena_mjesta[$kandidat[18]]; ?> </td> <td><?php echo $imena_kantona[$kandidat[20]]; ?> </td> <td><?php echo $kandidat[19]; ?> </td> <?php if ($ciklus_studija == 1) { ?> <td align="center"><?php echo $kandidat[21]; ?> </td> <td align="center"><?php echo $kandidat[22]; ?> </td> <td align="center"><?php echo $kandidat[23]; ?> </td> <td align="center"><?php echo $kandidat[26]; ?> </td><?php } else { ?> <td align="center"><?php echo $kandidat[21]; ?> </td> <td align="center"><?php echo $kandidat[22]; ?> </td><?php } ?> <td align="center"><?php echo $kandidat[25]; ?> </td> <td align="center"><?php echo $imena_studija[$kandidat[28]]; ?> </td> <?php if ($ciklus_studija == 1) { ?> <td align="center"><?php echo $imena_studija[$kandidat[29]]; ?> </td> <td align="center"><?php echo $imena_studija[$kandidat[30]]; ?> </td> <td align="center"><?php echo $imena_studija[$kandidat[31]]; ?> </td><?php } ?> <td align="center"><?php echo $kandidat[24]; ?> </td> <td align="center"> <a href="?sta=studentska/prijemni&akcija=obrisi&osoba=<?php echo $kandidat[0]; ?> &termin=<?php echo $termin; ?> ">Obriši </a> <a href="?sta=studentska/prijemni&akcija=unos&izmjena=<?php echo $kandidat[0]; ?> &termin=<?php echo $termin; ?> ">Izmijeni</a> </td> </tr> <?php $brojac++; } ?> </table> <hr color="black" width="<?php echo $sirina; ?> "> <a href="index.php?sta=studentska/prijemni&akcija=pregled&sort=prezime&termin=<?php echo $termin; ?> ">Sortirano po prezimenu</a> <a href="index.php?sta=studentska/prijemni&akcija=pregled&sort=bd&termin=<?php echo $termin; ?> ">Sortirano po broju dosjea</a> <a href="index.php?sta=studentska/prijemni&akcija=unos&termin=<?php echo $termin; ?> ">Dodaj kandidata </a> <a href="index.php?sta=studentska/prijemni&akcija=prijemni&termin=<?php echo $termin; ?> ">Unos bodova sa prijemnog ispita </font></a> <a href="index.php?sta=studentska/prijemni&akcija=kandidati&iz=bih&termin=<?php echo $termin; ?> ">Kandidati BiH </font></a> <a href="index.php?sta=studentska/prijemni&akcija=kandidati&iz=strani&termin=<?php echo $termin; ?> ">Kandidati (strani državljani)</font></a> <hr color="black" width="<?php echo $sirina; ?> "> <?php } // POTVRDA UNOSA KANDIDATA // Polje vrstaunosa moze biti: // - novi - kreiraju se novi zapisi u tabelama // - novigreska - edituju se postojeci zapisi, ali korisnik nema mogucnost unosa ocjena // - editovanje - ima mogucnost unosa ocjena // - sljedeci - prelazak na unos sljedeceg kandidata if ($_POST['akcija'] == 'unospotvrda' && check_csrf_token()) { $rosoba = intval($_REQUEST['osoba']); $rbrojdosjea = intval($_REQUEST['broj_dosjea']); $rime = my_escape(trim($_REQUEST['ime'])); $rprezime = my_escape(trim($_REQUEST['prezime'])); $rimeoca = my_escape(trim($_REQUEST['imeoca'])); $rprezimeoca = my_escape(trim($_REQUEST['prezimeoca'])); $rimemajke = my_escape(trim($_REQUEST['imemajke'])); $rprezimemajke = my_escape(trim($_REQUEST['prezimemajke'])); $rspol = $_REQUEST['spol']; // Moze biti samo 'M', 'Z' ili '' $rmjestorod = my_escape(trim($_REQUEST['mjesto_rodjenja'])); $ropcinarod = intval($_REQUEST['opcina_rodjenja']); $ropcinavanbihrod = my_escape(trim($_REQUEST['opcina_rodjenja_van_bih'])); $rdrzavarod = intval($_REQUEST['drzava_rodjenja']); $rnacionalnost = my_escape(trim($_REQUEST['nacionalnost'])); $rdrzavljanstvo = intval($_REQUEST['drzavljanstvo']); $rjmbg = $_REQUEST['jmbg']; // Bice bolje provjeren $rborac = intval($_REQUEST['borac']); $rzavrskola = my_escape(trim($_REQUEST['zavrsena_skola'])); $rskolaopcina = intval($_REQUEST['zavrsena_skola_opcina']); $rskoladomaca = intval($_REQUEST['zavrsena_skola_domaca']); $rskolagodina = intval($_REQUEST['zavrsena_skola_godina']); if ($_REQUEST['ucenik_generacije']) { $rgener = 1; } else { $rgener = 0; } $radresa = my_escape(trim($_REQUEST['adresa'])); $radresamjesto = my_escape(trim($_REQUEST['adresa_mjesto'])); $rtelefon = my_escape(trim($_REQUEST['telefon_roditelja'])); $rkanton = intval($_REQUEST['kanton']); $rnacinstudiranja = intval($_REQUEST['nacin_studiranja']); $opi = intval($_REQUEST['studij_prvi_izbor']); $odi = intval($_REQUEST['studij_drugi_izbor']); $oti = intval($_REQUEST['studij_treci_izbor']); $oci = intval($_REQUEST['studij_cetvrti_izbor']); $ropci = floatval(str_replace(",", ".", $_REQUEST['opci_uspjeh'])); $rkljucni = floatval(str_replace(",", ".", $_REQUEST['kljucni_predmeti'])); $rdodatni = floatval(str_replace(",", ".", $_REQUEST['dodatni_bodovi'])); $rprijemni = floatval(str_replace(",", ".", $_REQUEST['prijemni'])); if ($ciklus_studija == 1) { $rstrucni_stepen = 5; // 5 = bez akademskog zvanja } else { if ($ciklus_studija == 2) { $rstrucni_stepen = 2; // 2 = bakalaureat elektrotehnike - ovo bi vjerovatno trebalo unositi } else { if ($ciklus_studija == 3) { $rstrucni_stepen = 1; // 2 = magistar elektrotehnike - ovo bi vjerovatno trebalo unositi } } } // Obrada datuma if (preg_match("/(\\d+).*?(\\d+).*?(\\d+)/", $_REQUEST['datum_rodjenja'], $matches)) { $dan = $matches[1]; $mjesec = $matches[2]; $godina = $matches[3]; if ($godina < 100) { if ($godina < 50) { $godina += 2000; } else { $godina += 1900; } } if ($godina < 1000) { if ($godina < 900) { $godina += 2000; } else { $godina += 1000; } } } // Pronalazak mjesta i srednje skole i dodavanje u bazu $rmjrid = 0; if ($rmjestorod != "") { $q300 = myquery("select id from mjesto where naziv like '{$rmjestorod}'"); if (mysql_num_rows($q300) < 1) { if ($ropcinarod == 143) { $q301 = myquery("insert into mjesto set naziv='{$rmjestorod}', opcina={$ropcinarod}, drzava={$rdrzavarod}, opcina_van_bih='{$ropcinavanbihrod}'"); } else { $q301 = myquery("insert into mjesto set naziv='{$rmjestorod}', opcina={$ropcinarod}, drzava={$rdrzavarod}"); } $q300 = myquery("select id from mjesto where naziv='{$rmjestorod}'"); zamgerlog("upisano novo mjesto rodjenja {$rmjestorod}", 2); zamgerlog2("upisano novo mjesto rodjenja", intval(mysql_result($q300, 0, 0)), 0, 0, $rmjestorod); } else { $q300 = myquery("select id from mjesto where naziv like '{$rmjestorod}' and opcina={$ropcinarod} and drzava={$rdrzavarod}"); if (mysql_num_rows($q300) < 1) { // Napravicemo novo mjesto if ($ropcinarod == 143) { $q301 = myquery("insert into mjesto set naziv='{$rmjestorod}', opcina={$ropcinarod}, drzava={$rdrzavarod}, opcina_van_bih='{$ropcinavanbihrod}'"); } else { $q301 = myquery("insert into mjesto set naziv='{$rmjestorod}', opcina={$ropcinarod}, drzava={$rdrzavarod}"); } $q300 = myquery("select id from mjesto where naziv='{$rmjestorod}' and opcina={$ropcinarod} and drzava={$rdrzavarod}"); zamgerlog("promjena opcine/drzave za mjesto rodjenja {$rmjestorod}", 2); zamgerlog2("promjena opcine/drzave za mjesto rodjenja", intval(mysql_result($q300, 0, 0)), 0, 0, $rmjestorod); } } $rmjrid = mysql_result($q300, 0, 0); } $rnacid = 0; if ($rnacionalnost != "") { $q302 = myquery("select id from nacionalnost where naziv like '{$rnacionalnost}'"); if (mysql_num_rows($q302) < 1) { $q303 = myquery("insert into nacionalnost set naziv='{$rnacionalnost}'"); $q302 = myquery("select id from nacionalnost where naziv='{$rnacionalnost}'"); zamgerlog("upisana nova nacionalnost {$rnacionalnost}", 2); zamgerlog2("upisana nova nacionalnost", intval(mysql_result($q302, 0, 0)), 0, 0, $rnacionalnost); } $rnacid = mysql_result($q302, 0, 0); } $radmid = 0; if ($radresamjesto != "") { $q302 = myquery("select id from mjesto where naziv like '{$radresamjesto}'"); if (mysql_num_rows($q302) < 1) { $q303 = myquery("insert into mjesto set naziv='{$radresamjesto}'"); $q302 = myquery("select id from mjesto where naziv='{$radresamjesto}'"); zamgerlog("upisano novo mjesto (adresa) {$radresamjesto}", 2); zamgerlog2("upisano novo mjesto (adresa)", intval(mysql_result($q302, 0, 0)), 0, 0, $radresamjesto); } $radmid = mysql_result($q302, 0, 0); } $rskolaid = 0; if ($rzavrskola != "") { // $rzavrskola = str_replace(""", "\\\"", $rzavrskola); $rzavrskola = str_replace("\\\\'", "\\'", $rzavrskola); $q304 = myquery("select id from srednja_skola where naziv like '{$rzavrskola}'"); if (mysql_num_rows($q304) < 1) { $q305 = myquery("insert into srednja_skola set naziv='{$rzavrskola}', opcina={$rskolaopcina}, domaca={$rskoladomaca}"); $q304 = myquery("select id from srednja_skola where naziv='{$rzavrskola}' and opcina={$rskolaopcina} and domaca={$rskoladomaca}"); zamgerlog("upisana nova srednja skola {$rzavrskola}", 2); zamgerlog2("upisana nova srednja skola", intval(mysql_result($q304, 0, 0)), 0, 0, $rzavrskola); } else { $q304 = myquery("select id from srednja_skola where naziv like '{$rzavrskola}' and opcina={$rskolaopcina} and domaca={$rskoladomaca}"); if (mysql_num_rows($q304) < 1) { $q305 = myquery("insert into srednja_skola set naziv='{$rzavrskola}', opcina={$rskolaopcina}, domaca={$rskoladomaca}"); $q304 = myquery("select id from srednja_skola where naziv='{$rzavrskola}' and opcina={$rskolaopcina} and domaca={$rskoladomaca}"); zamgerlog("promjena opcine / statusa domacinstva za skolu {$rzavrskola}", 2); zamgerlog2("promjena opcine / statusa domacinstva za skolu", intval(mysql_result($q304, 0, 0)), 0, 0, $rzavrskola); } } $rskolaid = mysql_result($q304, 0, 0); } // Dodatne provjere integriteta koje je lakše uraditi u PHPu nego u JavaScriptu $greska = 0; if (!preg_match("/\\w/", $rime)) { niceerror("Ime nije ispravno"); $greska = 1; $greskaime = 1; } if (!preg_match("/\\w/", $rprezime)) { niceerror("Prezime nije ispravno"); $greska = 1; $greskaprezme = 1; } if ($rspol != 'M' && $rspol != 'Z' && $rspol != '') { niceerror("Spol nije ispravan"); $greska = 1; } if ($rmjrid == 0) { niceerror("Nije uneseno mjesto rođenja"); $greska = 1; $greskamjestorod = 1; } if ($rdrzavljanstvo != 1 && $rkanton != 13) { // 1 = bih niceerror("Državljanstvo je različito od 'BiH' (" . $rdrzavljanstvo . "), a kanton nije stavljen na 'Strani državljanin'"); $greska = 1; $greskadrzavljanstvo = 1; } if (testjmbg($rjmbg) != "") { niceerror("JMBG neispravan: " . testjmbg($rjmbg)); $greska = 1; $greskajmbg = 1; } if (preg_match("/(\\d+).*?(\\d+).*?(\\d+)/", $_REQUEST['datum_rodjenja'], $matches)) { // Ovo je već urađeno: // $dan=$matches[1]; $mjesec=$matches[2]; $godina=$matches[3]; if (!checkdate($mjesec, $dan, $godina)) { niceerror("Datum rođenja je kalendarski nemoguć ({$dan}. {$mjesec}. {$godina})"); $greskadatumrod = 1; $greska = 1; } $jdan = intval(substr($_REQUEST['jmbg'], 0, 2)); $jmjesec = intval(substr($_REQUEST['jmbg'], 2, 2)); $jgodina = intval(substr($_REQUEST['jmbg'], 4, 3)); if ($jgodina > 900) { $jgodina += 1000; } else { $jgodina += 2000; } if ($dan != $jdan || $mjesec != $jmjesec || $godina != $jgodina) { niceerror("Uneseni datum rođenja se ne poklapa s onim u JMBGu"); $greska = 1; $greskadatumrod = 1; } } else { niceerror("Datum rođenja nije ispravan - ne sadrži dovoljan broj cifara."); $greska = 1; $greskadatumrod = 1; } // Transakcija! $q305 = myquery("lock tables osoba write, prijemni_prijava write, uspjeh_u_srednjoj write, log write, prosliciklus_uspjeh write"); // Da li se broj dosjea ponavlja?? if ($_REQUEST['vrstaunosa'] == "novi" || $rosoba == 0) { $q308 = myquery("select count(*) from prijemni_prijava where broj_dosjea={$rbrojdosjea} and prijemni_termin={$termin}"); } else { $q308 = myquery("select count(*) from prijemni_prijava where broj_dosjea={$rbrojdosjea} and prijemni_termin={$termin} and osoba!={$rosoba}"); } if (mysql_result($q308, 0, 0) > 0) { niceerror("Broj dosjea {$rbrojdosjea} je već unesen! Izaberite neki drugi redni broj."); $greska = 1; $greskabrojdos = 1; } // Dodajemo novog kandidata u tabele osoba, prijemni_prijava i uspjeh_u_srednjoj if ($_REQUEST['vrstaunosa'] == "novi" || $rosoba == 0) { // Nova osoba //$min_id=1; $min_id = 2500; // radi lakseg grupisanja brojeva $q310 = myquery("select id+1 from osoba where id>={$min_id} order by id desc limit 1"); if (mysql_num_rows($q310) < 1) { $rosoba = $min_id; } else { $rosoba = mysql_result($q310, 0, 0); } $q320 = myquery("insert into osoba set id={$rosoba}, ime='{$rime}', prezime='{$rprezime}', imeoca='{$rimeoca}', prezimeoca='{$rprezimeoca}', imemajke='{$rimemajke}', prezimemajke='{$rprezimemajke}', spol='{$rspol}', brindexa='', datum_rodjenja='{$godina}-{$mjesec}-{$dan}', mjesto_rodjenja={$rmjrid}, drzavljanstvo={$rdrzavljanstvo}, nacionalnost={$rnacid}, boracke_kategorije={$rborac}, jmbg='{$rjmbg}', adresa='{$radresa}', adresa_mjesto={$radmid}, telefon='{$rtelefon}', kanton={$rkanton}, treba_brisati=0, strucni_stepen={$rstrucni_stepen}, naucni_stepen=6"); // 6 = bez naucnog stepena // Nova prijava prijemni $q330 = myquery("insert into prijemni_prijava set prijemni_termin={$termin}, osoba={$rosoba}, broj_dosjea={$rbrojdosjea}, nacin_studiranja={$rnacinstudiranja}, studij_prvi={$opi}, studij_drugi={$odi}, studij_treci={$oti}, studij_cetvrti={$oci}, izasao=0, rezultat=0"); // Novi uspjeh u srednjoj -- samo za prvi ciklus if ($ciklus_studija == 1) { $q340 = myquery("insert into uspjeh_u_srednjoj set osoba={$rosoba}, srednja_skola={$rskolaid}, godina={$rskolagodina}, opci_uspjeh=0, kljucni_predmeti=0, dodatni_bodovi=0, ucenik_generacije={$rgener}"); } else { $broj_semestara = intval($_REQUEST['broj_semestara']); $q340 = myquery("insert into prosliciklus_uspjeh set osoba={$rosoba}, fakultet=0, akademska_godina=0, broj_semestara={$broj_semestara}, opci_uspjeh=0, dodatni_bodovi=0"); } zamgerlog("novi kandidat za prijemni u{$rosoba} broj dosjea {$rbrojdosjea}", 2); // Nastavljamo sa unosom ocjena: $_REQUEST['akcija'] = "unos"; $vrstaunosa = "editovanje"; $osoba = $rosoba; // Ako dodje do greske, mi cemo ubaciti podatke u bazu ali cemo jednostavno traziti da se ponovo unesu if ($greska == 1) { $vrstaunosa = "novigreska"; } } else { // Editovanje postojeceg kandidata // Updatujem osobu $q350 = myquery("update osoba set ime='{$rime}', prezime='{$rprezime}', imeoca='{$rimeoca}', prezimeoca='{$rprezimeoca}', imemajke='{$rimemajke}', prezimemajke='{$rprezimemajke}', spol='{$rspol}', datum_rodjenja='{$godina}-{$mjesec}-{$dan}', mjesto_rodjenja={$rmjrid}, drzavljanstvo={$rdrzavljanstvo}, nacionalnost={$rnacid}, boracke_kategorije={$rborac}, jmbg='{$rjmbg}', adresa='{$radresa}', adresa_mjesto={$radmid}, telefon='{$rtelefon}', kanton={$rkanton}, treba_brisati=0 where id={$rosoba}"); // Updatujem prijavu prijemnog $q360 = myquery("update prijemni_prijava set broj_dosjea={$rbrojdosjea}, nacin_studiranja={$rnacinstudiranja}, studij_prvi={$opi}, studij_drugi={$odi}, studij_treci={$oti}, studij_cetvrti={$oci}, rezultat={$rprijemni} where osoba={$rosoba} and prijemni_termin={$termin}"); // Updatujem uspjeh u srednjoj -- samo za prvi ciklus if ($ciklus_studija == 1) { $q370 = myquery("update uspjeh_u_srednjoj set srednja_skola={$rskolaid}, godina={$rskolagodina}, opci_uspjeh={$ropci}, kljucni_predmeti={$rkljucni}, dodatni_bodovi={$rdodatni}, ucenik_generacije={$rgener} where osoba={$rosoba}"); } else { $broj_semestara = intval($_REQUEST['broj_semestara']); $q340 = myquery("update prosliciklus_uspjeh set broj_semestara={$broj_semestara}, opci_uspjeh={$ropci}, dodatni_bodovi={$rdodatni} where osoba={$rosoba}"); } zamgerlog("izmjena kandidata za prijemni u{$rosoba} broj dosjea {$rbrojdosjea}", 2); $_REQUEST['akcija'] = "unos"; // Ako je prethodni unos bio posljedica greske... if ($_REQUEST['vrstaunosa'] == "novigreska") { // ...prelazimo na unos ocjena $vrstaunosa = "editovanje"; $osoba = $rosoba; // zaboravi osobu if ($greska == 1) { $vrstaunosa = "novigreska"; } // osim ako nije opet greska // Kod editovanja... } else { // ...unosimo sljedeceg kandidata $vrstaunosa = "novi"; $osoba = 0; // zaboravi osobu if ($greska == 1) { // u slucaju greske ponovo editujemo $vrstaunosa = "editovanje"; $osoba = $rosoba; } } } // Kraj transakcije $q380 = myquery("unlock tables"); if ($_REQUEST['vrstaunosa'] == "novi" || $rosoba == 0) { zamgerlog2("novi kandidat za prijemni", intval($rosoba), 0, 0, $rbrojdosjea); } else { zamgerlog2("izmjena kandidata za prijemni", intval($rosoba), 0, 0, $rbrojdosjea); } } // AKCIJA=UNOS NOVOG STUDENTA if ($_REQUEST['akcija'] == "unos") { // Polje vrstaunosa moze biti: // - novi - kreiraju se novi zapisi u tabelama // - novigreska - edituju se postojeci zapisi, ali korisnik nema mogucnost unosa ocjena // - editovanje - ima mogucnost unosa ocjena // - sljedeci - prelazak na unos sljedeceg kandidata if (!$vrstaunosa) { // ako je prosli put unosen novi kandidat, varijabla $osoba je definisana u akciji unospotvrda if (intval($_REQUEST['izmjena']) > 0) { $vrstaunosa = "editovanje"; $osoba = intval($_REQUEST['izmjena']); } else { $vrstaunosa = "novi"; } } // Traženje postojeće osobe po JMBGu if (intval($_REQUEST['trazijmbg']) > 0) { $jmbg = my_escape($_REQUEST['trazijmbg']); // u biti ne znamo format JMBGa $q1 = myquery("select id from osoba where jmbg='{$jmbg}'"); if (mysql_num_rows($q1) < 1) { niceerror("Traženi JMBG nije pronađen ({$jmbg})."); $vrstaunosa = "novi"; $ejmbg = $jmbg; } else { $osoba = mysql_result($q1, 0, 0); $vrstaunosa = "editovanje"; // Da li je osoba vec na prijemnom? $q2 = myquery("select count(*) from prijemni_prijava where prijemni_termin={$termin} and osoba={$osoba}"); if (mysql_result($q2, 0, 0) > 0) { nicemessage("Osoba sa JMBGom već prijavljena na prijemni"); } else { // Broj dosjea postavljamo na prvi slobodan $q3 = myquery("select broj_dosjea+1 from prijemni_prijava where prijemni_termin={$termin} order by broj_dosjea desc limit 1"); if (mysql_num_rows($q3) < 1) { $nbrojdosjea = 1; } else { $nbrojdosjea = mysql_result($q3, 0, 0); } // Kod upisa na više cikluse, pretpostavljamo da će upisati isti studij // što određujemo na osnovu institucije $sp = 0; if ($ciklus_studija > 1) { $q4 = myquery("select s.institucija from studij as s, student_studij as ss where ss.student={$osoba} and ss.studij=s.id order by ss.akademska_godina desc, ss.semestar desc limit 1"); if (mysql_num_rows($q4) > 0) { // Da li je ikada studirao išta ovdje? $q5 = myquery("select s.id from studij as s, tipstudija as ts where s.institucija=" . mysql_result($q4, 0, 0) . " and s.tipstudija=ts.id and ts.ciklus<={$ciklus_studija}"); $sp = mysql_result($q5, 0, 0); } // Brišemo ranije podatke o uspjehu kako ne bismo stvorili konflikt sa podacima sa prošlog prijemnog (MSc -> PhD) $q5a = myquery("delete from prosliciklus_ocjene where osoba={$osoba}"); $q5b = myquery("delete from prosliciklus_uspjeh where osoba={$osoba}"); } $q6 = myquery("insert into prijemni_prijava set prijemni_termin={$termin}, osoba={$osoba}, broj_dosjea={$nbrojdosjea}, studij_prvi={$sp}"); // Treba li kreirati novi obrazac? $q6a = myquery("select count(*) from prijemni_obrazac where prijemni_termin={$termin} and osoba={$osoba}"); if (mysql_result($q6a, 0, 0) == 0) { do { $sifra = chr(ord('A') + rand(0, 7)) . chr(ord('A') + rand(0, 7)) . chr(ord('A') + rand(0, 7)) . rand(1, 8) . rand(1, 8); $q3015 = myquery("select count(*) from prijemni_obrazac where sifra='{$sifra}' and prijemni_termin={$termin}"); } while (mysql_result($q3015, 0, 0) > 0); $q6b = myquery("insert into prijemni_obrazac set prijemni_termin={$termin}, osoba={$osoba}, sifra='{$sifra}', jezik='bs'"); } nicemessage("Prijavljujem osobu na prijemni ispit"); } // Da li je potrebno kreirati zapis u tabeli "uspjeh u srednjoj"? samo za prvi ciklus if ($ciklus_studija == 1) { $q7 = myquery("select count(*) from uspjeh_u_srednjoj where osoba={$osoba}"); if (mysql_result($q7, 0, 0) < 1) { $q8 = myquery("insert into uspjeh_u_srednjoj set osoba={$osoba}"); // Ostale stvari ce biti popunjene kroz formular } } else { // Za više cikluse, popunićemo tabelu podacima o prethodnom ciklusu iz Zamgera $q9 = myquery("select ko.ocjena, p.ects, pk.semestar from konacna_ocjena as ko, ponudakursa as pk, predmet as p, student_predmet as sp, studij as s, tipstudija as ts where ko.student={$osoba} and ko.predmet=pk.predmet and ko.akademska_godina=pk.akademska_godina and pk.predmet=p.id and pk.id=sp.predmet and sp.student={$osoba} and pk.studij=s.id and s.tipstudija=ts.id and ts.ciklus=" . ($ciklus_studija - 1)); $bodovi = 0; // Odmah izracunavamo i bodove $rednibroj = 1; $maxsemestar = 0; $sumaects = 0; $sumaocjena = 0; $brojocjena = 0; while ($r9 = mysql_fetch_row($q9)) { $q10 = myquery("insert into prosliciklus_ocjene set osoba={$osoba}, redni_broj={$rednibroj}, ocjena={$r9['0']}, ects={$r9['1']}"); $rednibroj++; $bodovi += $r9[0] * $r9[1]; $sumaects += $r9[1]; if ($r9[2] > $maxsemestar) { $maxsemestar = $r9[2]; } $sumaocjena += $r9[0]; $brojocjena++; } // bodovi = suma od (ocjena*ects) / suma ects / brojsemestara //$bodovi = $bodovi / $sumaects / $maxsemestar; // Po novom konkursu od 2010. godine za rangiranje se uzima samo prosjek // Po konkursu iz 2012. godine prosjek se množi sa 10 (max. 100 bodova) da bi se sabrao sa 40 bodova sa prijemnog ispita if ($brojocjena > 0) { $bodovi = round($sumaocjena / $brojocjena * 100) / 10; } else { $bodovi = 0; } $q11 = myquery("insert into prosliciklus_uspjeh set osoba={$osoba}, opci_uspjeh={$bodovi}, broj_semestara={$maxsemestar}"); } } } // Preuzimanje podataka iz baze u slučaju editovanja // Neke default vrijednosti $enacinstudiranja = 1; // Redovni studij $eopci = $ekljucni = $edodatni = $eprijemni = 0; // Bodove postavljamo na nulu $edrzavarodjenja = $edrzavljanstvo = 1; // BiH $eskoladomaca = 1; // domaća škola je default $eskolazavrsena = 0; // godina završetka škole će biti prošla if ($osoba > 0) { $q = myquery("select o.ime, o.prezime, o.imeoca, o.prezimeoca, o.imemajke, o.prezimemajke, o.spol, UNIX_TIMESTAMP(o.datum_rodjenja), o.mjesto_rodjenja, o.drzavljanstvo, o.nacionalnost, o.jmbg, o.boracke_kategorije, o.adresa, o.adresa_mjesto, o.telefon, o.kanton, pp.nacin_studiranja, pp.studij_prvi, pp.studij_drugi, pp.studij_treci, pp.studij_cetvrti, pp.rezultat, pp.broj_dosjea, pp.izasao from osoba as o, prijemni_prijava as pp where o.id={$osoba} and o.id=pp.osoba and pp.prijemni_termin={$termin}"); $eime = mysql_result($q, 0, 0); $eprezime = mysql_result($q, 0, 1); $eimeoca = mysql_result($q, 0, 2); $eprezimeoca = mysql_result($q, 0, 3); $eimemajke = mysql_result($q, 0, 4); $eprezimemajke = mysql_result($q, 0, 5); $espol = mysql_result($q, 0, 6); $edatum = date("d. m. Y.", mysql_result($q, 0, 7)); $emjesto = mysql_result($q, 0, 8); $edrzavljanstvo = mysql_result($q, 0, 9); $enacionalnost = mysql_result($q, 0, 10); $ejmbg = mysql_result($q, 0, 11); $eborac = mysql_result($q, 0, 12); $eadresa = mysql_result($q, 0, 13); $eadresamjesto = mysql_result($q, 0, 14); $etelefon = mysql_result($q, 0, 15); $ekanton = mysql_result($q, 0, 16); $enacinstudiranja = mysql_result($q, 0, 17); $eopi = mysql_result($q, 0, 18); $eodi = mysql_result($q, 0, 19); $eoti = mysql_result($q, 0, 20); $eoci = mysql_result($q, 0, 21); $eprijemni = mysql_result($q, 0, 22); $ebrojdosjea = mysql_result($q, 0, 23); $eizasao = mysql_result($q, 0, 24); if ($ciklus_studija == 1) { // Uzimamo podatke za srednju skolu - samo ako se upisuje na prvi ciklus $q300 = myquery("select srednja_skola, godina, opci_uspjeh, kljucni_predmeti, dodatni_bodovi, ucenik_generacije from uspjeh_u_srednjoj where osoba={$osoba}"); $eskola = mysql_result($q300, 0, 0); $eskolazavr = mysql_result($q300, 0, 1); $eopci = mysql_result($q300, 0, 2); $ekljucni = mysql_result($q300, 0, 3); $edodatni = mysql_result($q300, 0, 4); $egener = mysql_result($q300, 0, 5); } else { // podaci za prosli ciklus $q310 = myquery("select fakultet, akademska_godina, opci_uspjeh, dodatni_bodovi, broj_semestara from prosliciklus_uspjeh where osoba={$osoba}"); $efakultet = mysql_result($q310, 0, 0); $eskolazavr = mysql_result($q300, 0, 1); $eopci = mysql_result($q310, 0, 2); $edodatni = mysql_result($q310, 0, 3); $ebrojsem = mysql_result($q310, 0, 4); } } else { if ($vrstaunosa == "novigreska") { $ebrojdosjea = $rbrojdosjea; } else { // Nova osoba // Odredjujemo broj dosjea $q220 = myquery("select broj_dosjea+1 from prijemni_prijava where prijemni_termin={$termin} order by broj_dosjea desc limit 1"); if (mysql_num_rows($q220) < 1) { $ebrojdosjea = 1; } else { $ebrojdosjea = mysql_result($q220, 0, 0); } } } // Spisak dostupnih studija ovisno o ciklusu studija $q230 = myquery("select s.id, s.kratkinaziv from studij as s, tipstudija as ts where s.moguc_upis=1 and s.tipstudija=ts.id and ts.ciklus={$ciklus_studija} order by s.kratkinaziv"); $studiji = array(); $sstudimena = ""; $sstudbrojevi = ""; while ($r230 = mysql_fetch_row($q230)) { $studiji[$r230[0]] = $r230[1]; if ($sstudimena != "") { $sstudimena .= ","; } $sstudimena .= "'" . $r230[1] . "'"; if ($sstudbrojevi != "") { $sstudbrojevi .= ","; } $sstudbrojevi .= "'" . $r230[0] . "'"; } // Spisak gradova za mjesto rodjenja i adresu $q240 = myquery("select id, naziv, opcina, drzava, opcina_van_bih from mjesto order by naziv"); $gradovir = "<option></option>"; $gradovia = "<option></option>"; $eopcinarodjenja = $edrzavarodjenja = 0; while ($r240 = mysql_fetch_row($q240)) { $gradovir .= "<option"; $gradovia .= "<option"; if ($r240[0] == $emjesto) { $gradovir .= " SELECTED"; $mjestorvalue = $r240[1]; $eopcinarodjenja = $r240[2]; $edrzavarodjenja = $r240[3]; if ($edrzavarodjenja == 1) { $eopcinavanbih = ""; } else { $eopcinavanbih = $r240[4]; } } if ($r240[0] == $eadresamjesto) { $gradovia .= " SELECTED"; $adresarvalue = $r240[1]; } $gradovir .= " onClick=\"javascript:selectujOpcinuRodjenja('{$r240['2']}', '{$r240['3']}');\">{$r240['1']}</option>\n"; $gradovia .= ">{$r240['1']}</option>\n"; } // Spisak srednjih skola $q250 = myquery("select id, naziv, opcina, domaca from srednja_skola order by naziv"); $srednjer = "<option></option>"; $eskolaopcina = $eskoladomaca = 0; while ($r250 = mysql_fetch_row($q250)) { $srednjer .= "<option"; if ($r250[0] == $eskola) { $srednjer .= " SELECTED"; $skolarvalue = $r250[1]; $eskolaopcina = $r250[2]; $eskoladomaca = $r250[3]; } $srednjer .= " onClick=\"javascript:selectujOpcinuSkola('{$r250['2']}', '{$r250['3']}');\">{$r250['1']}</option>\n"; } // Spisak opština $q255 = myquery("select id, naziv from opcina order by naziv"); $opciner = "<option></option>"; $opcinerodjr = "<option></option>"; while ($r255 = mysql_fetch_row($q255)) { $opciner .= "<option value=\"{$r255['0']}\" "; if ($r255[0] == $eskolaopcina) { $opciner .= " SELECTED"; } $opciner .= ">{$r255['1']}</option>\n"; $opcinerodjr .= "<option value=\"{$r255['0']}\" "; if ($r255[0] == $eopcinarodjenja) { $opcinerodjr .= " SELECTED"; } $opcinerodjr .= ">{$r255['1']}</option>\n"; } // Spisak nacionalnosti $q256 = myquery("select id, naziv from nacionalnost order by naziv"); $nacionalnostr = "<option></option>"; while ($r256 = mysql_fetch_row($q256)) { $nacionalnostr .= "<option"; if ($r256[0] == $enacionalnost) { $nacionalnostr .= " SELECTED"; $nacionalnostrvalue = $r256[1]; } $nacionalnostr .= ">{$r256['1']}</option>\n"; } // Spisak država $q257 = myquery("select id, naziv from drzava order by naziv"); $drzaverodjr = "<option></option>"; $drzavljanstvor = "<option></option>"; while ($r257 = mysql_fetch_row($q257)) { $drzaverodjr .= "<option value=\"{$r257['0']}\" "; if ($r257[0] == $edrzavarodjenja) { $drzaverodjr .= " SELECTED"; } $drzaverodjr .= ">{$r257['1']}</option>\n"; $drzavljanstvor .= "<option value=\"{$r257['0']}\" "; if ($r257[0] == $edrzavljanstvo) { $drzavljanstvor .= " SELECTED"; } $drzavljanstvor .= ">{$r257['1']}</option>\n"; } // Spisak ak. godina $q258 = myquery("select id, naziv, aktuelna from akademska_godina order by naziv"); $skolazavr = "<option></option>"; while ($r258 = mysql_fetch_row($q258)) { $skolazavr .= "<option value=\"{$r258['0']}\" "; if ($r258[0] == $eskolazavrsena) { $skolazavr .= " SELECTED"; } if ($r258[2] == 1 && $eskolazavrsena == 0) { $skolazavr .= " SELECTED"; } $skolazavr .= ">{$r258['1']}</option>\n"; } // Spisak kantona $q259 = myquery("select id, naziv from kanton order by naziv"); $kantonr = "<option></option>"; while ($r259 = mysql_fetch_row($q259)) { $kantonr .= "<option value=\"{$r259['0']}\" "; if ($r259[0] == $ekanton) { $kantonr .= " SELECTED"; } $kantonr .= ">{$r259['1']}</option>\n"; } // Spisak načina studiranja $q259a = myquery("select id, naziv from nacin_studiranja where moguc_upis=1 order by id"); $nacinstudiranjar = ""; // Nema blank opcije while ($r259a = mysql_fetch_row($q259a)) { $nacinstudiranjar .= "<option value=\"{$r259a['0']}\" "; if ($r259a[0] == $enacinstudiranja) { $nacinstudiranjar .= " SELECTED"; } $nacinstudiranjar .= ">{$r259a['1']}</option>\n"; } // Tabela za unos podataka - design ?> <h3>Unos kandidata</h3> <br /> <SCRIPT language="JavaScript"> // Funkcija update_izobre() kod izbora studija kao "prvi izbor" izbacuje taj studij iz liste za drugi, treci itd. // Slicno radi i za drugi i treci izbor. function update_izbore() { var studijiimena = new Array(<?php echo $sstudimena; ?> ); var studijibrojevi = new Array(<?php echo $sstudbrojevi; ?> ); var prvi = document.getElementById('studij_prvi_izbor'); odzuti(prvi); var drugi = document.getElementById('studij_drugi_izbor'); var treci = document.getElementById('studij_treci_izbor'); var cetvrti = document.getElementById('studij_cetvrti_izbor'); var drugval = drugi.value; while (drugi.length>1) drugi.options[1]=null; for (i=0; i<4; i++) { if (studijibrojevi[i] != prvi.value) { drugi.options[drugi.length]=new Option(studijiimena[i],studijibrojevi[i]); if (drugval==studijibrojevi[i]) drugi.selectedIndex=drugi.length-1; } } var trecval = treci.value; while (treci.length>1) treci.options[1]=null; for (i=0; i<4; i++) { if (studijibrojevi[i] != prvi.value && studijibrojevi[i] != drugi.value) { treci.options[treci.length]=new Option(studijiimena[i],studijibrojevi[i]); if (trecval==studijibrojevi[i]) treci.selectedIndex=treci.length-1; } } var cetval = cetvrti.value; while (cetvrti.length>1) cetvrti.options[1]=null; for (i=0; i<4; i++) { if (studijibrojevi[i] != prvi.value && studijibrojevi[i] != drugi.value && studijibrojevi[i] != treci.value) { cetvrti.options[cetvrti.length]=new Option(studijiimena[i],studijibrojevi[i]); if (cetval==studijibrojevi[i]) cetvrti.selectedIndex=cetvrti.length-1; } } } // Kada korisnik ukuca nesto u obavezno polje, ono prestaje biti zuto (postaje bijelo) function odzuti(nesto) { nesto.style.backgroundColor = '#FFFFFF'; } // Predji na sljedece polje pritiskom na dugme enter function enterhack(e,gdje) { if(e.keyCode==13) { document.getElementById(gdje).focus(); return false; } } // Trazimo osobu sa datim JMBGom u bazi function jmbg_trazi() { var jmbg = document.getElementById('jmbg').value; document.location.replace('index.php?sta=studentska/prijemni&akcija=unos&trazijmbg='+jmbg+'&termin=<?php echo $termin; ?> '); } // Automatski izbor općine za školu function selectujOpcinuSkola(idOpcine, domaca) { var selOpcine = document.getElementById('zavrsena_skola_opcina'); for (i=0; i<selOpcine.length; i++) if (parseInt(selOpcine.options[i].value)==idOpcine) selOpcine.selectedIndex=i; if (idOpcine==0) selOpcine.selectedIndex=0; else odzuti(selOpcine); // Ovo moze ne raditi... if (document.glavnaforma && document.glavnaforma.zavrsena_skola_domaca) { var radioDomaca = document.glavnaforma.zavrsena_skola_domaca; for (i=0; i<radioDomaca.length; i++) { //alert ("forma "+i); if (parseInt(radioDomaca[i].value) == domaca) radioDomaca[i].checked=true; } } } // Automatski izbor općine za mjesto rođenja function selectujOpcinuRodjenja(idOpcine, idDrzave) { var selOpcine = document.getElementById('opcina_rodjenja'); for (i=0; i<selOpcine.length; i++) if (parseInt(selOpcine.options[i].value)==idOpcine) selOpcine.selectedIndex=i; if (idOpcine==0) selOpcine.selectedIndex=0; else odzuti(selOpcine); var selDrzave = document.getElementById('drzava_rodjenja'); for (i=0; i<selDrzave.length; i++) if (parseInt(selDrzave.options[i].value)==idDrzave) selDrzave.selectedIndex=i; if (idDrzave==0) selDrzave.selectedIndex=0; else odzuti(selDrzave); } </SCRIPT> <script type="text/javascript" src="js/mycombobox.js"></script> <?php // Nećemo da se ove varijable pojavljuju u genform unset($_REQUEST['osoba']); unset($_REQUEST['vrstaunosa']); unset($_REQUEST['broj_dosjea']); unset($_REQUEST['ime']); unset($_REQUEST['prezime']); unset($_REQUEST['imeoca']); unset($_REQUEST['prezimeoca']); unset($_REQUEST['imemajke']); unset($_REQUEST['prezimemajke']); unset($_REQUEST['spol']); unset($_REQUEST['datum_rodjenja']); unset($_REQUEST['mjesto_rodjenja']); unset($_REQUEST['opcina_rodjenja']); unset($_REQUEST['drzava_rodjenja']); unset($_REQUEST['nacionalnost']); unset($_REQUEST['drzavljanstvo']); unset($_REQUEST['jmbg']); unset($_REQUEST['borac']); unset($_REQUEST['zavrsena_skola']); unset($_REQUEST['zavrsena_skola_opcina']); unset($_REQUEST['zavrsena_skola_godina']); unset($_REQUEST['zavrsena_skola_domaca']); unset($_REQUEST['adresa']); unset($_REQUEST['adresa_mjesto']); unset($_REQUEST['telefon_roditelja']); unset($_REQUEST['tip_studija']); unset($_REQUEST['ucenik_generacije']); unset($_REQUEST['studij_prvi_izbor']); unset($_REQUEST['studij_drugi_izbor']); unset($_REQUEST['studij_treci_izbor']); unset($_REQUEST['studij_cetvrti_izbor']); unset($_REQUEST['prijemni']); unset($_REQUEST['opci_uspjeh']); unset($_REQUEST['kljucni_predmeti']); unset($_REQUEST['dodatni_bodovi']); unset($_REQUEST['trazijmbg']); // Navigacija na sljedeći i prethodni broj dosjea // Dostupna samo ako postoji broj $q260 = myquery("select osoba from prijemni_prijava where broj_dosjea<" . intval($ebrojdosjea) . " and prijemni_termin={$termin} order by broj_dosjea desc limit 1"); if (mysql_num_rows($q260) > 0) { $lijevodugme = '<input type="button" value=" << " onclick="javascript:document.location.replace(\'index.php?sta=studentska/prijemni&akcija=unos&izmjena=' . mysql_result($q260, 0, 0) . '&termin=' . $termin . '\')"> '; } else { $lijevodugme = '<input type="button" value=" << " disabled> '; } $q270 = myquery("select osoba from prijemni_prijava where broj_dosjea>" . intval($ebrojdosjea) . " and prijemni_termin={$termin} order by broj_dosjea limit 1"); if (mysql_num_rows($q270) > 0) { $desnodugme = '<input type="button" value=" >> " onclick="javascript:document.location.replace(\'index.php?sta=studentska/prijemni&akcija=unos&izmjena=' . mysql_result($q270, 0, 0) . '&termin=' . $termin . '\')"> '; } else { $desnodugme = '<input type="button" value=" >> " disabled> '; } print genform("POST", "glavnaforma"); ?> <input type="hidden" name="akcija" value="unospotvrda"> <input type="hidden" name="osoba" value="<?php echo $osoba; ?> "> <input type="hidden" name="vrstaunosa" value="<?php echo $vrstaunosa; ?> "> <table border="0" cellpadding="3" cellspacing="0"> <tr> <td width="130" align="left">Broj dosjea:</td> <td><?php echo $lijevodugme; ?> <input maxlength="50" size="5" name="broj_dosjea" id="broj_dosjea" type="text" value="<?php echo $ebrojdosjea; ?> " autocomplete="off" onkeypress="enterhack(event,'ime')" class="default" <?php if ($greskabrojdos) { ?> style="background-color:#FF0000" oninput="odzuti(this)" <?php } ?> ><font color="#FF0000">*</font> <?php echo $desnodugme; ?> </td> </tr> <?php if ($osoba > 0) { ?> <tr><td colspan="2"> <a href="?sta=izvjestaj/prijemni_brzi_unos&termin=<?php echo $termin; ?> &osoba=<?php echo $osoba; ?> " target="_new">Odštampaj obrazac</a> </tr></tr> <?php } ?> <tr><td colspan="2"><br>LIČNI PODACI:</td></tr> <tr> <td width="130" align="left">Ime kandidata:</td> <td><input maxlength="50" size="17" name="ime" id="ime" type="text" class="default" <?php if ($greskaime) { ?> value="<?php echo $eime; ?> " style="background-color:#FF0000" oninput="odzuti(this)" <?php } else { if ($eime) { ?> value="<?php echo $eime; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } } ?> autocomplete="off" onkeypress="return enterhack(event,'prezime')"><font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Prezime kandidata:</td> <td><input maxlength="50" size="17" name="prezime" id="prezime" type="text" class="default" <?php if ($greskaprezime) { ?> value="<?php echo $eprezime; ?> " style="background-color:#FF0000" oninput="odzuti(this)" <?php } else { if ($eprezime) { ?> value="<?php echo $eprezime; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } } ?> autocomplete="off" onkeypress="return enterhack(event,'imeoca')"><font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Ime oca:</td> <td><input maxlength="50" size="17" name="imeoca" id="imeoca" type="text" class="default" value="<?php echo $eimeoca; ?> " <?php if (!$eimeoca) { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off" onkeypress="return enterhack(event,'prezimeoca')"></td> </tr> <tr> <td width="125" align="left">Prezime oca:</td> <td><input maxlength="50" size="17" name="prezimeoca" id="prezimeoca" type="text" class="default" value="<?php echo $eprezimeoca; ?> " <?php if (!$eprezimeoca) { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off" onkeypress="return enterhack(event,'imemajke')"></td> </tr> <tr> <td width="125" align="left">Ime majke:</td> <td><input maxlength="50" size="17" name="imemajke" id="imemajke" type="text" class="default" value="<?php echo $eimemajke; ?> " <?php if (!$eimemajke) { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off" onkeypress="return enterhack(event,'prezimemajke')"></td> </tr> <tr> <td width="125" align="left">Prezime majke:</td> <td><input maxlength="50" size="17" name="prezimemajke" id="prezimemajke" type="text" class="default" value="<?php echo $eprezimemajke; ?> " <?php if (!$eprezimemajke) { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off" onkeypress="return enterhack(event,'datum_rodjenja')"></td> </tr> <tr> <td width="125" align="left">Spol:</td> <td><input type="radio" name="spol" id="spol" value="M" <?php if ($espol == 'M') { print "CHECKED"; } ?> > Muški <input type="radio" name="spol" id="spol" value="Z" <?php if ($espol == 'Z') { print "CHECKED"; } ?> > Ženski </td> </tr> <tr> <td width="125" align="left">Datum rođenja:</td> <td><input maxlength="20" size="17" name="datum_rodjenja" id="datum_rodjenja" type="text" class="default" <?php if ($greskadatumrod) { ?> value="<?php echo $edatum; ?> " style="background-color:#FF0000" oninput="odzuti(this)" <?php } else { if ($edatum) { ?> value="<?php echo $edatum; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } } ?> autocomplete="off" onkeypress="return enterhack(event,'mjesto_rodjenja')"> <font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Mjesto rođenja:</td> <td><input type="text" name="mjesto_rodjenja" id="mjesto_rodjenja" value="<?php echo $mjestorvalue; ?> " class="default" onKeyDown="return comboBoxEdit(event, 'mjesto_rodjenja'); this.style.backgroundColor = '#FFFFFF';" autocomplete="off" size="17" onInput="this.style.backgroundColor = '#FFFFFF';" onBlur="comboBoxHide('<?php echo $name; ?> ')" <?php if ($greskamjestorod) { ?> style="background-color:#FF0000" onChange="this.style.backgroundColor = '#FFFFFF'"<?php } else { if ($emjesto == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF'"<?php } else { ?> style="background-color:#FFFFFF"<?php } } ?> ><img src="images/cb_up.png" width="19" height="18" onClick="comboBoxShowHide('mjesto_rodjenja')" id="comboBoxImg_mjesto_rodjenja" valign="bottom"> <!-- Rezultati pretrage primaoca --> <div id="comboBoxDiv_mjesto_rodjenja" style="position:absolute;visibility:hidden"> <select name="comboBoxMenu_mjesto_rodjenja" id="comboBoxMenu_mjesto_rodjenja" size="10" onClick="comboBoxOptionSelected('mjesto_rodjenja')" onFocus="this.focused=true;" onBlur="this.focused=false;"><?php echo $gradovir; ?> </select> </div><font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Općina rođenja:</td> <td><select name="opcina_rodjenja" id="opcina_rodjenja" class="default" onChange="this.style.backgroundColor = '#FFFFFF'; if (this.value == 143) document.getElementById('opcina_rodjenja_van_bih').disabled = false; else document.getElementById('opcina_rodjenja_van_bih').disabled = true;" <?php if ($eopcinarodjenja == 0) { ?> style="background-color:#FFFF00" <?php } ?> ><?php echo $opcinerodjr; ?> </select> <font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Općina rođenja (van BiH):</td> <td><input maxlength="40" size="17" name="opcina_rodjenja_van_bih" id="opcina_rodjenja_van_bih" type="text" class="default" autocomplete="off" <?php if ($eopcinarodjenja != 143) { echo "disabled"; } ?> value="<?php echo $eopcinavanbih; ?> "></td> </tr> <tr> <td width="125" align="left">Država rođenja:</td> <td><select name="drzava_rodjenja" id="drzava_rodjenja" class="default" <?php if ($edrzavarodjenja == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF';" <?php } ?> ><?php echo $drzaverodjr; ?> </select> <font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Nacionalnost:</td> <td><input type="text" name="nacionalnost" id="nacionalnost" value="<?php echo $nacionalnostrvalue; ?> " class="default" onKeyDown="return comboBoxEdit(event, 'nacionalnost'); this.style.backgroundColor = '#FFFFFF';" autocomplete="off" size="17" onInput="this.style.backgroundColor = '#FFFFFF';" <?php if ($enacionalnost == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF'"<?php } else { ?> style="background-color:#FFFFFF"<?php } ?> ><img src="images/cb_up.png" width="19" height="18" onClick="comboBoxShowHide('nacionalnost')" id="comboBoxImg_nacionalnost" valign="bottom"> <!-- Rezultati pretrage primaoca --> <div id="comboBoxDiv_nacionalnost" style="position:absolute;visibility:hidden"> <select name="comboBoxMenu_nacionalnost" id="comboBoxMenu_nacionalnost" size="10" onClick="comboBoxOptionSelected('nacionalnost')" onFocus="this.focused=true;" onBlur="this.focused=false;"><?php echo $nacionalnostr; ?> </select> </div><font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Državljanstvo:</td> <!-- Nije žute boje zato što ima default vrijednost --> <td><select name="drzavljanstvo" id="drzavljanstvo" class="default" <?php if ($greskadrzavljanstvo) { ?> style="background-color:#FF0000" onChange="this.style.backgroundColor = '#FFFFFF'"<?php } ?> ><?php echo $drzavljanstvor; ?> </select> <font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">JMBG:</td> <td><input maxlength="13" size="17" name="jmbg" id="jmbg" type="text" class="default" <?php if ($greskajmbg) { ?> value="<?php echo $ejmbg; ?> " style="background-color:#FF0000" oninput="odzuti(this)" <?php } else { if ($ejmbg) { ?> value="<?php echo $ejmbg; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } } ?> autocomplete="off" onkeypress="return enterhack(event,'adresa')"><font color="#FF0000">*</font> <input type="button" value=" Traži " onclick="javascript:jmbg_trazi();"></td> </tr> <tr> <td width="125" align="left"> </td> <td><input type="checkbox" name="borac" <?php if ($eborac) { ?> checked="checked" <?php } ?> value="1"> Dijete šehida / borca / pripadnik RVI</td> </tr> <tr><td colspan="2"><br>PODACI O ZAVRŠENOM PRETHODNOM OBRAZOVANJU:</td></tr> <?php // Srednju školu prikazujemo samo za prvi ciklus if ($ciklus_studija == 1) { ?> <tr> <td width="125" align="left">Završena škola:</td> <td><input type="text" name="zavrsena_skola" id="zavrsena_skola" value="<?php echo $skolarvalue; ?> " class="default" onKeyDown="return comboBoxEdit(event, 'zavrsena_skola'); this.style.backgroundColor = '#FFFFFF';" autocomplete="off" size="35" onInput="this.style.backgroundColor = '#FFFFFF';" <?php if ($eskola == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF'"<?php } else { ?> style="background-color:#FFFFFF"<?php } ?> ><img src="images/cb_up.png" width="19" height="18" onClick="comboBoxShowHide('zavrsena_skola')" id="comboBoxImg_zavrsena_skola" valign="bottom"> <!-- Rezultati pretrage primaoca --> <div id="comboBoxDiv_zavrsena_skola" style="position:absolute;visibility:hidden"> <select name="comboBoxMenu_zavrsena_skola" id="comboBoxMenu_zavrsena_skola" size="10" onClick="comboBoxOptionSelected('zavrsena_skola')" onFocus="this.focused=true;" onBlur="this.focused=false;"><?php echo $srednjer; ?> </select> </div></td> </tr> <tr> <td width="125" align="left">Općina škole:</td> <td><select name="zavrsena_skola_opcina" id="zavrsena_skola_opcina" class="default" <?php if ($eskolaopcina == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF';" <?php } ?> ><?php echo $opciner; ?> </select></td> </tr> <tr> <td width="125" align="left"> </td> <td><input type="radio" name="zavrsena_skola_domaca" id="zavrsena_skola_domaca" value="1" <?php if ($eskoladomaca == 1) { print "CHECKED"; } ?> > Domaća škola <input type="radio" name="zavrsena_skola_domaca" id="zavrsena_skola_domaca" value="0" <?php if ($eskoladomaca == 0) { print "CHECKED"; } ?> > Strana škola </td> </tr> <tr> <td width="125" align="left">U školskoj godini:</td> <!-- Nije žute boje zato što ima default vrijednost --> <td><select name="zavrsena_skola_godina" id="zavrsena_skola_godina" class="default"><?php echo $skolazavr; ?> </select></td> </tr> <tr> <td width="125" align="left">Učenik generacije?</td> <td><input type="checkbox" name="ucenik_generacije" <?php if ($egener) { ?> checked="checked" <?php } ?> value="1"></td> </tr> <?php } ?> <tr><td colspan="2"><br>KONTAKT PODACI:</td></tr> <tr> <td width="125" align="left">Adresa:</td> <td><input maxlength="50" size="17" name="adresa" id="adresa" type="text" class="default" <?php if ($eadresa) { ?> value="<?php echo $eadresa; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off" onkeypress="return enterhack(event,'telefon_roditelja')"></td> </tr> <tr> <td width="125" align="left">Adresa (mjesto):</td> <td><input type="text" name="adresa_mjesto" id="adresa_mjesto" value="<?php echo $adresarvalue; ?> " class="default" onKeyDown="return comboBoxEdit(event, 'adresa_mjesto'); this.style.backgroundColor = '#FFFFFF';" autocomplete="off" size="17" onInput="this.style.backgroundColor = '#FFFFFF';" <?php if ($eadresamjesto == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF'"<?php } else { ?> style="background-color:#FFFFFF"<?php } ?> ><img src="images/cb_up.png" width="19" height="18" onClick="comboBoxShowHide('adresa_mjesto')" id="comboBoxImg_adresa_mjesto" valign="bottom"> <!-- Rezultati pretrage primaoca --> <div id="comboBoxDiv_adresa_mjesto" style="position:absolute;visibility:hidden"> <select name="comboBoxMenu_adresa_mjesto" id="comboBoxMenu_adresa_mjesto" size="10" onClick="comboBoxOptionSelected('adresa_mjesto')" onFocus="this.focused=true;" onBlur="this.focused=false;"><?php echo $gradovia; ?> </select> </div><font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Kanton:</td> <td><select name="kanton" id="kanton" class="default" <?php if ($ekanton == 0) { ?> style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF';" <?php } ?> ><?php echo $kantonr; ?> </select> <font color="#FF0000">*</font></td> </tr> <tr> <td width="125" align="left">Telefon roditelja:</td> <td><input maxlength="30" size="17" name="telefon_roditelja" id="telefon_roditelja" type="text" class="default" <?php if ($etelefon) { ?> value="<?php echo $etelefon; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off" onkeypress="return enterhack(event,'kanton')"></td> </tr> <tr><td colspan="2"><br>IZBOR STUDIJA:</td></tr> <tr> <td width="125" align="left">Način studiranja</td> <td><select name="nacin_studiranja" id="kanton" class="default" style="background-color:#FFFF00" onChange="this.style.backgroundColor = '#FFFFFF';"><?php echo $nacinstudiranjar; ?> </select></td> </tr> <?php // Više izbora nudimo samo za prvi ciklus studija (svakako je to hack) if ($ciklus_studija == 1) { ?> <tr> <td width="125" align="left">Studij:</td> <td> <table width="100%" border="0" align="center"> <tr><td>Prvi izbor</td><td>Drugi izbor</td><td>Treći izbor</td><td>Četvrti izbor</td></tr> <tr> <td><select name="studij_prvi_izbor" id="studij_prvi_izbor" onchange="update_izbore()" <?php if (!$eopi) { ?> style="background-color:#FFFF00"<?php } ?> ><option></option><?php foreach ($studiji as $id => $naziv) { print "<option value=\"{$id}\""; if ($id == $eopi) { print " selected"; } print ">{$naziv}</option>"; } ?> </select></td> <td><select name="studij_drugi_izbor" id="studij_drugi_izbor" onchange="update_izbore()"><option></option><?php foreach ($studiji as $id => $naziv) { print "<option value=\"{$id}\""; if ($id == $eodi) { print " selected"; } print ">{$naziv}</option>"; } ?> </select></td> <td><select name="studij_treci_izbor" id="studij_treci_izbor" onchange="update_izbore()"><option></option><?php foreach ($studiji as $id => $naziv) { print "<option value=\"{$id}\""; if ($id == $eoti) { print " selected"; } print ">{$naziv}</option>"; } ?> </select></td> <td><select name="studij_cetvrti_izbor" id="studij_cetvrti_izbor" onchange="update_izbore()"><option></option><?php foreach ($studiji as $id => $naziv) { print "<option value=\"{$id}\""; if ($id == $eoci) { print " selected"; } print ">{$naziv}</option>"; } ?> </select></td> </tr> </table> </td> </tr> <?php } else { // Samo jedan izbor -- TODO (mozda) omogućiti konfigurisanje da li je izbor samo jedan ili višestruki na nivou termina ?> <tr> <td width="125" align="left">Studij:</td> <td><select name="studij_prvi_izbor" id="studij_prvi_izbor" <?php if (!$eopi) { ?> style="background-color:#FFFF00"<?php } ?> ><option></option><?php foreach ($studiji as $id => $naziv) { print "<option value=\"{$id}\""; if ($id == $eopi) { print " selected"; } print ">{$naziv}</option>"; } ?> </select> </td> </tr> <?php } if ($eizasao > 0) { ?> <tr> <td width="125" align="left">Bodovi na prijemnom:</td> <td><input maxlength="50" size="17" name="prijemni" id="prijemni" type="text" value="<?php echo $eprijemni; ?> " autocomplete="off"></td> </tr> <?php } else { ?> <input type="hidden" name="prijemni" value="0"> <?php } ?> </table> <br /> <!-- Provjera ispravnosti svih polja na formularu prije slanja --> <SCRIPT language="JavaScript"> function provjeri(varijablu) { var nesto = document.getElementById(varijablu); if(nesto.value=="") { alert("Niste unijeli "+varijablu); nesto.focus(); self.scrollTo(nesto.offsetLeft,nesto.offsetTop); return false; } return true; } function provjeri_sve() { if (!provjeri('ime')) return false; if (!provjeri('prezime')) return false; if (!provjeri('datum_rodjenja')) return false; if (!provjeri('mjesto_rodjenja')) return false; if (!provjeri('opcina_rodjenja')) return false; if (!provjeri('drzava_rodjenja')) return false; if (!provjeri('nacionalnost')) return false; if (!provjeri('drzavljanstvo')) return false; if (!provjeri('broj_dosjea')) return false; if (!provjeri('jmbg')) return false; <?php if ($ciklus_studija == 1) { ?> if (!provjeri('studij_prvi_izbor')) return false; <?php } ?> // Da li je broj dosjea pozitivan broj? var nesto = document.getElementById('broj_dosjea'); if (parseInt(nesto.value) < 1) { alert ("Broj dosjea mora biti veći od nule."); nesto.focus(); self.scrollTo(nesto.offsetLeft, nesto.offsetTop); return false; } var nesto = document.getElementsByName('kanton'); if (nesto[0].value=='-1') { alert("Niste izabrali kanton"); nesto[0].focus(); self.scrollTo(nesto[0].offsetLeft,nesto[0].offsetTop); return false; } var nesto = document.getElementById('studij_prvi_izbor'); if (nesto.value=='') { alert("Niste izabrali odsjek"); nesto.focus(); self.scrollTo(nesto.offsetLeft,nesto.offsetTop); return false; } document.getElementsByName('glavnaforma')[0].submit(); return true; } </script> <?php // UNOS OCJENA IZ SREDNJE SKOLE // Unos ocjena ce se prikazati samo prilikom editovanja, posto su ocjene u zasebnoj tabeli koja se vezuje // za osobu, na taj nacin se osigurava da osoba postoji prilikom editovanja. // Ukoliko bismo se oslonili na prvi slobodan ID u tabeli osoba, postojala bi mogucnost da dva korisnika // unose ocjene za istu osobu (ta bi osoba mogla biti registrovana pod novim IDom ali ne bi imala ocjene, // dok bi druga osoba imala pogresne ocjene) if ($vrstaunosa != "editovanje") { ?> </form> <p><font color="#FF0000">*</font> - Sva polja označena zvjezdicom su obavezna.<br/> <input type="hidden" name="unosocjena" value="1"> <input type="button" value="Unos ocjena" onclick="provjeri_sve()"></p> <p> </p> <?php } else { if ($ciklus_studija == 1) { // Ocjene iz srednje škole ?> <b>Ocjene iz srednje škole:</b><br/> <?php // AJAH i prateće funkcije print ajah_box(); ?> <SCRIPT language="JavaScript"> // Funkcija koja racuna bodove za opci uspjeh i kljucne predmete function izracunaj_bodove() { // Opci uspjeh var sumaocjena=0, brojocjena=0; for (i=1; i<=20; i++) { for (j=1; j<=4; j++) { var id = <?php echo $osoba; ?> *1000 + j*100 + i; var val = document.getElementById('prijemniocjene'+id).value; if (val != "/" && val != "") { sumaocjena += parseInt(val); brojocjena++; } } } var prosjeku; if (brojocjena>0) prosjeku=Math.round((sumaocjena/brojocjena)*100)/100; else prosjeku=0; document.getElementById('opci_uspjeh').value = prosjeku * 4; // Kljucni predmeti var sumekljucni=new Array(), brojkljucni=new Array(), prosjecikljucni=new Array(); for (var i=1; i<=3; i++) { sumekljucni[i]=0; brojkljucni[i]=0; var pocni_od=1; if (i==3) pocni_od=3; for (var j=pocni_od; j<=4; j++) { var id = <?php echo $osoba; ?> *1000 + j*100 + i+90; var val = document.getElementById('prijemniocjene'+id).value; if (val != "/" && val != "") { sumekljucni[i] += parseInt(val); brojkljucni[i]++; } } if (brojkljucni[i]>0) prosjecikljucni[i] = sumekljucni[i]/brojkljucni[i]; else prosjecikljucni[i]=0; } var bodovi_kljucni = (prosjecikljucni[1]+prosjecikljucni[2]+prosjecikljucni[3])/3 * 8; bodovi_kljucni = Math.round(bodovi_kljucni*10)/10; document.getElementById('kljucni_predmeti').value=bodovi_kljucni; } function dobio_focus(element) { element.style.borderColor='red'; } function izgubio_focus(element) { element.style.borderColor='black'; var vrijednost = element.value; var id = parseInt(element.id.substr(14)); var osoba = Math.floor(id/1000); var razred = Math.floor((id-osoba*1000)/100); var tipocjene = id-osoba*1000-razred*100; var rednibroj = 0; if (tipocjene>=90) { tipocjene -= 90; rednibroj=0; } else { rednibroj=tipocjene; tipocjene=0; } if (vrijednost == "") { vrijednost="/"; } if (origval[id]=="") origval[id]="/"; if (vrijednost != "/" && vrijednost != "0" && (!parseInt(vrijednost) || parseInt(vrijednost)<0 || parseInt(vrijednost)>5)) { alert("Neispravna ocjena: "+vrijednost+" !\nOcjena mora biti u opsegu 0-5 ili znak / za poništavanje "+id); element.value = origval[id]; if (origval[id]=="/") element.value=""; element.focus(); element.select(); return false; } if (zamger_ajah_sending) { element.focus(); element.select(); return false; } if (origval[id]=="/" && vrijednost!="/") ajah_start("index.php?c=N&sta=common/ajah&akcija=prijemni_ocjene&osoba="+osoba+"&nova="+vrijednost+"&subakcija=dodaj&razred="+razred+"&tipocjene="+tipocjene+"&rednibroj="+rednibroj,"document.getElementById('prijemniocjene'+"+id+").focus()"); else if (origval[id]!="/" && vrijednost=="/") ajah_start("index.php?c=N&sta=common/ajah&akcija=prijemni_ocjene&osoba="+osoba+"&stara="+origval[id]+"&subakcija=obrisi&razred="+razred+"&tipocjene="+tipocjene+"&rednibroj="+rednibroj,"document.getElementById('prijemniocjene'+"+id+").focus()"); else if (origval[id]!=vrijednost) ajah_start("index.php?c=N&sta=common/ajah&akcija=prijemni_ocjene&osoba="+osoba+"&nova="+vrijednost+"&stara="+origval[id]+"&subakcija=izmijeni&razred="+razred+"&tipocjene="+tipocjene+"&rednibroj="+rednibroj,"document.getElementById('prijemniocjene'+"+id+").focus()"); origval[id]=vrijednost; izracunaj_bodove(); } function enterhack2(element,e,gdje) { if(e.keyCode==13) { element.blur(); document.getElementById('prijemniocjene'+gdje).focus(); document.getElementById('prijemniocjene'+gdje).select(); return false; } } var origval=new Array(); </SCRIPT> <table border="0" cellspacing="0" cellpadding="1"> <tr><td valign="top"> <table border="0" cellspacing="0" cellpadding="1"> <tr><td> </td><td align="center"><b> I </b></td><td align="center"><b> II </b></td><td align="center"><b> III </b></td><td align="center"><b> IV </b></td></tr> <?php $q = myquery("SELECT razred, ocjena, tipocjene,redni_broj FROM srednja_ocjene WHERE osoba={$osoba}"); $razred = array(); $kljucni = array(); while ($r = mysql_fetch_row($q)) { if ($r[2] == 0 && $r[3] == 0) { $razred[$r[0]][] = $r[1]; } else { if ($r[2] == 0) { $razred[$r[0]][$r[3]] = $r[1]; } else { $kljucni[$r[0]][$r[2]] = $r[1]; } } } for ($i = 1; $i <= 20; $i++) { ?> <tr><td align="right"><?php echo $i; ?> .</td> <?php for ($j = 1; $j <= 4; $j++) { $id = $osoba * 1000 + $j * 100 + $i; if ($i <= 19) { $nextid = $id + 1; } else { if ($j < 4) { $nextid = $osoba * 1000 + ($j + 1) * 100 + $i; } else { $nextid = $osoba * 1000 + 100 + 91; } } if (is_array($razred[$j]) && array_key_exists($i, $razred[$j])) { $vr = $razred[$j][$i]; } else { $vr = ""; } ?> <SCRIPT language="JavaScript"> origval[<?php echo $id; ?> ]='<?php echo $vr; ?> '</SCRIPT> <td align="center"><input type="text" id="prijemniocjene<?php echo $id; ?> " size="4" value="<?php echo $vr; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="return enterhack2(this,event,<?php echo $nextid; ?> )"></td> <?php } ?> </tr><?php } ?> </table> </td><td width="30"> </td> <td valign="top"> <table border="0" cellspacing="0" cellpadding="1"> <tr><td> </td><td align="center"><b> I </b></td><td align="center"><b> II </b></td><td align="center"><b> III </b></td><td align="center"><b> IV </b></td></tr> <?php for ($i = 1; $i <= 3; $i++) { if ($i == 1) { print "<tr><td><b>Jezik</b></td>\n"; } else { if ($i == 2) { print "<tr><td><b>Matematika</b></td>\n"; } else { if ($i == 3) { print "<tr><td><b>Fizika</b></td>\n"; } } } $pocni_od = 1; if ($i == 3) { $pocni_od = 3; } for ($j = 1; $j < $pocni_od; $j++) { print "<td> </td>\n"; } for ($j = $pocni_od; $j <= 4; $j++) { $id = $osoba * 1000 + $j * 100 + $i + 90; if (is_array($kljucni[$j]) && array_key_exists($i, $kljucni[$j])) { $vr = $kljucni[$j][$i]; } else { $vr = ""; } if ($j < 4) { $nextid = $osoba * 1000 + ($j + 1) * 100 + $i + 90; } else { if ($i == 1) { $nextid = $osoba * 1000 + 100 + $i + 90 + 1; } else { if ($i == 2) { $nextid = $osoba * 1000 + 3 * 100 + $i + 90 + 1; } else { $nextid = 0; } } } ?> <SCRIPT language="JavaScript"> origval[<?php echo $id; ?> ]='<?php echo $vr; ?> '</SCRIPT> <td align="center"><input type="text" id="prijemniocjene<?php echo $id; ?> " size="4" value="<?php echo $vr; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="enterhack2(this,event,<?php echo $nextid; ?> )"></td> <?php } } ?> </table> </td></tr></table> <?php ?> <br /><br /> <!-- Tablica bodova --> <fieldset style="width:200px" style="background-color:#0099FF"> <legend>Bodovi</legend> <table align="center" width="600" border="0"> <tr> <td align="left">Opći uspjeh: <input maxlength="10" size="5" name="opci_uspjeh" id="opci_uspjeh" type="text" value="<?php echo $eopci; ?> "><font color="#FF0000">*</font></td> <td align="left">Ključni predmeti: <input maxlength="10" size="5" name="kljucni_predmeti" id="kljucni_predmeti" type="text" value="<?php echo $ekljucni; ?> "><font color="#FF0000">*</font></td> <td align="left">Dodatni bodovi: <input maxlength="10" size="5" name="dodatni_bodovi" type="text" value="<?php echo $edodatni; ?> "></td> </tr> </table> </fieldset> </form> <!-- Provjera zajedno sa bodovima --> <SCRIPT language="JavaScript"> function provjeri_sve_bodovi() { var nesto = document.getElementById('opci_uspjeh'); if (parseInt(nesto.value)==0) { alert("Opći uspjeh je nula!"); nesto.focus(); return false; } var nesto = document.getElementById('kljucni_predmeti'); if (parseInt(nesto.value)==0) { alert("Bodovi za ključne predmete su nula!"); nesto.focus(); return false; } return provjeri_sve(); } </script> <p><font color="#FF0000">*</font> - Sva polja označena zvjezdicom su obavezna.<br/> <input type="button" value="Snimi" onclick="provjeri_sve_bodovi()"></p> <p> </p> <?php } else { // Unos ocjena sa prethodnog ciklusa studija ?> <b>Ocjene iz prethodnog ciklusa studija:</b><br/><br/> <table border="0" cellpadding="3" cellspacing="0"> <tr> <td width="250" align="left">Broj semestara na prethodnom ciklusu:</td> <td><input maxlength="50" size="5" name="broj_semestara" id="broj_semestara" type="text" class="default" <?php if ($ebrojsem) { ?> value="<?php echo $ebrojsem; ?> "<?php } else { ?> style="background-color:#FFFF00" oninput="odzuti(this)" <?php } ?> autocomplete="off"><font color="#FF0000">*</font></td> </tr> <?php // AJAH i prateće funkcije print ajah_box(); ?> <SCRIPT language="JavaScript"> // Funkcija koja racuna bodove za prethodni ciklus studija function izracunaj_bodove() { // Po konkursu iz 2010. godine, za rangiranje se koristi samo prosjek var suma=0, broj=0; for (i=1; i<=50; i++) { var idoc=2*i-1; var idec=2*i; var ocjena = document.getElementById('prijemniocjene'+idoc).value; var ects = document.getElementById('prijemniocjene'+idec).value; if (ocjena != "/" && ocjena != "" && ects != "/" && ects != "") { suma += parseInt(ocjena); broj++; } } if (broj>0) { var rezultat = suma / broj; rezultat = Math.round(rezultat*100) / 10; // Konkurs 2012. document.getElementById('opci_uspjeh').value = rezultat; } else { document.getElementById('opci_uspjeh').value = "0"; } } function dobio_focus(element) { element.style.borderColor='red'; } function izgubio_focus(element) { element.style.borderColor='black'; var vrijednost = element.value; var id = parseInt(element.id.substr(14)); var rednibroj = Math.ceil(id/2); var osoba = <?php echo $osoba; ?> ; if (vrijednost == "") { vrijednost="/"; } if (vrijednost==origval[id]) return true; // ne radi nista ako nije promijenjeno // Blokiraj ako je slanje u toku if (zamger_ajah_sending) { element.focus(); element.select(); return false; } if (id%2==1) { // Ocjena // Provjera ispravnosti if (vrijednost != "/" && (!parseInt(vrijednost) || parseInt(vrijednost)<6 || parseInt(vrijednost)>10)) { alert("Neispravna ocjena: "+vrijednost+" !\nOcjena mora biti u opsegu 6-10 ili znak / za poništavanje "+id); element.value = origval[id]; if (origval[id]=="/") element.value=""; element.focus(); element.select(); return false; } ajah_start("index.php?c=N&sta=common/ajah&akcija=prosli_ciklus_ocjena&osoba="+osoba+"&nova="+vrijednost+"&rednibroj="+rednibroj,"document.getElementById('prijemniocjene'+"+id+").focus()"); } else { // ECTS if (vrijednost != "/" && (!parseFloat(vrijednost) || parseFloat(vrijednost)<=0 || parseFloat(vrijednost)>20)) { alert("Neispravan ECTS: "+vrijednost+" !\nECTS mora biti u opsegu 0-20 ili znak / za poništavanje "+id); element.value = origval[id]; if (origval[id]=="/") element.value=""; element.focus(); element.select(); return false; } ajah_start("index.php?c=N&sta=common/ajah&akcija=prosli_ciklus_ects&osoba="+osoba+"&nova="+vrijednost+"&rednibroj="+rednibroj,"document.getElementById('prijemniocjene'+"+id+").focus()"); } origval[id]=vrijednost; izracunaj_bodove(); } function enterhack2(element,e,gdje) { if(e.keyCode==13) { element.blur(); document.getElementById('prijemniocjene'+gdje).focus(); document.getElementById('prijemniocjene'+gdje).select(); return false; } } var origval=new Array(); </SCRIPT> <table border="0" cellspacing="0" cellpadding="1"> <tr><td valign="top"> <table border="0" cellspacing="0" cellpadding="1"> <tr><td>Predmet </td><td align="center"><b>Ocjena</b></td><td align="center"><b>ECTS</b></td></td></tr> <?php $q = myquery("SELECT ocjena, ects, redni_broj FROM prosliciklus_ocjene WHERE osoba={$osoba}"); $ocjene = $ects = array(); while ($r = mysql_fetch_row($q)) { if ($r[2] == 0) { $ocjene[] = $r[0]; $ects[] = $r[1]; } else { $ocjene[$r[2]] = $r[0]; $ects[$r[2]] = $r[1]; } } for ($i = 1; $i <= 25; $i++) { ?> <tr><td align="right"><?php echo $i; ?> .</td> <SCRIPT language="JavaScript"> origval[<?php echo $i * 2 - 1; ?> ]='<?php echo $ocjene[$i]; ?> '</SCRIPT> <td align="center"><input type="text" id="prijemniocjene<?php echo $i * 2 - 1; ?> " size="4" value="<?php echo $ocjene[$i]; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="return enterhack2(this,event,<?php echo $i * 2; ?> )"></td> <SCRIPT language="JavaScript"> origval[<?php echo $i * 2; ?> ]='<?php echo $ects[$i]; ?> '</SCRIPT> <td align="center"><input type="text" id="prijemniocjene<?php echo $i * 2; ?> " size="4" value="<?php echo $ects[$i]; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="return enterhack2(this,event,<?php echo $i * 2 + 1; ?> )"></td> </tr><?php } ?> </table> </td><td width="30"> </td> <td valign="top"> <table border="0" cellspacing="0" cellpadding="1"> <tr><td>Predmet </td><td align="center"><b>Ocjena</b></td><td align="center"><b>ECTS</b></td></td></tr> <?php for ($i = 26; $i <= 50; $i++) { ?> <tr><td align="right"><?php echo $i; ?> .</td> <td align="center"><input type="text" id="prijemniocjene<?php echo $i * 2 - 1; ?> " size="4" value="<?php echo $ocjene[$i]; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="return enterhack2(this,event,<?php echo $i * 2; ?> )"></td> <td align="center"><input type="text" id="prijemniocjene<?php echo $i * 2; ?> " size="4" value="<?php echo $ects[$i]; ?> " style="border:1px black solid" onblur="izgubio_focus(this)" onfocus="dobio_focus(this)" onkeydown="return enterhack2(this,event,<?php echo $i * 2 + 1; ?> )"></td> </tr><?php } ?> </table> </td></tr></table> <?php ?> <br /><br /> <!-- Tablica bodova --> <fieldset style="width:200px" style="background-color:#0099FF"> <legend>Bodovi</legend> <table align="center" width="600" border="0"> <tr> <td align="left">Prethodni ciklus: <input maxlength="20" size="10" name="opci_uspjeh" id="opci_uspjeh" type="text" value="<?php echo $eopci; ?> "><font color="#FF0000">*</font></td> <td align="left">Dodatni bodovi: <input maxlength="20" size="10" name="dodatni_bodovi" type="text" value="<?php echo $edodatni; ?> "></td> </tr> </table> </fieldset> </form> <!-- Provjera zajedno sa bodovima --> <SCRIPT language="JavaScript"> function provjeri_sve_bodovi() { var nesto = document.getElementById('opci_uspjeh'); if (parseInt(nesto.value)==0) { alert("Opći uspjeh je nula!"); nesto.focus(); return false; } var nesto = document.getElementById('broj_semestara'); if (parseInt(nesto.value)==0) { alert("Broj semestara je nula!"); nesto.focus(); return false; } return provjeri_sve(); } </script> <p><font color="#FF0000">*</font> - Sva polja označena zvjezdicom su obavezna.<br/> <input type="button" value="Snimi" onclick="provjeri_sve_bodovi()"></p> <p> </p> <?php } } // if ($vrstaunosa) ... else if ... else { } // ne znam od cega je ovo? ?> </td></tr></table></center> <?php }
function public_predmeti($modul) { // $modul - gdje vodi link, ostaviti prazno ako ne zelite link, // ako modul trazi dodatne parametre - navedite ih npr. // "saradnik/grupa&id=0" $link = "<a href=\"?sta={$modul}&predmet=--PK--\" target=\"_blank\">"; $linka = "</a>"; if ($modul == "") { $link = $linka = ""; } // Javascript za ajah ?> <script language="JavaScript"> function ucitavaj(semestar, studij, ag) { var rp=document.getElementById('sem-'+semestar+'-'+studij+'-'+ag); if (rp.innerHTML != "prazan") return; // Vec je ucitan rp.innerHTML = "<br/> Molimo sačekajte..."; ajah_start("?sta=common/ajah&akcija=spisak_predmeta&ag="+ag+"&studij="+studij+"&semestar="+semestar, "", "napuni_rezultate("+semestar+","+studij+","+ag+")"); } function napuni_rezultate(semestar,studij,ag) { var rp=document.getElementById('sem-'+semestar+'-'+studij+'-'+ag); var tekst = frames['zamger_ajah'].document.body.innerHTML; rp.innerHTML=""; var oldpozicija=0, pozicija=0; do { // Uzimam jedan red var pozicija = tekst.indexOf('|',oldpozicija); var tmptekst = tekst.substr(oldpozicija,pozicija-oldpozicija); if (tmptekst.length<2) { oldpozicija=pozicija+1; continue; } if (tmptekst == "OK") break; rp.innerHTML += "<br/> "; oldpozicija=pozicija+1; // Razdvajam id predmeta od naziva predmeta var pidpos = tmptekst.indexOf(' '); var predmetid = tmptekst.substr(0,pidpos); var predmetnaziv = tmptekst.substr(pidpos+1); var linkp = '<?php echo $link; ?> '; linkp=linkp.replace("--PK--", predmetid+"&ag="+ag); rp.innerHTML += linkp+predmetnaziv+"</a>"; } while (pozicija>=0); } </script> <?php // Skripta daj_stablo se sada nalazi u js/stablo.js, a ukljucena je u index.php $q1 = myquery("select ag.id,ag.naziv from akademska_godina as ag where (select count(*) from ponudakursa as pk where pk.akademska_godina=ag.id)>0 order by ag.id"); while ($r1 = mysql_fetch_row($q1)) { print "<br/>" . dajplus("ag-{$r1['0']}", "{$r1['1']} akademska godina"); $q2 = myquery("select s.id, s.naziv from studij as s where (select count(*) from ponudakursa as pk where pk.akademska_godina={$r1['0']} and pk.studij=s.id)>0 order by s.id"); while ($r2 = mysql_fetch_row($q2)) { print "<br/> "; print dajplus("studij-{$r2['0']}-{$r1['0']}", $r2[1]); $q3 = myquery("select semestar from ponudakursa where studij={$r2['0']} and akademska_godina={$r1['0']} group by semestar order by semestar"); while ($r3 = mysql_fetch_row($q3)) { print "<br/> "; print "<img src=\"images/plus.png\" width=\"13\" height=\"13\" id=\"img-sem-{$r3['0']}-{$r2['0']}-{$r1['0']}\" onclick=\"daj_stablo('sem-{$r3['0']}-{$r2['0']}-{$r1['0']}'); ucitavaj('{$r3['0']}', '{$r2['0']}', '{$r1['0']}');\"> {$r3['0']}. semestar <div id=\"sem-{$r3['0']}-{$r2['0']}-{$r1['0']}\" style=\"display:none\">prazan</div>"; } print "</div>\n"; } print "</div>\n"; } print ajah_box(); }
function common_inbox() { global $userid, $user_student, $user_nastavnik; // LEGENDA tabele poruke // Tip: // 1 - obavjestenja // 2 - lične poruke // Opseg: // 0 - svi korisnici Zamgera // 1 - svi studenti // 2 - svi nastavnici // 3 - svi studenti na studiju (primalac - id studija) // 4 - svi studenti na godini (primalac - id akademske godine) // 5 - svi studenti na predmetu (primalac - id predmeta) // 6 - svi studenti na labgrupi (primalac - id labgrupe) // 7 - korisnik (primalac - user id) // 8 - svi studenti na godini studija (primalac - idstudija*10+godina_studija) // Podaci potrebni kasnije // Zadnja akademska godina $q20 = myquery("select id,naziv from akademska_godina where aktuelna=1"); $ag = mysql_result($q20, 0, 0); // Studij koji student trenutno sluša $studij = 0; if ($user_student) { $q30 = myquery("select ss.studij,ss.semestar,ts.ciklus from student_studij as ss, studij as s, tipstudija as ts where ss.student={$userid} and ss.akademska_godina={$ag} and ss.studij=s.id and s.tipstudija=ts.id order by ss.semestar desc limit 1"); if (mysql_num_rows($q30) > 0) { $studij = mysql_result($q30, 0, 0); $semestar = mysql_result($q30, 0, 1); $ciklus = mysql_result($q30, 0, 2); $godina_studija = ($semestar + 1) / 2; } } // Pravimo neki okvir za sajt ?> <center> <table width="80%" border="0"><tr><td> <h1>Lične poruke</h1> <?php ////////////////////// // Slanje poruke ////////////////////// if ($_POST['akcija'] == 'send' && check_csrf_token()) { // Ko je primalac $primalac = my_escape($_REQUEST['primalac']); $primalac = preg_replace("/\\(.*?\\)/", "", $primalac); $q300 = myquery("select id from auth where login='******'"); if (mysql_num_rows($q300) < 1) { niceerror("Nepoznat primalac"); return; // FIXME } $prim_id = mysql_result($q300, 0, 0); // Samo slanje licnih poruka je dozvoljeno... $q310 = myquery("insert into poruka set tip=2, opseg=7, primalac={$prim_id}, posiljalac={$userid}, vrijeme=NOW(), ref=" . intval($_REQUEST['ref']) . ", naslov='" . my_escape($_REQUEST['naslov']) . "', tekst='" . my_escape($_REQUEST['tekst']) . "'"); nicemessage("Poruka uspješno poslana"); zamgerlog("poslana poruka za u{$prim_id}", 2); zamgerlog2("poslana poruka", intval($prim_id)); } if ($_REQUEST['akcija'] == 'compose' || $_REQUEST['akcija'] == 'odgovor') { if ($_REQUEST['akcija'] == 'odgovor') { $poruka = intval($_REQUEST['poruka']); $q200 = myquery("select posiljalac, naslov, tekst, primalac from poruka where id={$poruka}"); if (mysql_num_rows($q200) < 1) { niceerror("Poruka ne postoji"); zamgerlog("pokusaj odgovora na nepostojecu poruku {$poruka}", 3); zamgerlog2("pokusaj odgovora na nepostojecu poruku", $poruka); return; } // Ko je poslao originalnu poruku (tj. kome odgovaramo) $prim_id = mysql_result($q200, 0, 0); if ($prim_id == $userid) { // U slučaju odgovora na poslanu poruku, ponovo šaljemo poruku istoj osobi $prim_id = mysql_result($q200, 0, 3); } $q210 = myquery("select a.login,o.ime,o.prezime from auth as a, osoba as o where a.id=o.id and o.id={$prim_id}"); if (mysql_num_rows($q210) < 1) { niceerror("Nepoznat pošiljalac"); zamgerlog("poruka {$poruka} ima nepoznatog posiljaoca {$prim_id} (prilikom odgovora na poruku)", 3); zamgerlog2("poruka ima nepoznatog posiljaoca (prilikom odgovora na poruku)", $poruka, $prim_id); return; } else { $primalac = mysql_result($q210, 0, 0) . " (" . mysql_result($q210, 0, 1) . " " . mysql_result($q210, 0, 2) . ")"; } // Prepravka naslova i teksta $naslov = mysql_result($q200, 0, 1); if (substr($naslov, 0, 3) != "Re:") { $naslov = "Re: " . $naslov; } $tekst = mysql_result($q200, 0, 2); for ($i = 80; $i < strlen($tekst); $i += 81) { $k = $i - 80; while ($k < $i && $k !== false) { $oldk = $k; $k = strpos($tekst, " ", $k + 1); } if ($oldk == $i - 80) { $tekst = substr($tekst, 0, $i) . "\n" . substr($tekst, $i); } else { $tekst = substr($tekst, 0, $oldk) . "\n" . substr($tekst, $oldk + 1); } } $tekst = "> " . str_replace("\n", "\n> ", $tekst); $tekst .= "\n\n"; } else { // Omogucujemo da se naslov, tekst i primalac zadaju preko URLa if ($_REQUEST['naslov']) { $naslov = my_escape($_REQUEST['naslov']); } else { $naslov = ""; } if ($_REQUEST['tekst']) { $tekst = my_escape($_REQUEST['tekst']); } else { $tekst = ""; } if ($_REQUEST['primalac']) { $primalac = my_escape($_REQUEST['primalac']); } else { $primalac = ""; } } ?> <a href="?sta=common/inbox">Nazad na inbox</a><br/> <h3>Slanje poruke</h3> <?php echo genform("POST"); ?> <?php if ($_REQUEST['akcija'] == 'odgovor') { ?> <input type="hidden" name="ref" value="<?php echo $poruka; ?> "><?php } ?> <input type="hidden" name="akcija" value="send"> <script language="javascript"> var tm=0; function startaj_timer(e) { sakrij_pretragu(); if(e.keyCode!=13 && e.keyCode!=9) tm = setTimeout('pretraga_primalaca()',1000); } function pretraga_primalaca() { var ib=document.getElementById('primalac'); var pg=document.getElementById('pretgraga'); if (ib.value.length<3) return; //alert("Trazim: "+ib.value); // Nadji poziciju objekta var curleft = curtop = 0; var obj=ib; if (obj.offsetParent) { do { curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); } pg.style.visibility = 'visible'; pg.style.left=curleft; pg.style.top=curtop+ib.offsetHeight; ajah_start("index.php?c=N&sta=common/ajah&akcija=pretraga&ime="+ib.value, "", "napuni_rezultate()"); } function napuni_rezultate() { var rp=document.getElementById('rezultati_pretrage'); var tekst = frames['zamger_ajah'].document.body.innerHTML; var oldpozicija=0; rp.innerHTML = ""; do { var pozicija = tekst.indexOf('\n',oldpozicija); var tmptekst = tekst.substr(oldpozicija,pozicija-oldpozicija); if (tmptekst.length<2) { oldpozicija=pozicija+1; continue; } if (tmptekst == "OK") break; if (tmptekst == "Nema rezultata") { rp.innerHTML = rp.innerHTML + "<font color=\"#AAAAAA\">(Nema rezultata)</font><br/>"; } else { rp.innerHTML = rp.innerHTML+"<a href=\"javascript:postavi('"+tmptekst+"')\">"+tmptekst+"</a><br/>"; } oldpozicija=pozicija+1; } while (pozicija>=0); } function sakrij_pretragu() { var pg=document.getElementById('pretgraga'); pg.style.visibility = 'hidden'; if (tm!=0) clearTimeout(tm); } function postavi(prim) { var ib=document.getElementById('primalac'); ib.value=prim; sakrij_pretragu(); } function blur_dogadjaj(e) { setTimeout('sakrij_pretragu()',1000); } </script> <table border="0"> <tr><td><b>Primalac:</b></td><td><input type="text" name="primalac" id="primalac" size="40" value="<?php echo $primalac; ?> " autocomplete="off" onkeypress="startaj_timer(event);" onblur="blur_dogadjaj(event);"></td></tr> <tr><td colspan="2"><input type="radio" name="metoda" value="1" DISABLED> Pošalji e-mail <input type="radio" name="metoda" value="2" CHECKED> Pošalji Zamger poruku<br/> <br/></td></tr> <tr><td><b>Naslov:</b></td><td><input type="text" name="naslov" size="40" value="<?php echo $naslov; ?> "></td></tr> </table> <!-- Rezultati pretrage primaoca --> <div id="pretgraga" style="position:absolute;visibility:hidden"> <table border="0" bgcolor="#FFFFEE" style="border:1px;border-color:silver;border-style:solid;"> <tr><td> <div id="rezultati_pretrage"></div> </td></tr> </table> </div> <br/> Tekst poruke:<br/> <textarea name="tekst" rows="10" cols="81"><?php echo $tekst; ?> </textarea> <br/> <br/> <input type="submit" value=" Pošalji "> <input type="reset" value=" Poništi "> </form> <?php print ajah_box(); return; } ?> <p><a href="?sta=common/inbox&akcija=compose">Pošalji novu poruku</a> * <?php if ($_REQUEST['mode'] == "outbox") { ?> <a href="?sta=common/inbox">Vaše sanduče</a><?php } else { ?> <a href="?sta=common/inbox&mode=outbox">Vaše poslane poruke</a><?php } ?> </p> <?php ////////////////////// // Čitanje poruke ////////////////////// $mjeseci = array("", "januar", "februar", "mart", "april", "maj", "juni", "juli", "avgust", "septembar", "oktobar", "novembar", "decembar"); $dani = array("Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"); $poruka = intval($_REQUEST['poruka']); if ($poruka > 0) { // Dobavljamo podatke o poruci $q10 = myquery("select opseg, primalac, posiljalac, UNIX_TIMESTAMP(vrijeme), naslov, tekst, tip from poruka where id={$poruka}"); if (mysql_num_rows($q10) < 1) { niceerror("Poruka ne postoji"); zamgerlog("pristup nepostojecoj poruci {$poruka}", 3); zamgerlog2("pristup nepostojecoj poruci", $poruka); return; } // Posiljalac $opseg = mysql_result($q10, 0, 0); $prim_id = mysql_result($q10, 0, 1); $pos_id = mysql_result($q10, 0, 2); if ($opseg == 1 && !$user_student || $opseg == 2 && !$user_nastavnik || $opseg == 3 && $prim_id != $studij && $prim_id != -$ciklus || $opseg == 4 && $prim_id != $ag || $opseg == 7 && $prim_id != $userid && $_REQUEST['mode'] !== "outbox" || $opseg == 7 && $_REQUEST['mode'] === "outbox" && $pos_id != $userid || $opseg == 8 && $prim_id != $studij * 10 + $godina_studija && $prim_id != -$ciklus * 10 - $godina_studija) { niceerror("Nemate pravo pristupa ovoj poruci!"); zamgerlog("pokusao pristupiti poruci {$poruka}", 3); zamgerlog2("nema pravo pristupa poruci", $poruka); return; } if ($opseg == 5) { // da li student ikada slusao predmet? ako jeste moze citati poruke za taj predmet... (FIXME?) $q110 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.student={$userid} and sp.predmet=pk.id and pk.predmet={$prim_id}"); if (mysql_result($q110, 0, 0) < 1) { niceerror("Nemate pravo pristupa ovoj poruci!"); zamgerlog("pokusao pristupiti poruci {$poruka}", 3); zamgerlog2("nema pravo pristupa poruci", $poruka); return; } } if ($opseg == 6) { // da li je student u labgrupi? $q115 = myquery("select count(*) from student_labgrupa where student={$userid} and labgrupa={$prim_id}"); if (mysql_result($q115, 0, 0) < 1) { niceerror("Nemate pravo pristupa ovoj poruci!"); zamgerlog("pokusao pristupiti poruci {$poruka}", 3); zamgerlog2("nema pravo pristupa poruci", $poruka); return; } } $q20 = myquery("select ime,prezime from osoba where id={$pos_id}"); if (mysql_num_rows($q20) < 1) { $posiljalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog posiljaoca {$pos_id}", 3); zamgerlog2("poruka ima nepoznatog posiljaoca", $poruka, $pos_id); } else { $posiljalac = mysql_result($q20, 0, 0) . " " . mysql_result($q20, 0, 1); } // Primalac if ($opseg == 0) { $primalac = "Svi korisnici Zamgera"; } else { if ($opseg == 1) { $primalac = "Svi studenti"; } else { if ($opseg == 2) { $primalac = "Svi nastavnici i saradnici"; } else { if ($opseg == 3) { $q30 = myquery("select naziv from studij where id={$prim_id}"); if (mysql_num_rows($q30) < 1) { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog primaoca {$prim_id} (opseg: studij)", 3); zamgerlog2("poruka ima nepoznatog primaoca (opseg: studij)", $poruka, $prim_id); } else { $primalac = "Svi studenti na: " . mysql_result($q30, 0, 0); } } else { if ($opseg == 4) { $q40 = myquery("select naziv from akademska_godina where id={$prim_id}"); if (mysql_num_rows($q40) < 1) { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog primaoca {$prim_id} (opseg: akademska godina)", 3); zamgerlog2("poruka ima nepoznatog primaoca (opseg: akademska godina)", $poruka, $prim_id); } else { $primalac = "Svi studenti na akademskoj godini: " . mysql_result($q40, 0, 0); } } else { if ($opseg == 5) { $q50 = myquery("select naziv from predmet where id={$prim_id}"); if (mysql_num_rows($q50) < 1) { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog primaoca {$prim_id} (opseg: predmet)", 3); zamgerlog2("poruka ima nepoznatog primaoca (opseg: predmet)", $poruka, $prim_id); } else { $primalac = "Svi studenti na predmetu: " . mysql_result($q50, 0, 0); } } else { if ($opseg == 6) { $q55 = myquery("select p.naziv,l.naziv from predmet as p, labgrupa as l where l.id={$prim_id} and l.predmet=p.id"); if (mysql_num_rows($q55) < 1) { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog primaoca {$prim_id} (opseg: labgrupa)", 3); zamgerlog2("poruka ima nepoznatog primaoca (opseg: labgrupa)", $poruka, $prim_id); } else { $primalac = "Svi studenti u grupi " . mysql_result($q55, 0, 1) . " (" . mysql_result($q55, 0, 0) . ")"; } } else { if ($opseg == 7) { $q60 = myquery("select ime,prezime from osoba where id={$prim_id}"); if (mysql_num_rows($q60) < 1) { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog primaoca {$prim_id} (opseg: korisnik)", 3); zamgerlog2("poruka ima nepoznatog primaoca (opseg: korisnik)", $poruka, $prim_id); } else { $primalac = mysql_result($q60, 0, 0) . " " . mysql_result($q60, 0, 1); } } else { if ($opseg == 8) { $studij = intval($prim_id / 10); if ($studij == -1) { $godina = -($prim_id + 10); $primalac = "Svi studenti na: Prvom ciklusu studija, {$godina}. godina"; } else { if ($studij == -2) { $godina = -($prim_id + 20); $primalac = "Svi studenti na: Drugom ciklusu studija, {$godina}. godina"; } else { $godina = $prim_id % 10; $q30 = myquery("select naziv from studij where id={$studij}"); if (mysql_num_rows($q30) < 1) { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznatog primaoca {$prim_id} (opseg: godina studija)", 3); zamgerlog2("poruka ima nepoznatog primaoca (opseg: godina studija)", $poruka, $prim_id); } else { $primalac = "Svi studenti na: " . mysql_result($q30, 0, 0) . ", {$godina}. godina"; } } } } else { $primalac = "Nepoznato!?"; zamgerlog("poruka {$poruka} ima nepoznat opseg {$opseg}", 3); zamgerlog2("poruka ima nepoznat opseg", $poruka, $opseg); } } } } } } } } } // Fini datum $vr = mysql_result($q10, 0, 3); if (date("d.m.Y", $vr) == date("d.m.Y")) { $vrijeme = "<i>danas</i> - "; } else { if (date("d.m.Y", $vr + 3600 * 24) == date("d.m.Y")) { $vrijeme = "<i>juče</i> - "; } } $vrijeme .= $dani[date("w", $vr)] . date(", j. ", $vr) . $mjeseci[date("n", $vr)] . date(" Y. H:i", $vr); // Naslov $tip = mysql_result($q10, 0, 6); if ($tip == 1) { $naslov = "O B A V J E Š T E N J E"; $tekst = mysql_result($q10, 0, 4) . "\n\n"; } else { $naslov = mysql_result($q10, 0, 4); if (!preg_match("/\\S/", $naslov)) { $naslov = "[Bez naslova]"; } $tekst = ""; } ?> <h3>Prikaz poruke</h3> <table cellspacing="0" cellpadding="0" border="0" style="border:1px;border-color:silver;border-style:solid;"><tr><td bgcolor="#f2f2f2"> <table border="0"> <tr><td><b>Vrijeme slanja:</b></td><td><?php echo $vrijeme; ?> </td></tr> <tr><td><b>Pošiljalac:</b></td><td><?php echo $posiljalac; ?> </td></tr> <tr><td><b>Primalac:</b></td><td><?php echo $primalac; ?> </td></tr> <tr><td><b>Naslov:</b></td><td><?php echo $naslov; ?> (<a href="?sta=common/inbox&akcija=odgovor&poruka=<?php echo $poruka; ?> ">odgovori</a>)</td></tr> </table> </td></tr><tr><td> <br/> <table border="0" cellpadding="5"><tr><td> <?php $tekst .= mysql_result($q10, 0, 5); // Dodajemo na eventualni naslov obavještenja $i = 0; while (strpos($tekst, "http://", $i) !== false || strpos($tekst, "https://", $i) !== false) { $j = strpos($tekst, "http://", $i); if ($j == false) { $j = strpos($tekst, "https://", $i); } $k = strpos($tekst, " ", $j); $k2 = strpos($tekst, "\n", $j); if ($k2 < $k && $k2 != 0) { $k = $k2; } if ($k == 0) { $k = $k2; } if ($k == 0) { $k = strlen($tekst); } do { $k--; $a = substr($tekst, $k, 1); } while ($a == "." || $a == "," || $a == ")" || $a == "!" || $a == "?"); $k++; if ($k - $j < 9) { $i = $j + 1; continue; } $url = substr($tekst, $j, $k - $j); $tekst = substr($tekst, 0, $j) . "<a href=\"{$url}\" target=\"_blank\">{$url}</a>" . substr($tekst, $k); $i = $j + strlen($url) + 28; } $tekst = str_replace("\n", "<br/>\n", $tekst); print $tekst; ?> </td><tr></table> </td></tr></table> <br/><br/> <a href="?sta=common/inbox&akcija=odgovor&poruka=<?php echo $poruka; ?> ">Odgovorite na poruku</a> <br/><hr><br/><?php } ////////////////////// // OUTBOX ////////////////////// if ($_REQUEST['mode'] == "outbox") { print "<h3>Poslane poruke:</h3>\n"; ?> <table border="0" width="100%" style="border:1px;border-color:silver;border-style:solid;"> <thead> <tr bgcolor="#cccccc"><td width="15%"><b>Datum</b></td><td width="15%"><b>Primalac</b></td><td width="70%"><b>Naslov</b></td></tr> </thead> <tbody> <?php $vrijeme_poruke = array(); $q100 = myquery("select id, UNIX_TIMESTAMP(vrijeme), opseg, primalac, naslov, posiljalac from poruka where tip=2 and posiljalac={$userid} order by vrijeme desc"); while ($r100 = mysql_fetch_row($q100)) { $id = $r100[0]; $opseg = $r100[2]; $primalac = $r100[3]; $vrijeme_poruke[$id] = $r100[1]; $naslov = $r100[4]; if (strlen($naslov) > 60) { $naslov = substr($naslov, 0, 55) . "..."; } if (!preg_match("/\\S/", $naslov)) { $naslov = "[Bez naslova]"; } // Primalac $q120 = myquery("select ime,prezime from osoba where id={$primalac}"); if (mysql_num_rows($q120) < 1) { $primalac = "Nepoznato! Prijavite grešku"; } else { $primalac = mysql_result($q120, 0, 0) . " " . mysql_result($q120, 0, 1); } // Fino vrijeme $vr = $vrijeme_poruke[$id]; $vrijeme = ""; if (date("d.m.Y", $vr) == date("d.m.Y")) { $vrijeme = "<i>danas</i>, "; } else { if (date("d.m.Y", $vr + 3600 * 24) == date("d.m.Y")) { $vrijeme = "<i>juče</i>, "; } else { $vrijeme .= date("j. ", $vr) . $mjeseci[date("n", $vr)] . ", "; } } $vrijeme .= date("H:i", $vr); if ($_REQUEST['poruka'] == $id) { $bgcolor = "#EEEECC"; } else { $bgcolor = "#FFFFFF"; } $code_poruke[$id] = "<tr bgcolor=\"{$bgcolor}\" onmouseover=\"this.bgColor='#EEEEEE'\" onmouseout=\"this.bgColor='{$bgcolor}'\"><td>{$vrijeme}</td><td>{$primalac}</td><td><a href=\"?sta=common/inbox&poruka={$id}&mode=outbox\">{$naslov}</a></td></tr>\n"; } // Sortiramo po vremenu arsort($vrijeme_poruke); $count = 0; foreach ($vrijeme_poruke as $id => $vrijeme) { print $code_poruke[$id]; $count++; // if ($count==20) break; // prikazujemo 20 poruka -- TODO: stranice } if ($count == 0) { print "<li>Nemate nijednu poruku.</li>\n"; } print "</tbody></table>"; ?> </td></tr></table></center> <?php ////////////////////// // INBOX ////////////////////// } else { $velstranice = 20; // Broj poruka po stranici $count = 0; $ispis = ""; $stranica = intval($_REQUEST['stranica']); if ($stranica == 0) { $stranica = 1; } print "<h3>Poruke u vašem sandučetu:</h3>\n"; ?> <table border="0" width="100%" style="border:1px;border-color:silver;border-style:solid;"> <thead> <tr bgcolor="#cccccc"><td width="15%"><b>Datum</b></td><td width="15%"><b>Autor</b></td><td width="70%"><b>Naslov</b></td></tr> </thead> <tbody> <?php $vrijeme_poruke = array(); $q100 = myquery("select id, UNIX_TIMESTAMP(vrijeme), opseg, primalac, naslov, posiljalac from poruka where tip=2 order by vrijeme desc"); while ($r100 = mysql_fetch_row($q100)) { $id = $r100[0]; $opseg = $r100[2]; $primalac = $r100[3]; if ($opseg == 2 || $opseg == 3 && $primalac != $studij || $opseg == 4 && $primalac != $ag || $opseg == 7 && $primalac != $userid) { continue; } if ($opseg == 5) { // da li je student ikada slusao predmet? (FIXME?) $q110 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.student={$userid} and sp.predmet=pk.id and pk.predmet={$primalac}"); if (mysql_result($q110, 0, 0) < 1) { continue; } } if ($opseg == 6) { // da li je student u labgrupi? $q115 = myquery("select count(*) from student_labgrupa where student={$userid} and labgrupa={$primalac}"); if (mysql_result($q115, 0, 0) < 1) { continue; } } $vrijeme_poruke[$id] = $r100[1]; $naslov = $r100[4]; if (strlen($naslov) > 60) { $naslov = substr($naslov, 0, 55) . "..."; } if (!preg_match("/\\S/", $naslov)) { $naslov = "[Bez naslova]"; } // Posiljalac $q120 = myquery("select ime,prezime from osoba where id={$r100['5']}"); if (mysql_num_rows($q120) < 1) { $posiljalac = "Nepoznato! Prijavite grešku"; } else { $posiljalac = mysql_result($q120, 0, 0) . " " . mysql_result($q120, 0, 1); } // Fino vrijeme $vr = $vrijeme_poruke[$id]; $vrijeme = ""; if (date("d.m.Y", $vr) == date("d.m.Y")) { $vrijeme = "<i>danas</i>, "; } else { if (date("d.m.Y", $vr + 3600 * 24) == date("d.m.Y")) { $vrijeme = "<i>juče</i>, "; } else { $vrijeme .= date("j. ", $vr) . $mjeseci[date("n", $vr)] . ", "; } } $vrijeme .= date("H:i", $vr); if ($_REQUEST['poruka'] == $id) { $bgcolor = "#EEEECC"; } else { $bgcolor = "#FFFFFF"; } //$count++; $count++; if ($count > ($stranica - 1) * $velstranice && $count <= $stranica * $velstranice) { $ispis .= "<tr bgcolor=\"{$bgcolor}\" onmouseover=\"this.bgColor='#EEEEEE'\" onmouseout=\"this.bgColor='{$bgcolor}'\"><td>{$vrijeme}</td><td>{$posiljalac}</td><td><a href=\"?sta=common/inbox&poruka={$id}&stranica={$stranica}\">{$naslov}</a></td></tr>\n"; } } if ($count == 0) { print "<li>Nemate nijednu poruku.</li>\n"; } if ($count > $velstranice) { $broj_stranica = ($count - 1) / $velstranice + 1; print "<p>Stranica: "; for ($i = 1; $i <= $broj_stranica; $i++) { if ($stranica == $i) { print "{$i} "; } else { print "<a href=\"?sta=common/inbox&stranica={$i}\">{$i}</a> "; } } print "</p>\n"; } print $ispis; print "</tbody></table>"; ?> </td></tr></table></center> <?php } }
function saradnik_student() { global $userid, $user_siteadmin, $conf_ldap_domain; require "lib/manip.php"; // radi ispisa studenta sa predmeta print '<p><a href="index.php?sta=saradnik/intro">Spisak predmeta i grupa</a></p>' . "\n"; // Ulazni parametri $student = intval($_REQUEST['student']); $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // Provjera ulaznih podataka i podaci za naslov // Student $q40 = myquery("select ime, prezime, brindexa, slika from osoba where id={$student}"); if (mysql_num_rows($q40) < 1) { biguglyerror("Nepoznat student"); zamgerlog("nepoznat student {$student}", 3); zamgerlog2("nepoznat student", $student); return; } $ime = mysql_result($q40, 0, 0); $prezime = mysql_result($q40, 0, 1); $brindexa = mysql_result($q40, 0, 2); $slika = mysql_result($q40, 0, 3); $mailprint = ""; $q45 = myquery("SELECT adresa FROM email WHERE osoba={$student} ORDER BY sistemska DESC, id"); while ($r45 = mysql_fetch_row($q45)) { if ($mailprint) { $mailprint .= ", "; } $mailprint .= "<a href=\"mailto:{$r45['0']}\">{$r45['0']}</a>"; } // Predmet $q5 = myquery("select naziv from predmet where id={$predmet}"); if (mysql_num_rows($q5) < 1) { biguglyerror("Nepoznat predmet"); zamgerlog("nepoznat predmet {$predmet}", 3); return; } $nazivpredmeta = mysql_result($q5, 0, 0); $q15 = myquery("SELECT tippredmeta FROM akademska_godina_predmet WHERE akademska_godina={$ag} AND predmet={$predmet}"); $tippredmeta = mysql_result($q15, 0, 0); if ($tippredmeta == 1000) { $q4 = myquery("SELECT id FROM zavrsni WHERE student={$student} AND predmet={$predmet} AND akademska_godina={$ag}"); if (mysql_num_rows($q4) > 0) { $zavrsni = mysql_result($q4, 0, 0); ?> <script language="JavaScript"> location.href='?sta=nastavnik/zavrsni&akcija=zavrsni_stranica&zavrsni=<?php echo $zavrsni; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> '; </script> <?php return; } } // Akademska godina $q6 = myquery("select naziv from akademska_godina where id={$ag}"); if (mysql_num_rows($q6) < 1) { biguglyerror("Nepoznata akademska godina"); zamgerlog("nepoznata ag {$ag}", 3); zamgerlog2("nepoznata ag", $ag); return; } $nazivag = mysql_result($q6, 0, 0); // Da li student sluša predmet $q7 = myquery("select pk.id, pk.semestar from student_predmet as sp, ponudakursa as pk, studij as s where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and pk.studij=s.id"); if (mysql_num_rows($q7) < 1) { biguglyerror("Student nije upisan na ovaj predmet"); zamgerlog("student u{$student} ne slusa predmet pp{$predmet} ag{$ag}", 3); zamgerlog2("id studenta i predmeta ne odgovaraju", $student, $predmet, $ag); return; } $ponudakursa = mysql_result($q7, 0, 0); $semestar = mysql_result($q7, 0, 1); // Koji studij student sluša, koji put $q8 = myquery("select s.naziv, ss.semestar, ns.naziv, ss.ponovac from student_studij as ss, studij as s, nacin_studiranja as ns where ss.student={$student} and ss.akademska_godina={$ag} and ss.semestar mod 2 = " . $semestar % 2 . " and ss.studij=s.id and ss.nacin_studiranja=ns.id"); if (mysql_num_rows($q8) < 1) { $q8 = myquery("select s.naziv, ss.semestar, ns.naziv, ss.ponovac from student_studij as ss, studij as s, nacin_studiranja as ns where ss.student={$student} and ss.akademska_godina={$ag} and ss.semestar mod 2 = 1 and ss.studij=s.id and ss.nacin_studiranja=ns.id"); } if (mysql_num_rows($q8) < 1) { $nazivstudija = "Nije upisan na studij!"; $kolpren = $ponovac = $nacin_studiranja = ""; } else { $nazivstudija = mysql_result($q8, 0, 0); if (mysql_result($q8, 0, 1) < $semestar) { $kolpren = ", kolizija"; } else { if (mysql_result($q8, 0, 1) > $semestar) { $kolpren = ", prenio predmet"; } else { $kolpren = ""; } } $semestar = mysql_result($q8, 0, 1); $nacin_studiranja = mysql_result($q8, 0, 2); if (mysql_result($q8, 0, 3) == 1) { $ponovac = ", ponovac"; } else { $ponovac = ""; } } $q9 = myquery("select ag.id, ag.naziv from student_predmet as sp, ponudakursa as pk, akademska_godina as ag where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina<{$ag} and pk.akademska_godina=ag.id order by ag.id"); if (mysql_num_rows($q9) > 0) { $kojiput = "(" . (mysql_num_rows($q9) + 1) . ". put sluša predmet)"; $dosjei = " Pogledajte dosje za: "; $zarez = 0; while ($r9 = mysql_fetch_row($q9)) { if ($zarez == 0) { $zarez = 1; } else { $dosjei .= ", "; } $dosjei .= "<a href=\"?sta=saradnik/student&student={$student}&predmet={$predmet}&ag={$r9['0']}\">{$r9['1']}</a>"; } $dosjei .= "<br />\n"; } else { $kojiput = ""; $dosjei = ""; } // U kojoj je grupi student $q20 = myquery("select l.id, l.naziv from student_labgrupa as sl, labgrupa as l where sl.student={$student} and sl.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag} order by l.virtualna"); if (mysql_num_rows($q20) > 0) { $labgrupa = mysql_result($q20, 0, 0); $lgnaziv = mysql_result($q20, 0, 1); } else { $labgrupa = 0; // Nema labgrupa ili nije ni u jednoj } // Provjera prava pristupa if (!$user_siteadmin) { $q10 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q10) < 1) { biguglyerror("Nemate pravo pristupa ovom studentu"); zamgerlog("nastavnik nije na predmetu (pp{$predmet} ag{$ag})", 3); zamgerlog2("nije saradnik na predmetu", $predmet, $ag); return; } $privilegija = mysql_result($q10, 0, 0); // Provjera ogranicenja $q30 = myquery("select o.labgrupa from ogranicenje as o, labgrupa as l, student_labgrupa as sl where o.nastavnik={$userid} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}"); if (mysql_num_rows($q30) > 0) { $nasao = 0; while ($r30 = mysql_fetch_row($q30)) { if ($r30[0] == $labgrupa) { $nasao = 1; break; } } if ($nasao == 0) { biguglyerror("Student je u grupi za koju vam je ograničen pristup"); zamgerlog("ogranicenje na labgrupu g{$labgrupa}", 3); zamgerlog2("ima ogranicenje na labgrupu", intval($labgrupa)); return; } } } // ---- AKCIJE // Akcija: ispis studenta sa predmeta if ($_GET['akcija'] == "ispis" && $user_siteadmin) { ispis_studenta_sa_predmeta($student, $predmet, $ag); zamgerlog("student ispisan sa predmeta (student u{$student} predmet pp{$predmet})", 4); // nivo 4: audit zamgerlog2("student ispisan sa predmeta", $student, $predmet, $ag); nicemessage("Student ispisan sa predmeta."); return; } if ($_POST['akcija'] == "promjena_grupe" && check_csrf_token()) { $novagrupa = intval($_POST['grupa']); $staragrupa = 0; // Da li je student u nekoj grupi i u kojoj? // (Ne smijemo se osloniti na vrijednost varijable $labgrupa jer // to može biti virtualna grupa iz koje ga ne smijemo ispisati) $q53 = myquery("select l.id, l.naziv from student_labgrupa as sl, labgrupa as l where sl.student={$student} and sl.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag} and l.virtualna=0"); if (mysql_num_rows($q53) > 0) { $staragrupa = mysql_result($q53, 0, 0); $naziv_stare_grupe = mysql_result($q53, 0, 1); if ($novagrupa == $staragrupa) { nicemessage("Student se već nalazi u grupi {$naziv_stare_grupe}!"); print '<a href="?sta=saradnik/student&student=' . $student . '&predmet=' . $predmet . '&ag=' . $ag . '">Nazad</a>' . "\n"; return; } ispis_studenta_sa_labgrupe($student, $staragrupa); nicemessage("Student ispisan iz grupe {$naziv_stare_grupe}. Podaci o prisustvu su izgubljeni."); } if ($novagrupa > 0) { $q55 = myquery("insert into student_labgrupa set student={$student}, labgrupa={$novagrupa}"); $q57 = myquery("select naziv from labgrupa where id={$novagrupa}"); nicemessage("Student upisan u grupu " . mysql_result($q57, 0, 0) . ". Kreirani su default podaci o prisustvu."); } // Potrebno je updatovati komponentu za prisustvo jer su podaci sada promijenjeni $q4 = myquery("select k.id from tippredmeta_komponenta as tpk,komponenta as k, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and k.tipkomponente=3"); while ($r4 = mysql_fetch_row($q4)) { update_komponente($student, $ponudakursa, $r4[0]); } // Pametni logging if ($staragrupa > 0 && $novagrupa > 0) { zamgerlog("student u{$student} prebacen iz grupe g{$staragrupa} u g{$novagrupa}", 2); // 2 = edit zamgerlog2("promijenjena grupa studenta", $student, $novagrupa, 0, $staragrupa); } else { if ($staragrupa > 0) { zamgerlog("student u{$student} ispisan iz grupe g{$staragrupa}", 2); zamgerlog2("student ispisan sa grupe", $student, intval($staragrupa)); } else { zamgerlog("student u{$student} upisan u grupu g{$novagrupa}", 2); zamgerlog2("student upisan u grupu", $student, $novagrupa); } } // Linkovi za dalje print "<p>Gdje želite sada ići?:<br />\n"; if ($staragrupa > 0) { print '- <a href="?sta=saradnik/grupa&id=' . $staragrupa . '">Spisak studenata u grupi ' . mysql_result($q53, 0, 1) . '</a><br />' . "\n"; } else { print '- <a href="?sta=saradnik/grupa&predmet=' . $predmet . '&ag=' . $ag . '">Spisak svih studenata na predmetu</a><br />' . "\n"; } // Ovo je jedini slučaj kad $staragrupa može biti nula if ($novagrupa > 0) { print '- <a href="?sta=saradnik/grupa&id=' . $novagrupa . '">Spisak studenata u grupi ' . mysql_result($q57, 0, 0) . '</a><br />' . "\n"; } print '- <a href="?sta=saradnik/student&student=' . $student . '&predmet=' . $predmet . '&ag=' . $ag . '">Nazad na detalje studenta ' . $ime . ' ' . $prezime . '</a>' . "\n"; return; } if ($_GET['akcija'] == "ponisti_kviz") { $kviz = intval($_REQUEST['kviz']); $q2000 = myquery("DELETE FROM kviz_student WHERE student={$student} AND kviz={$kviz}"); } // --- ISPIS if ($slika != "") { print "<img src=\"?sta=common/slika&osoba={$student}\" align=\"left\" style=\"margin: 10px\">\n"; } // Određujemo username radi slanja poruke $poruka_link = ""; $q59 = myquery("select login from auth where id={$student}"); if (mysql_num_rows($q59) > 0) { $poruka_link = "<br><a href=\"?sta=common/inbox&akcija=compose&primalac=" . mysql_result($q59, 0, 0) . "\">Pošaljite Zamger poruku</a>"; } // Naslov ?> <h1><?php echo $ime; ?> <?php echo $prezime; ?> (<?php echo $brindexa; ?> )</h1> <p>Upisan na (<?php echo $nazivag; ?> ): <b><?php echo $nazivstudija; ?> , <?php echo $semestar; ?> . semestar <?php echo $ponovac; ?> <?php echo $kolpren; ?> <?php echo $kojiput; ?> </b> <br /> <?php echo $dosjei; ?> <b>Email: <?php echo $mailprint; echo $poruka_link; ?> </b></p> <h3>Predmet: <?php echo $nazivpredmeta; ?> <br /> <?php if ($labgrupa > 0) { print "Grupa: <a href=\"?sta=saradnik/grupa&id={$labgrupa}\">{$lgnaziv}</a>"; } else { print "(nije ni u jednoj grupi)"; } ?> </h3> <?php // Promjena grupe $q60 = myquery("select id,naziv from labgrupa where predmet={$predmet} and akademska_godina={$ag} and virtualna=0 order by naziv"); if (mysql_num_rows($q60) > 0) { ?> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="promjena_grupe"> <p>Promijenite grupu: <select name="grupa" class="default"><option value="0"<?php echo $nijedna; ?> >-- Nije ni u jednoj grupi --</option> <?php while ($r60 = mysql_fetch_row($q60)) { if ($r60[0] == $labgrupa) { $value = "SELECTED"; } else { $value = ""; } ?> <option value="<?php echo $r60[0]; ?> " <?php echo $value; ?> ><?php echo $r60[1]; ?> </option> <?php } ?> </select> <input type="submit" value=" Promijeni grupu " class="default"> </form> <?php } // PROGRESS BAR // Kod kopiran iz student/predmet - trebalo bi izdvojiti u lib $q30 = myquery("select kb.bodovi, k.maxbodova, k.tipkomponente, k.id from komponentebodovi as kb, komponenta as k where kb.student={$student} and kb.predmet={$ponudakursa} and kb.komponenta=k.id"); $bodova = $mogucih = 0; while ($r30 = mysql_fetch_row($q30)) { $bodova += $r30[0]; if ($r30[2] == 4) { // Tip komponente: zadaće $q35 = myquery("select sum(bodova) from zadaca where predmet={$predmet} and akademska_godina={$ag} and komponenta={$r30['3']}"); $do_sada_zadace = round(mysql_result($q35, 0, 0), 2); // Zbir bodova za zadaće ne može preći ono koliko nosi komponenta if ($do_sada_zadace > $r30[1]) { $mogucih += $r30[1]; } else { $mogucih += $do_sada_zadace; } } else { $mogucih += $r30[1]; } } if ($bodova > $mogucih) { $bodova = $mogucih; } //ne bi se trebalo desiti // boja označava napredak studenta if ($mogucih == 0) { $procent = 0; } else { $procent = intval($bodova / $mogucih * 100); } if ($procent >= 75) { $color = "#00FF00"; } else { if ($procent >= 50) { $color = "#FFFF00"; } else { $color = "#FF0000"; } } $tabela1 = $procent * 2; $tabela2 = 200 - $tabela1; $ispis1 = "<img src=\"images/fnord.gif\" width=\"{$tabela1}\" height=\"10\">"; $ispis2 = "<img src=\"images/fnord.gif\" width=\"{$tabela2}\" height=\"1\"><br/> {$bodova} bodova"; if ($tabela1 > $tabela2) { $ispis1 = "<img src=\"images/fnord.gif\" width=\"{$tabela1}\" height=\"1\"><br/> {$bodova} bodova"; $ispis2 = "<img src=\"images/fnord.gif\" width=\"{$tabela2}\" height=\"10\">"; } ?> <!-- progress bar --> <table border="0"><tr><td align="left"> <p> <table style="border:1px;border-style:solid" width="206" cellpadding="0" cellspacing="2"><tr> <td width="<?php echo $tabela1; ?> " bgcolor="<?php echo $color; ?> "><?php echo $ispis1; ?> </td> <td width="<?php echo $tabela2; ?> " bgcolor="#FFFFFF"><?php echo $ispis2; ?> </td></tr></table> <table width="208" border="0" cellspacing="0" cellpadding="0"><tr> <td width="68">0</td> <td align="center" width="68">50</td> <td align="right" width="69">100</td></tr></table> što je <?php echo $procent; ?> % od trenutno mogućih <?php echo round($mogucih, 2); ?> bodova.</p> </td></tr></table> <!-- end progress bar --> <?php // Nekoliko korisnih operacija za site admina if ($user_siteadmin) { ?> <p><a href="index.php?sta=saradnik/student&student=<?php echo $student; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &akcija=ispis">Ispiši studenta sa predmeta</a> * <a href="index.php?sta=studentska/osobe&akcija=edit&osoba=<?php echo $student; ?> ">Detaljnije o studentu</a> * <a href="index.php?su=<?php echo $student; ?> ">Prijavi se kao student</a></p> <?php } // PRISUSTVO: print ajah_box(); ?> <script language="JavaScript"> // Funkcija koja se poziva klikom na polje u tabeli function prisustvo(student,cas) { if (zamger_ajah_sending) { alert("Slanje u toku. Sačekajte malo."); return false; } var prisutan = invert(student,cas); ajah_start("index.php?c=N&sta=common/ajah&akcija=prisustvo&student="+student+"&cas="+cas+"&prisutan="+prisutan, "invert("+student+","+cas+")"); // U slucaju da ajah ne uspije, ponovo se poziva funkcija invert } // Switchuje DA i NE function invert(student,cas) { var val = document.getElementById("danetekst-"+student+"-"+cas).innerHTML; if (val == "DA") { document.getElementById("dane-"+student+"-"+cas).style.background = "#FFCCCC"; document.getElementById("danetekst-"+student+"-"+cas).innerHTML = "NE"; return 1; } else { document.getElementById("dane-"+student+"-"+cas).style.background="#CCFFCC"; document.getElementById("danetekst-"+student+"-"+cas).innerHTML = "DA"; return 2; } } function openzadaca(student,zadaca,zadatak) { var url='index.php?sta=saradnik/zadaca&student='+student+'&zadaca='+zadaca+'&zadatak='+zadatak; window.open(url,'blah','width=600,height=600,scrollbars=yes'); } function toggleVisibilityObj(ime){ var me = document.getElementById(ime); if (me.style.display=="none"){ me.style.display="inline"; } else { me.style.display="none"; } return false; // da ne bi radio link } </script> <?php // Ispis tablice prisustva za jednu od grupa u kojima je student function prisustvo_ispis($idgrupe, $imegrupe, $komponenta, $student) { if (!preg_match("/\\w/", $imegrupe)) { $imegrupe = "[Bez naziva]"; } $odsustva = 0; $q70 = myquery("select id,UNIX_TIMESTAMP(datum), vrijeme from cas where labgrupa={$idgrupe} and komponenta={$komponenta}"); if (mysql_num_rows($q70) < 1) { return; } // Ne ispisuj grupe u kojima nema registrovanih časova $datumi = $vremena = $statusi = ""; while ($r70 = mysql_fetch_row($q70)) { $datumi .= "<td>" . date("d.m", $r70[1]) . "</td>\n"; list($sati, $minute, $sekunde) = explode(":", $r70[2]); $vremena .= "<td>{$sati}<sup>{$minute}</sup></td>\n"; $q80 = myquery("select prisutan from prisustvo where student={$student} and cas={$r70['0']}"); if (mysql_num_rows($q80) < 1) { $statusi .= "<td bgcolor=\"#FFFFCC\" align=\"center\" id=\"dane-" . $student . "-" . $r70[0] . "\" onclick=\"javascript:prisustvo(" . $student . "," . $r70[0] . ")\"><div id=\"danetekst-" . $student . "-" . $r70[0] . "\"> / </div></td>\n"; } else { if (mysql_result($q80, 0, 0) == 1) { $statusi .= "<td bgcolor=\"#CCFFCC\" align=\"center\" id=\"dane-" . $student . "-" . $r70[0] . "\" onclick=\"javascript:prisustvo(" . $student . "," . $r70[0] . ")\"><div id=\"danetekst-" . $student . "-" . $r70[0] . "\">DA</div></td>\n"; } else { $statusi .= "<td bgcolor=\"#FFCCCC\" align=\"center\" id=\"dane-" . $student . "-" . $r70[0] . "\" onclick=\"javascript:prisustvo(" . $student . "," . $r70[0] . ")\"><div id=\"danetekst-" . $student . "-" . $r70[0] . "\">NE</div></td>\n"; $odsustva++; } } } ?> <b>Prisustvo (<?php echo $imegrupe; ?> ):</b><br/> <table cellspacing="0" cellpadding="2" border="0" id="prisustvo"> <tr> <th>Datum</th> <?php echo $datumi; ?> </tr> <tr> <th>Vrijeme</th> <?php echo $vremena; ?> </tr> <tr> <th>Prisutan</th> <?php echo $statusi; ?> </tr> </table> </p> <?php return $odsustva; } $q40 = myquery("select k.id,k.maxbodova,k.prolaz,k.opcija from komponenta as k, tippredmeta_komponenta as tpk, akademska_godina_predmet as agp\nwhere agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and k.tipkomponente=3"); // 3 = prisustvo while ($r40 = mysql_fetch_row($q40)) { $id_komponente = $r40[0]; $max_bodova = $r40[1]; $min_bodova = $r40[2]; $max_izostanaka = $r40[3]; $odsustva = $casova = 0; $q60 = myquery("select l.id,l.naziv from labgrupa as l, student_labgrupa as sl where l.predmet={$predmet} and l.akademska_godina={$ag} and l.id=sl.labgrupa and sl.student={$student}"); while ($r60 = mysql_fetch_row($q60)) { $odsustva += prisustvo_ispis($r60[0], $r60[1], $id_komponente, $student); $q71 = myquery("select count(*) from cas where labgrupa={$r60['0']} and komponenta={$id_komponente}"); $casova += mysql_result($q71, 0, 0); } if ($max_izostanaka == -1) { if ($casova == 0) { $bodovi = 10; } else { $bodovi = $min_bodova + round(($max_bodova - $min_bodova) * (($casova - $odsustva) / $casova), 2); } } else { if ($max_izostanaka == -2) { // Paraproporcionalni sistem TP if ($odsustva <= 2) { $bodovi = $max_bodova; } else { if ($odsustva <= 2 + ($max_bodova - $min_bodova) / 2) { $bodovi = $max_bodova - ($odsustva - 2) * 2; } else { $bodovi = $min_bodova; } } } else { if ($odsustva <= $max_izostanaka) { $bodovi = $max_bodova; } else { $bodovi = $min_bodova; } } } ?> <p>Ukupno na prisustvo: <b><?php echo $bodovi; ?> </b> bodova.</p> <?php } // KVIZOVI $q200 = myquery("SELECT id, naziv, prolaz_bodova FROM kviz WHERE predmet={$predmet} AND akademska_godina={$ag}"); if (mysql_num_rows($q200) > 0) { ?> <b>Kvizovi:</b><br/> <table cellspacing="0" cellpadding="2" border="0" id="kvizovi"> <thead> <tr> <th>Naziv kviza</th> <th>Rezultat</th> <th>Akcije</th> </tr> </thead> <?php while ($r200 = mysql_fetch_row($q200)) { $q210 = myquery("SELECT dovrsen, bodova FROM kviz_student WHERE student={$student} AND kviz={$r200['0']}"); $tekst = ""; if (mysql_num_rows($q210) > 0) { $bodova = mysql_result($q210, 0, 1); if (mysql_result($q210, 0, 0) == 0) { $tekst = "<img src=\"images/16x16/zad_cekaj.png\" width=\"8\" height=\"8\"> Nije završio/la"; } else { if ($bodova < $r200[2]) { $tekst = "<img src=\"images/16x16/brisanje.png\" width=\"8\" height=\"8\"> {$bodova} bodova"; } else { $tekst = "<img src=\"images/16x16/zad_ok.png\" width=\"8\" height=\"8\"> {$bodova} bodova"; } } } ?> <tr> <td><?php echo $r200[1]; ?> </td> <td><?php echo $tekst; ?> </td> <td><?php if ($tekst !== "") { ?> <a href="?sta=saradnik/student&student=<?php echo $student; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &akcija=ponisti_kviz&kviz=<?php echo $r200[0]; ?> ">Poništi kviz</a><?php } ?> </td> </tr> <?php } ?> </table> </p> <?php } // ZADAĆE // Statusne ikone: $stat_icon = array("zad_bug", "zad_preg", "zad_copy", "zad_bug", "zad_preg", "zad_ok"); $stat_tekst = array("Bug u programu", "Pregled u toku", "Zadaća prepisana", "Bug u programu", "Pregled u toku", "Zadaća OK"); ?> <!-- zadace --> <b>Zadaće:</b><br/> <table cellspacing="0" cellpadding="2" border="0" id="zadace"> <thead> <tr> <td> </td> <?php // Zaglavlje tabele - potreban nam je max. broj zadataka u zadaci $q20 = myquery("select zadataka from zadaca where predmet={$predmet} and akademska_godina={$ag} order by zadataka desc limit 1"); if (mysql_num_rows($q20) > 0) { $broj_zadataka = mysql_result($q20, 0, 0); for ($i = 1; $i <= $broj_zadataka; $i++) { ?> <td>Zadatak <?php echo $i; ?> .</td><?php } } ?> <td><b>Ukupno bodova</b></td> </tr> </thead> <tbody> <?php // Tijelo tabele // LEGENDA STATUS POLJA: // 0 - nepoznat status // 1 - nova zadaća // 2 - prepisana // 3 - ne može se kompajlirati // 4 - prošla test, predstoji kontrola // 5 - pregledana /* Ovo se sve moglo kroz SQL rijesiti, ali necu iz razloga: 1. PHP je citljiviji 2. MySQL <4.1 ne podrzava subqueries */ $bodova_sve_zadace = 0; $q21 = myquery("select id,naziv,bodova,zadataka from zadaca where predmet={$predmet} and akademska_godina={$ag} order by komponenta,id"); while ($r21 = mysql_fetch_row($q21)) { $zadaca = $r21[0]; $mogucih += $r21[2]; $zzadataka = $r21[3]; ?> <tr> <th><?php echo $r21[1]; ?> </th> <?php $bodova_zadaca = 0; for ($zadatak = 1; $zadatak <= $broj_zadataka; $zadatak++) { // Ako tekuća zadaća nema toliko zadataka, ispisujemo blank polje if ($zadatak > $zzadataka) { ?> <td> </td><?php continue; } // Uzmi samo rjesenje sa zadnjim IDom $q22 = myquery("select status,bodova,komentar from zadatak where student={$student} and zadaca={$zadaca} and redni_broj={$zadatak} order by id desc limit 1"); if (mysql_num_rows($q22) < 1) { ?> <td> </td><?php } else { $status = mysql_result($q22, 0, 0); $bodova_zadatak = mysql_result($q22, 0, 1); $bodova_zadaca += $bodova_zadatak; if (strlen(mysql_result($q22, 0, 2)) > 2) { $imakomentar = "<img src=\"images/16x16/komentar.png\" width=\"15\" height=\"14\" border=\"0\" title=\"Ima komentar\" alt=\"Ima komentar\" align=\"center\">"; } else { $imakomentar = ""; } ?> <td><a href="javascript:openzadaca('<?php echo $student; ?> ', '<?php echo $zadaca; ?> ', '<?php echo $zadatak; ?> ')"><img src="images/16x16/<?php echo $stat_icon[$status]; ?> .png" width="16" height="16" border="0" align="center" title="<?php echo $stat_tekst[$status]; ?> " alt="<?php echo $stat_tekst[$status]; ?> "> <?php echo $bodova_zadatak; ?> <?php echo $imakomentar; ?> </a></td> <?php } } ?> <td><?php echo $bodova_zadaca; ?> </td> </tr> <?php $bodova_sve_zadace += $bodova_zadaca; } // Ukupno bodova za studenta $bodova += $bodova_sve_zadace; ?> <tr><td colspan="<?php echo $broj_zadataka + 1; ?> " align="right">UKUPNO: </td> <td><?php echo $bodova_sve_zadace; ?> </td></tr> </tbody> </table> <p>Za historiju izmjena kliknite na željeni zadatak. <a href="#" onclick="javascript:window.open('legenda-zadace.html','blah6','width=320,height=130'); return false;">Legenda simbola</a></p> <br/> <!-- end zadace --> <?php // Importujemo kod za coolbox cool_box('ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja="+zamger_coolbox_origcaller.id+"&vrijednost="+coolboxedit.value, "undo_coolbox()", "zamger_coolbox_origcaller=false");'); ?> <script language="JavaScript"> function undo_coolbox() { var greska = document.getElementById("zamger_ajah-info").innerText || document.getElementById("zamger_ajah-info").textContent; if (!greska.match(/\S/)) greska = "Došlo je do greške. Molimo kontaktirajte administratora."; alert(greska); zamger_coolbox_origcaller.innerHTML = zamger_coolbox_origvalue; zamger_coolbox_origcaller=false; } </script> <?php // FIKSNE KOMPONENTE $q25 = myquery("select k.id, k.gui_naziv from komponenta as k, tippredmeta_komponenta as tpk, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and k.tipkomponente=5"); // 5 = fiksna komponenta if (mysql_num_rows($q25) > 0) { ?> <!-- fiksne komponente --> <table cellspacing="0" cellpadding="2" border="0" id="zadace"> <thead> <tr> <td><b>Komponenta ocjene</b></td> <td><b>Bodovi</b></td> <td><b>Dnevnik izmjena</b></td> </tr> </thead> <tbody> <?php } while ($r25 = mysql_fetch_row($q25)) { $komponenta = $r25[0]; $q27 = myquery("select bodovi from komponentebodovi where student={$student} and predmet={$ponudakursa} and komponenta={$komponenta}"); if (mysql_num_rows($q27) < 1) { $ocjenaedit = "/"; } else { $ocjenaedit = mysql_result($q27, 0, 0); } ?> <tr> <td><?php echo $r25[1]; ?> </td> <td id="fiksna-<?php echo $student; ?> -<?php echo $predmet; ?> -<?php echo $komponenta; ?> -<?php echo $ag; ?> " ondblclick="coolboxopen(this)"><?php echo $ocjenaedit; ?> </td> <td><?php if ($privilegija == "nastavnik" || $privilegija == "super_asistent" || $user_siteadmin) { ?> <div id="fiksnalog<?php echo $komponenta; ?> "></div><?php } else { print "/"; } ?> </td> </tr> <?php } if (mysql_num_rows($q25) > 0) { ?> </tbody> </table> <p> </p> <?php } // ISPITI ?> <!-- ispiti --> <b>Ispiti:</b><br/> <?php $q30 = myquery("select i.id, UNIX_TIMESTAMP(i.datum), k.gui_naziv, k.id, k.prolaz from ispit as i, komponenta as k where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id order by i.datum,i.komponenta"); if (mysql_num_rows($q30) == 0) { print "<p>Nije bilo parcijalnih ispita.</p>"; } else { ?> <table cellspacing="0" cellpadding="2" border="0" id="zadace"> <thead> <tr> <td><b>Tip ispita</b></td> <td><b>Datum ispita</b></td> <td><b>Položio/la?</b></td> <td><b>Bodovi</b></td> <td><b>Dnevnik izmjena</b></td> </tr> </thead> <tbody> <?php } while ($r30 = mysql_fetch_row($q30)) { $ispit = $r30[0]; $q40 = myquery("select ocjena from ispitocjene where ispit={$ispit} and student={$student}"); if (mysql_num_rows($q40) < 1) { $ocjenaedit = "/"; $ispitocjena = "Nije izašao/la"; } else { $ocjenaedit = mysql_result($q40, 0, 0); $ispitocjena = "<b>" . mysql_result($q40, 0, 0) . " bodova</b>"; } /* ?> <p><?=$r30[2]?> (<?=date("d. m. Y",$r30[1])?>): <?=$ispitocjena?> <?*/ ?> <tr> <td><?php echo $r30[2]; ?> </td> <td><?php echo date("d. m. Y", $r30[1]); ?> </td> <td><?php if ($ocjenaedit == "/") { print " "; } else { if ($ocjenaedit >= $r30[4]) { print "<img src=\"images/16x16/zad_ok.png\" width=\"16\" height=\"16\">"; } else { print "<img src=\"images/16x16/brisanje.png\" width=\"16\" height=\"16\">"; } } // najljepše slike ?> </td> <td id="ispit-<?php echo $student; ?> -<?php echo $ispit; ?> " ondblclick="coolboxopen(this)"><?php echo $ocjenaedit; ?> </td> <td><?php if ($privilegija == "nastavnik" || $privilegija == "super_asistent" || $user_siteadmin) { ?> <div id="ispitlog<?php echo $ispit; ?> "></div><?php } else { print "/"; } ?> </td> </tr> <?php /* if ($predmet_admin || $user_siteadmin) { ?> <span id="ispitlink<?=$ispit?>">(<a href="#" onclick="return toggleVisibilityObj('ispitlog<?=$ispit?>');">dnevnik izmjena</a>)</span> (<a href="#" onclick="return toggleVisibilityObj('ispitunos<?=$ispit?>');">upišite rezultat</a>)</p> <p><div id="ispitlog<?=$ispit?>" style="display:none"></div></p> <p><div id="ispitunos<?=$ispit?>" style="display:none"> <table border="0" cellspacing="0" cellpadding="2" height="16"><tr height="16"> <td width="37"> </td> <td align="left">Unesite bodove ili znak "kosa crta" (/):</td> <td width="5"> <br/> </td> <td id="ispit-<?=$student?>-<?=$ispit?>" ondblclick="coolboxopen(this)" width="32" height="32" style="font-size:11px; border:1px solid black"><?=$ocjenaedit?></td> </tr></table> </div></p> <? } else { print "</p>\n"; }*/ } if (mysql_num_rows($q30) > 0) { ?> </tbody></table> <p>Dvokliknite na bodove da promijenite podatak ili upišete novi. Za brisanje rezultata, pobrišite postojeći podatak i pritisnite Enter.</p> <?php } // KONAČNA OCJENA $vrijeme_konacne_ocjene = 0; $q50 = myquery("select ocjena, UNIX_TIMESTAMP(datum), UNIX_TIMESTAMP(datum_u_indeksu) from konacna_ocjena where student={$student} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q50) > 0) { $konacnaocjena = mysql_result($q50, 0, 0); $vrijeme_konacne_ocjene = mysql_result($q50, 0, 1); $datum_u_indeksu = mysql_result($q50, 0, 2); } else { $konacnaocjena = "/"; } ?> <p> </p> <table cellspacing="0" cellpadding="2" border="0" id="zadace"> <tr> <td> </td> <td>Ocjena:</td> <td>Datum u indeksu:</td> <td>Dnevnik izmjena:</td> </tr> <tr> <td><b>Konačna ocjena:</b></td> <?php if ($privilegija == "nastavnik" || $user_siteadmin) { ?> <td id="ko-<?php echo $student; ?> -<?php echo $predmet; ?> -<?php echo $ag; ?> " ondblclick="coolboxopen(this)"><?php echo $konacnaocjena; ?> </td> <td id="kodatum-<?php echo $student; ?> -<?php echo $predmet; ?> -<?php echo $ag; ?> " ondblclick="coolboxopen(this)"><?php echo date("d. m. Y", $datum_u_indeksu); ?> </td> <td><div id="kolog"></div></td> <?php } else { ?> <td><?php echo $konacnaocjena; ?> </td> <?php } print "</tr></table>\n"; // ************************************** // POPUNA LOGOVA // ************************************** // Ne radimo ništa ako korisnik nema privilegije if ($privilegija != "nastavnik" && $privilegija != "super_asistent" && !$user_siteadmin) { return; } ?> <SCRIPT language="JavaScript"> <?php // Spisak ponuda kursa, za slucaj da nema rezultata $q90 = myquery("select id from ponudakursa where predmet={$predmet} and akademska_godina={$ag}"); $pkovi = array(); while ($r90 = mysql_fetch_row($q90)) { array_push($pkovi, $r90[0]); } // Log za ispite $q100 = myquery("select i.id, UNIX_TIMESTAMP(i.vrijemeobjave) from ispit as i, komponenta as k where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id order by i.datum,i.komponenta"); while ($r100 = mysql_fetch_row($q100)) { $vrijeme_ispita = $r100[1]; // Utvrdjujemo ocjenu da bismo lakse mogli rekonstruisati izmjene kroz log $q105 = myquery("select ocjena from ispitocjene where ispit={$r100['0']} and student={$student}"); if (mysql_num_rows($q105) < 1) { $ispitocjena = "/"; } else { $ispitocjena = mysql_result($q105, 0, 0); } // Spisak izmjena ocjene $q110 = myquery("select dogadjaj, UNIX_TIMESTAMP(vrijeme), userid from log where \n\tdogadjaj like 'AJAH ispit - upisan novi rezultat % (ispit i{$r100['0']}, student u{$student})' or \n\tdogadjaj like 'AJAH ispit - izbrisan rezultat % (ispit i{$r100['0']}, student u{$student})' or \n\tdogadjaj like 'AJAH ispit - izmjena rezultata % (ispit i{$r100['0']}, student u{$student})' order by id desc"); while ($r110 = mysql_fetch_row($q110)) { $datum = date("d.m.Y. H:i:s", $r110[1]); $q120 = myquery("select ime,prezime from osoba where id=" . $r110[2]); if (mysql_num_rows($q120) > 0) { $korisnik = mysql_result($q120, 0, 0) . " " . mysql_result($q120, 0, 1); } else { $korisnik = "/nepoznat korisnik {$r110['2']}/"; } if (strstr($r110[0], "upisan novi rezultat")) { $rezultat = floatval(substr($r110[0], 34)); if ($rezultat != $ispitocjena) { $rezultat .= " ?"; } $ispitocjena = "/"; ?> document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> upisan rezultat <b><?php echo $rezultat; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML; <?php } else { if (strstr($r110[0], "izbrisan rezultat")) { $rezultat = floatval(substr($r110[0], 31)); if ($ispitocjena != "/") { $rezultat .= " ?"; } else { $ispitocjena = $rezultat; } ?> document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> izbrisan rezultat (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML; <?php } else { if (preg_match("/izmjena rezultata ([\\d\\.]+) u ([\\d\\.]+)/", $r110[0], $matches)) { $starirezultat = floatval($matches[1]); $rezultat = floatval($matches[2]); if ($ispitocjena != $rezultat) { $rezultat .= " ?"; } $ispitocjena = $starirezultat; ?> document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> promijenjen rezultat u <b><?php echo $rezultat; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML; <?php } } } } // Necemo traziti masovne unose ako student nije ni izlazio na ispit if ($ispitocjena == "/") { continue; } // Masovni unosi $q110 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovni rezultati ispita za predmet pp{$predmet}' AND UNIX_TIMESTAMP(vrijeme)>{$r100['1']}-10 ORDER BY vrijeme"); // uzimamo razliku 10 sekundi, jer moze doci do malog kasnjenja prilikom unosa u log if (mysql_num_rows($q110) > 0) { $datum = date("d.m.Y. H:i:s", mysql_result($q110, 0, 0)); $q120 = myquery("select ime,prezime from osoba where id=" . mysql_result($q110, 0, 1)); if (mysql_num_rows($q120) > 0) { $korisnik = mysql_result($q120, 0, 0) . " " . mysql_result($q120, 0, 1); } else { $korisnik = "/nepoznat korisnik " . mysql_result($q110, 0, 1) . "/"; } ?> document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovni rezultati ispita - <b><?php echo $ispitocjena; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML; <?php // Nema pod oznakom predmeta, pokusacemo ponudu kursa } else { foreach ($pkovi as $ponudakursa) { $q110 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovni rezultati ispita za predmet p{$ponudakursa}' AND UNIX_TIMESTAMP(vrijeme)>{$r100['1']}-10"); if (mysql_num_rows($q110) > 0) { $datum = date("d.m.Y. H:i:s", mysql_result($q110, 0, 0)); $q120 = myquery("select ime,prezime from osoba where id=" . mysql_result($q110, 0, 1)); if (mysql_num_rows($q120) > 0) { $korisnik = mysql_result($q120, 0, 0) . " " . mysql_result($q120, 0, 1); } else { $korisnik = "/nepoznat korisnik " . mysql_result($q110, 0, 1) . "/"; } ?> document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovni rezultati ispita - <b><?php echo $ispitocjena; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('ispitlog<?php echo $r100[0]; ?> ').innerHTML; <?php break; } } } } // Log za konacnu ocjenu $bilo = 0; $upit = "\ndogadjaj like 'AJAH ko - dodana ocjena % (predmet pp{$predmet}, student u{$student})' or \ndogadjaj like 'AJAH ko - obrisana ocjena % (predmet pp{$predmet}, student u{$student})' or \ndogadjaj like 'AJAH ko - izmjena ocjene % (predmet pp{$predmet}, student u{$student})' or \ndogadjaj like 'dopisana ocjena % prilikom upisa na studij (predmet pp{$predmet}, student u{$student})' or \ndogadjaj like 'masovno dodana ocjena % (predmet pp{$predmet}, student u{$student})'"; $q150 = myquery("select dogadjaj, UNIX_TIMESTAMP(vrijeme), userid from log where {$upit} order by id desc"); while ($r150 = mysql_fetch_row($q150)) { $bilo = 1; $datum = date("d.m.Y. H:i:s", $r150[1]); $q160 = myquery("select ime,prezime from osoba where id={$r150['2']}"); if (mysql_num_rows($q160) > 0) { $korisnik = mysql_result($q160, 0, 0) . " " . mysql_result($q160, 0, 1); } else { $korisnik = "/nepoznat korisnik {$r150['2']}/"; } if (strstr($r150[0], " - dodana ocjena")) { $rezultat = intval(substr($r150[0], 24)); if ($rezultat != $konacnaocjena) { $rezultat .= " ?"; } $konacnaocjena = "/"; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> dodana ocjena <b><?php echo $rezultat; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php } else { if (strstr($r150[0], "obrisana ocjena")) { $rezultat = intval(substr($r150[0], 26)); if ($konacnaocjena != "/") { $rezultat .= " ?"; } else { $konacnaocjena = $rezultat; } ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> obrisana ocjena (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php } else { if (preg_match("/izmjena ocjene (\\d+) u (\\d+)/", $r150[0], $matches)) { $starirezultat = intval($matches[1]); $rezultat = intval($matches[2]); if ($konacnaocjena != $rezultat) { $rezultat .= " ?"; } $konacnaocjena = $starirezultat; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> promijenjena ocjena u <b><?php echo $rezultat; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php } else { if (strstr($r150[0], "dopisana ocjena")) { $rezultat = intval(substr($r150[0], 16)); if ($konacnaocjena != $rezultat) { $rezultat .= " ?"; } $konacnaocjena = "/"; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> studentska služba dopisala ocjenu <b><?php echo $rezultat; ?> </b> prilikom upisa u sljedeći semestar (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php } else { if (strstr($r150[0], "masovno dodana ocjena")) { $rezultat = intval(substr($r150[0], 22)); if ($konacnaocjena != $rezultat) { $rezultat .= " ?"; } $konacnaocjena = "/"; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovno upisana ocjena <b><?php echo $rezultat; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php } } } } } } /*if (mysql_num_rows($q150)<1) foreach ($pkovi as $ponudakursa) { $q150 = myquery("select dogadjaj, UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj like 'AJAH ko - dodana ocjena % (predmet p$ponudakursa, student u$student)' or dogadjaj like 'AJAH ko - obrisana ocjena % (predmet p$ponudakursa, student u$student)' or dogadjaj like 'AJAH ko - izmjena ocjene % (predmet p$ponudakursa, student u$student)' order by id desc"); while ($r150 = mysql_fetch_row($q150)) { $bilo=1; $datum = date("d.m.Y. H:i:s", $r150[1]); $q160 = myquery("select ime,prezime from osoba where id=$r150[2]"); if (mysql_num_rows($q160)>0) { $korisnik = mysql_result($q160,0,0)." ".mysql_result($q160,0,1); } else { $korisnik = "/nepoznat korisnik $r150[2]/"; } if (strstr($r150[0], "dodana ocjena")) { $rezultat = intval(substr($r150[0], 24)); if ($rezultat != $konacnaocjena) $rezultat .= " ?"; $konacnaocjena = "/"; $vrijeme_konacne_ocjene=$r150[1]; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> dodana ocjena <b><?=$rezultat?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('kolog').innerHTML; <? } else if (strstr($r150[0], "obrisana ocjena")) { $rezultat = intval(substr($r150[0], 26)); if ($konacnaocjena != "/") $rezultat .= " ?"; else $konacnaocjena=$rezultat; $vrijeme_konacne_ocjene=0; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> obrisana ocjena (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('kolog').innerHTML; <? } else if (preg_match("/izmjena ocjene (\d+) u (\d+)/", $r150[0], $matches)) { $starirezultat = intval($matches[1]); $rezultat = intval($matches[2]); if ($konacnaocjena != $rezultat) $rezultat .= " ?"; $konacnaocjena = $starirezultat; $vrijeme_konacne_ocjene=$r150[1]; ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> promijenjena ocjena u <b><?=$rezultat?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('kolog').innerHTML; <? } //print "$r150[0] $r150[1] $r150[2]\n"; } }*/ if (mysql_num_rows($q150) == 0 && $vrijeme_konacne_ocjene > 0) { $bilo = 1; $q170 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovno upisane ocjene na predmet pp{$predmet}' AND ABS(UNIX_TIMESTAMP(vrijeme)-{$vrijeme_konacne_ocjene})<10"); // uzimamo apsolutnu razliku 10 sekundi, jer moze doci do malog kasnjenja prilikom unosa u log if (mysql_num_rows($q170) > 0) { $datum = date("d.m.Y. H:i:s", mysql_result($q170, 0, 0)); $q180 = myquery("select ime,prezime from osoba where id=" . mysql_result($q170, 0, 1)); if (mysql_num_rows($q180) > 0) { $korisnik = mysql_result($q180, 0, 0) . " " . mysql_result($q180, 0, 1); } else { $korisnik = "/nepoznat korisnik " . mysql_result($q170, 0, 1) . "/"; } ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovno unesene ocjene - <b><?php echo $konacnaocjena; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php // Nema pod oznakom predmeta, pokusacemo ponudu kursa } else { foreach ($pkovi as $ponudakursa) { $q170 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovno upisane ocjene na predmet p{$ponudakursa}' AND ABS(UNIX_TIMESTAMP(vrijeme)-" . mysql_result($q50, 0, 1) . ")<10"); // uzimamo apsolutnu razliku 10 sekundi, jer moze doci do malog kasnjenja prilikom unosa u log if (mysql_num_rows($q170) > 0) { $datum = date("d.m.Y. H:i:s", mysql_result($q170, 0, 0)); $q180 = myquery("select ime,prezime from osoba where id=" . mysql_result($q170, 0, 1)); if (mysql_num_rows($q180) > 0) { $korisnik = mysql_result($q180, 0, 0) . " " . mysql_result($q180, 0, 1); } else { $korisnik = "/nepoznat korisnik " . mysql_result($q170, 0, 1) . "/"; } ?> document.getElementById('kolog').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovno unesene ocjene - <b><?php echo $konacnaocjena; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('kolog').innerHTML; <?php } } } } // Ako nema nista u logu, sakrivamo ga if ($bilo == 0) { ?> toggleVisibilityObj('kolink'); <?php } // Log za fiksne komponente // Radimo samo ako ima fiksnih komponenti $q200 = myquery("select k.id from komponenta as k, tippredmeta_komponenta as tpk, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and k.tipkomponente=5"); // 5 = fiksna komponenta while ($r200 = mysql_fetch_row($q200)) { $komponenta = $r200[0]; // Utvrdjujemo ocjenu da bismo lakse mogli rekonstruisati izmjene kroz log $q205 = myquery("select bodovi from komponentebodovi where student={$student} and predmet={$ponudakursa} and komponenta={$komponenta}"); if (mysql_num_rows($q205) < 1) { $ispitocjena = "/"; } else { $ispitocjena = mysql_result($q205, 0, 0); } // Izmjene fiksne komponente putem AJAHa $q210 = myquery("select dogadjaj, UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj like 'AJAH fiksna - upisani bodovi % za fiksnu komponentu {$komponenta} (predmet pp{$predmet}, student u{$student})' order by id desc"); while ($r210 = mysql_fetch_row($q210)) { $datum = date("d.m.Y. H:i:s", $r210[1]); $q220 = myquery("select ime,prezime from osoba where id=" . $r210[2]); if (mysql_num_rows($q220) > 0) { $korisnik = mysql_result($q220, 0, 0) . " " . mysql_result($q220, 0, 1); } else { $korisnik = "/nepoznat korisnik {$r210['2']}/"; } $rezultat = floatval(substr($r210[0], 29)); ?> document.getElementById('fiksnalog<?php echo $komponenta; ?> ').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> upisan rezultat <b><?php echo $rezultat; ?> </b> (<?php echo $korisnik; ?> , <?php echo $datum; ?> )<br />' + document.getElementById('fiksnalog<?php echo $komponenta; ?> ').innerHTML; <?php } // Masovni unosi - jednog dana kad bude /* $q110 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovni rezultati ispita za predmet pp$predmet' AND ABS(UNIX_TIMESTAMP(vrijeme)-$r100[1])<10"); // uzimamo apsolutnu razliku 10 sekundi, jer moze doci do malog kasnjenja prilikom unosa u log if (mysql_num_rows($q110)>0) { $datum = date("d.m.Y. H:i:s", mysql_result($q110,0,0)); $q120 = myquery("select ime,prezime from osoba where id=".mysql_result($q110,0,1)); if (mysql_num_rows($q120)>0) { $korisnik = mysql_result($q120,0,0)." ".mysql_result($q120,0,1); } else { $korisnik = "/nepoznat korisnik/"; } ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovni rezultati ispita - <b><?=$ispitocjena?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? // Nema pod oznakom predmeta, pokusacemo ponudu kursa } else foreach ($pkovi as $ponudakursa) { $q110 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovni rezultati ispita za predmet p$ponudakursa' AND ABS(UNIX_TIMESTAMP(vrijeme)-$r100[1])<10"); if (mysql_num_rows($q110)>0) { $datum = date("d.m.Y. H:i:s", mysql_result($q110,0,0)); $q120 = myquery("select ime,prezime from osoba where id=".mysql_result($q110,0,1)); if (mysql_num_rows($q120)>0) { $korisnik = mysql_result($q120,0,0)." ".mysql_result($q120,0,1); } else { $korisnik = "/nepoznat korisnik/"; } ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovni rezultati ispita - <b><?=$ispitocjena?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? } }*/ } /*$q100 = myquery("select i.id, UNIX_TIMESTAMP(i.vrijemeobjave) from ispit as i, komponenta as k where i.predmet=$predmet and i.akademska_godina=$ag and i.komponenta=k.id order by i.datum,i.komponenta"); while ($r100 = mysql_fetch_row($q100)) { // Utvrdjujemo ocjenu da bismo lakse mogli rekonstruisati izmjene kroz log $q105 = myquery("select ocjena from ispitocjene where ispit=$r100[0] and student=$student"); if (mysql_num_rows($q105)<1) $ispitocjena="/"; else $ispitocjena=mysql_result($q105,0,0); // Spisak izmjena ocjene $q110 = myquery("select dogadjaj, UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj like 'AJAH ispit - upisan novi rezultat % (ispit i$r100[0], student u$student)' or dogadjaj like 'AJAH ispit - izbrisan rezultat % (ispit i$r100[0], student u$student)' or dogadjaj like 'AJAH ispit - izmjena rezultata % (ispit i$r100[0], student u$student)' order by id desc"); while ($r110 = mysql_fetch_row($q110)) { $datum = date("d.m.Y. H:i:s", $r110[1]); $q120 = myquery("select ime,prezime from osoba where id=".$r110[2]); if (mysql_num_rows($q120)>0) { $korisnik = mysql_result($q120,0,0)." ".mysql_result($q120,0,1); } else { $korisnik = "/nepoznat korisnik $r110[2]/"; } if (strstr($r110[0], "upisan novi rezultat")) { $rezultat = floatval(substr($r110[0], 34)); if ($rezultat != $ispitocjena) $rezultat .= " ?"; $ispitocjena = "/"; ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> upisan rezultat <b><?=$rezultat?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? } else if (strstr($r110[0], "izbrisan rezultat")) { $rezultat = floatval(substr($r110[0], 31)); if ($ispitocjena != "/") $rezultat .= " ?"; else $ispitocjena=$rezultat; ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> izbrisan rezultat (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? } else if (preg_match("/izmjena rezultata ([\d\.]+) u ([\d\.]+)/", $r110[0], $matches)) { $starirezultat = floatval($matches[1]); $rezultat = floatval($matches[2]); if ($ispitocjena != $rezultat) $rezultat .= " ?"; $ispitocjena = $starirezultat; ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> promijenjen rezultat u <b><?=$rezultat?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? } } // Sakrivamo link na log ako nema ništa u njemu if ($ispitocjena == "/" && mysql_num_rows($q110)<1) { /* ?> toggleVisibilityObj('ispitlink<?=$r100[0]?>'); <?*/ /* } // Necemo traziti masovne unose ako student nije ni izlazio na ispit if ($ispitocjena == "/") continue; // Masovni unosi $q110 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovni rezultati ispita za predmet pp$predmet' AND ABS(UNIX_TIMESTAMP(vrijeme)-$r100[1])<10"); // uzimamo apsolutnu razliku 10 sekundi, jer moze doci do malog kasnjenja prilikom unosa u log if (mysql_num_rows($q110)>0) { $datum = date("d.m.Y. H:i:s", mysql_result($q110,0,0)); $q120 = myquery("select ime,prezime from osoba where id=".mysql_result($q110,0,1)); if (mysql_num_rows($q120)>0) { $korisnik = mysql_result($q120,0,0)." ".mysql_result($q120,0,1); } else { $korisnik = "/nepoznat korisnik ".mysql_result($q110,0,1)."/"; } ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovni rezultati ispita - <b><?=$ispitocjena?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? // Nema pod oznakom predmeta, pokusacemo ponudu kursa } else foreach ($pkovi as $ponudakursa) { $q110 = myquery("select UNIX_TIMESTAMP(vrijeme), userid from log where dogadjaj='masovni rezultati ispita za predmet p$ponudakursa' AND ABS(UNIX_TIMESTAMP(vrijeme)-$r100[1])<10"); if (mysql_num_rows($q110)>0) { $datum = date("d.m.Y. H:i:s", mysql_result($q110,0,0)); $q120 = myquery("select ime,prezime from osoba where id=".mysql_result($q110,0,1)); if (mysql_num_rows($q120)>0) { $korisnik = mysql_result($q120,0,0)." ".mysql_result($q120,0,1); } else { $korisnik = "/nepoznat korisnik ".mysql_result($q110,0,1)."/"; } ?> document.getElementById('ispitlog<?=$r100[0]?>').innerHTML = '<img src="images/16x16/log_edit.png" width="16" height="16" align="center"> masovni rezultati ispita - <b><?=$ispitocjena?></b> (<?=$korisnik?>, <?=$datum?>)<br />' + document.getElementById('ispitlog<?=$r100[0]?>').innerHTML; <? } } }*/ ?> </SCRIPT> <?php }
function saradnik_grupa() { global $userid, $user_siteadmin; require "lib/manip.php"; print '<p><a href="index.php?sta=saradnik/intro">Spisak predmeta i grupa</a></p>' . "\n"; // ------- ULAZNI PARAMETRI $labgrupa = intval($_REQUEST['id']); $kreiranje = intval($_GET['kreiranje']); if ($labgrupa > 0) { // Određujemo predmet i ag za labgrupu $q30 = myquery("select naziv, predmet, akademska_godina, virtualna from labgrupa where id={$labgrupa}"); if (mysql_num_rows($q30) < 1) { biguglyerror("Nemate pravo ulaska u ovu grupu!"); zamgerlog("nepostojeca labgrupa {$labgrupa}", 3); // 3 = greska zamgerlog2("nepostojeca labgrupa", $labgrupa); return; } $naziv = mysql_result($q30, 0, 0); $predmet = mysql_result($q30, 0, 1); $ag = mysql_result($q30, 0, 2); $virtualna = mysql_result($q30, 0, 3); } else { // Ako nije definisana grupa, probacemo preko predmeta i ag uci u virtuelnu grupu $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); $q35 = myquery("select id, naziv from labgrupa where predmet={$predmet} and akademska_godina={$ag} and virtualna=1"); if (mysql_num_rows($q35) < 1) { biguglyerror("Nemate pravo ulaska u ovu grupu!"); zamgerlog("nepostojeca virtualna labgrupa za predmet pp{$predmet} ag{$ag}", 3); // 3 = greska zamgerlog2("nepostojeca virtualna labgrupa", $predmet, $ag); return; } $labgrupa = mysql_result($q35, 0, 0); $naziv = mysql_result($q35, 0, 1); $virtualna = 1; } // Da li korisnik ima pravo ući u grupu? if (!$user_siteadmin) { $q40 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q40) < 1) { biguglyerror("Nemate pravo ulaska u ovu grupu!"); zamgerlog("nastavnik nije na predmetu (labgrupa g{$labgrupa})", 3); zamgerlog2("nije saradnik na predmetu", $predmet, $ag); return; } $privilegija = mysql_result($q40, 0, 0); $q50 = myquery("select o.labgrupa from ogranicenje as o, labgrupa as l where o.nastavnik={$userid} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}"); if (mysql_num_rows($q50) > 0) { $nasao = 0; while ($r50 = mysql_fetch_row($q50)) { if ($r50[0] == $labgrupa) { $nasao = 1; break; } } if ($nasao == 0) { biguglyerror("Nemate pravo ulaska u ovu grupu!"); zamgerlog("ogranicenje na labgrupu g{$labgrupa}", 3); // 3 - greska zamgerlog2("ima ogranicenje na labgrupu", $labgrupa); return; } } } // Spisak komponenti koje su zastupljene na predmetu $tipovi_komponenti = array(); $q52 = myquery("select k.id, k.tipkomponente from akademska_godina_predmet as agp, tippredmeta_komponenta as tpk, komponenta as k where agp.akademska_godina={$ag} and agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id"); while ($r52 = mysql_fetch_row($q52)) { $tipovi_komponenti[$r52[0]] = $r52[1]; } // ------- AKCIJE // Dodavanje casa if ($_POST['akcija'] == 'dodajcas' && check_csrf_token()) { // KOMPONENTA // Ovaj kod radi samo sa jednom komponentom prisustva. U budućnosti to bi moglo biti popravljeno, ali realno nema prevelike potrebe $datum = intval($_POST['godina']) . "-" . intval($_POST['mjesec']) . "-" . intval($_POST['dan']); $vrijeme = $_POST['vrijeme']; if (!preg_match("/^\\d?\\d\\:\\d\\d\$/", $vrijeme)) { niceerror("Vrijeme nije u ispravnom formatu!"); print "<p>Vrijeme mora biti oblika HH:MM, a vi ste unijeli '{$vrijeme}'.</p>"; print "<p><a href=\"?sta=saradnik/grupa&id={$labgrupa}\">Nazad</a></p>"; return; } $predavanje = intval($_POST['predavanje']); // Ako se klikne na refresh, datum moze biti 0-0-0... if ($datum != "0-0-0") { // Tražimo komponentu prisustva i uzimamo prvu // FIXME: praktično je nemoguće registrovati čas za drugu komponentu $komponenta = 0; foreach ($tipovi_komponenti as $k_id => $tip) { if ($tip == 3) { // 3 = prisustvo $komponenta = $k_id; break; } } if ($komponenta == 0) { niceerror("Nije definisana komponenta za prisustvo na ovom predmetu."); zamgerlog("nije definisana komponenta za prisustvo na pp{$predmet}", 3); zamgerlog2("nije definisana komponenta za prisustvo", $predmet, $ag); return; } $kviz = intval($_REQUEST['kviz']); $q60 = myquery("insert into cas set datum='{$datum}', vrijeme='{$vrijeme}', labgrupa={$labgrupa}, nastavnik={$userid}, komponenta={$komponenta}, kviz={$kviz}"); $cas_id = mysql_insert_id(); // Max bodova za komponentu $q75 = myquery("select maxbodova, opcija from komponenta where id={$komponenta}"); $maxbodova = mysql_result($q75, 0, 0); $opcija = mysql_result($q75, 0, 1); // dodajemo u bazu default podatke za prisustvo i ocjene $q80 = myquery("select student from student_labgrupa where labgrupa={$labgrupa}"); while ($r80 = mysql_fetch_row($q80)) { $stud_id = $r80[0]; $prisustvo = intval($_POST['prisustvo']); // Potrebna nam je ponudakursa za update_komponente $q53 = myquery("select sp.predmet from student_predmet as sp, ponudakursa as pk where sp.student={$stud_id} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); $ponudakursa = mysql_result($q53, 0, 0); $q90 = mysql_query("insert into prisustvo set student={$stud_id}, cas={$cas_id}, prisutan={$prisustvo}"); // Update radimo samo ako se registruje odsustvo ili ako je opcija=-1 (proporcionalni bodovi) if ($prisustvo == 0 || $opcija == -1) { update_komponente($stud_id, $ponudakursa, $komponenta); } else { // Ako nema uopšte bodova za komponentu, ubacićemo broj bodova $q95 = myquery("select count(*) from komponentebodovi where student={$stud_id} and predmet={$ponudakursa} and komponenta={$komponenta}"); if (mysql_result($q95, 0, 0) == 0) { $q97 = myquery("insert into komponentebodovi set student={$stud_id}, predmet={$ponudakursa}, komponenta={$komponenta}, bodovi={$maxbodova}"); } } } // Ako je odabrano "sa kvizom" kreiramo kviz if ($kviz > 0) { $q98 = myquery("select trajanje_kviza from kviz where id={$kviz}"); $trajanje = mysql_result($q98, 0, 0) * 2; $q99 = myquery("update kviz set vrijeme_pocetak=NOW(), vrijeme_kraj=NOW() + INTERVAL {$trajanje} SECOND, labgrupa={$labgrupa} where id={$kviz}"); } zamgerlog("registrovan cas c{$cas_id}", 2); // nivo 2: edit zamgerlog2("registrovan cas", $cas_id); } } // Brisanje casa if ($_POST['akcija'] == 'brisi_cas' && check_csrf_token()) { $cas_id = intval($_POST['_lv_casid']); // Updatujemo komponentu svima koji su bili prisutni $q103 = myquery("select komponenta from cas where id={$cas_id}"); if (mysql_num_rows($q103) > 0) { $komponenta = mysql_result($q103, 0, 0); $q105 = myquery("select sp.student, sp.predmet from prisustvo as pr, student_predmet as sp, ponudakursa as pk where pr.cas={$cas_id} and pr.student=sp.student and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); $studenti = $ponudekursa = array(); while ($r105 = mysql_fetch_row($q105)) { array_push($studenti, $r105[0]); $ponudekursa[$r105[0]] = $r105[1]; } $q100 = myquery("delete from prisustvo where cas={$cas_id}"); $q110 = myquery("delete from cas where id={$cas_id}"); foreach ($studenti as $student) { update_komponente($student, $ponudekursa[$student], $komponenta); } zamgerlog("obrisan cas {$cas_id}", 2); zamgerlog2("obrisan cas", $cas_id); } } // ------- ZAGLAVLJE STRANICE (naslov i sl.) $q130 = myquery("select naziv from predmet where id={$predmet}"); $pime = mysql_result($q130, 0, 0); // Ne bi se smjelo desiti da je nepostojeci predmet, posto se to odredjuje iz labgrupe ?> <br /> <center><h1><?php echo $pime; ?> - <?php echo $naziv; ?> </h1></center> <?php // Ima li ikoga u grupi? $q140 = myquery("select count(student) from student_labgrupa where labgrupa={$labgrupa}"); if (mysql_result($q140, 0, 0) < 1) { print "<p>Nijedan student nije u grupi</p>\n"; return; } // JavaScript za prikaz popup prozora (trenutno se koristi samo za komentare) // * FF ne podržava direktan poziv window.open() iz eventa ?> <script language="JavaScript"> function firefoxopen(p1,p2,p3) { window.open(p1,p2,p3); } </script> <?php // Cool editing box if ($privilegija == "nastavnik" || $privilegija == "super_asistent" || $user_siteadmin) { cool_box('ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja="+zamger_coolbox_origcaller.id+"&vrijednost="+coolboxedit.value, "undo_coolbox()", "zamger_coolbox_origcaller=false");'); ?> <script language="JavaScript"> function undo_coolbox() { var greska = document.getElementById("zamger_ajah-info").innerText || document.getElementById("zamger_ajah-info").textContent; if (!greska.match(/\S/)) greska = "Došlo je do greške. Molimo kontaktirajte administratora."; alert(greska); zamger_coolbox_origcaller.innerHTML = zamger_coolbox_origvalue; zamger_coolbox_origcaller=false; } </script> <?php } // ------- SPISAK NEPREGLEDANIH ZADAĆA if (in_array(4, $tipovi_komponenti)) { // 4 = zadaće // JavaScript za prikaz popup prozora sa zadaćom // * Kod IE naslov prozora ('zadaca') ne smije sadržavati razmak i // ne smije biti prazan, a inače je nebitan ?> <script language="JavaScript"> function openzadaca(e, student,zadaca,zadatak) { var evt = e || window.event; var url='index.php?sta=saradnik/zadaca&student='+student+'&zadaca='+zadaca+'&zadatak='+zadatak; if (evt.shiftKey) window.open(url,'_blank','width=600,height=600,scrollbars=yes'); else window.open(url,'zadaca','width=600,height=600,scrollbars=yes'); } </script> <?php $q150 = myquery("SELECT zk.zadaca, zk.redni_broj, zk.student, a.ime, a.prezime, zk.status, z.naziv\n\tFROM zadatak as zk, osoba as a, student_labgrupa as sl, zadaca as z\n\tWHERE zk.student=a.id AND zk.student=sl.student \n\tAND sl.labgrupa={$labgrupa} AND zk.zadaca=z.id AND z.predmet={$predmet} AND z.akademska_godina={$ag}\n\tORDER BY zk.zadaca, zk.redni_broj, a.prezime, a.ime, zk.id DESC"); $mzadaca = 0; $mzadatak = 0; $mstudent = 0; $print = ""; while ($r150 = mysql_fetch_row($q150)) { if ($r150[0] == $mzadaca && $r150[1] == $mzadatak && $r150[2] == $mstudent) { continue; } $mzadaca = $r150[0]; $mzadatak = $r150[1]; $mstudent = $r150[2]; if ($r150[5] != 4) { continue; } $print .= '<li><a href="#" onclick="javascript:openzadaca(event, \'' . $r150[2] . '\',\'' . $r150[0] . '\',\'' . $r150[1] . '\')">' . $r150[3] . " " . $r150[4] . " - " . $r150[6] . ", zadatak " . $r150[1] . "</a></li>"; } if ($print != "") { print "<h2>Nove zadaće za pregled:</h2>\n<ul>{$print}</ul>"; } } // ------- FORMA ZA NOVI ČAS if (in_array(3, $tipovi_komponenti)) { // 3 = prisustvo $dan = date("d"); $mjesec = date("m"); $godina = date("Y"); $vrijeme = date("H:i"); // Ujedno ćemo definisati i neke JavaScripte za prisustvo ?> <table border="0" width="100%"><tr><td valign="top" width="50%"> </td> <td valign="top" width="50%"> Registrujte novi čas:<br/> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="dodajcas"> Datum: <select name="dan" class="default"><?php for ($i = 1; $i <= 31; $i++) { print "<option value=\"{$i}\""; if ($i == $dan) { print " selected"; } print ">{$i}</option>"; } ?> </select> <select name="mjesec" class="default"><?php for ($i = 1; $i <= 12; $i++) { print "<option value=\"{$i}\""; if ($i == $mjesec) { print " selected"; } print ">{$i}</option>"; } ?> </select> <select name="godina" class="default"><?php for ($i = 2005; $i <= 2020; $i++) { print "<option value=\"{$i}\""; if ($i == $godina) { print " selected"; } print ">{$i}</option>"; } ?> </select><br/> Vrijeme: <input type="text" size="10" name="vrijeme" value="<?php echo $vrijeme; ?> " class="default"> <input type="submit" value="Registruj" class="default"><br/><br/> <input type="radio" name="prisustvo" value="1" CHECKED>Svi prisutni <input type="radio" name="prisustvo" value="0">Svi odsutni <?php // Kreiraj čas sa kvizom $q160 = myquery("select smp.aktivan from studentski_modul_predmet as smp, studentski_modul as sm where smp.predmet={$predmet} and smp.akademska_godina={$ag} and smp.studentski_modul=sm.id and sm.modul='student/kviz'"); if (mysql_num_rows($q160) > 0 && mysql_result($q160, 0, 0) == 1) { ?> <br> Sa kvizom: <select name="kviz"><option value="0">/</option> <?php $q170 = myquery("select id,naziv from kviz where predmet={$predmet} and akademska_godina={$ag} and aktivan=1"); while ($r170 = mysql_fetch_row($q170)) { print "<option value=\"{$r170['0']}\">{$r170['1']}</option>\n"; } ?> </select> <?php } ?> </form> </td></tr></table> <script language="JavaScript"> var oldState = 0; var oldEvent; // Funkcija koja se poziva klikom na polje u tabeli function prisustvo(e,student,cas) { if (zamger_ajah_sending) { alert("Slanje u toku. Sačekajte malo."); return false; } var prisutan = invert(e,student,cas); ajah_start("index.php?c=N&sta=common/ajah&akcija=prisustvo&student="+student+"&cas="+cas+"&prisutan="+prisutan, "undo_prisustvo("+student+","+cas+","+prisutan+")"); } // Funkcija koja se poziva u slučaju greške sa prisustvom function undo_prisustvo(student,cas,prisutan) { var greska = document.getElementById("zamger_ajah-info").innerText || document.getElementById("zamger_ajah-info").textContent; if (!greska.match(/\S/)) greska = "Došlo je do greške. Molimo kontaktirajte administratora."; alert(greska); invert(oldEvent, student, cas); } // Switchuje DA i NE function invert(e,student,cas) { var val = document.getElementById("danetekst-"+student+"-"+cas).innerHTML; var evt = e || window.event; oldEvent = e; // Shift služi za pristup neutralnom stanju / if (evt.shiftKey) { if (oldState == 0) { if (val == "DA") oldState = 1; else oldState = 2; document.getElementById("dane-"+student+"-"+cas).style.background = "#FFFFCC"; document.getElementById("danetekst-"+student+"-"+cas).innerHTML = "/"; return 3; } else { if (oldState==1) val="NE"; else val="DA"; // Invertujemo sa NE na DA i obrnuto oldState=0; } } if (val == "DA") { document.getElementById("dane-"+student+"-"+cas).style.background = "#FFCCCC"; document.getElementById("danetekst-"+student+"-"+cas).innerHTML = "NE"; return 1; } else { document.getElementById("dane-"+student+"-"+cas).style.background="#CCFFCC"; document.getElementById("danetekst-"+student+"-"+cas).innerHTML = "DA"; return 2; } } function upozorenje(cas) { if (confirm("Da li ste sigurni da želite obrisati čas?")) { // _lv_casid osigurava da genform() neće dodati još jedno hidden polje document.brisanjecasa._lv_casid.value=cas; document.brisanjecasa.submit(); } return false; } </script> <!-- Pomocna forma za POST brisanje casa --> <?php echo genform("POST", "brisanjecasa"); ?> <input type="hidden" name="akcija" value="brisi_cas"> <input type="hidden" name="_lv_casid" value=""> </form> <?php } // if (in_array(3, $tipovi_komponenti)) // Ispis AJAH box-a neposredno iznad tablice grupe print ajah_box(); // ------- TABLICA GRUPE - ZAGLAVLJE $minw = 0; // minimalna sirina tabele $mogucih_bodova = 0; // koliko bodova su studenti mogli osvojiti, radi procenta $zaglavlje1 = ""; $zaglavlje2 = ""; $prisustvo_id_array = array(); // Zaglavlje prisustvo $q195 = myquery("SELECT k.id, k.gui_naziv, k.maxbodova FROM akademska_godina_predmet as agp, tippredmeta_komponenta as tpk, komponenta as k\nWHERE agp.predmet={$predmet} and agp.akademska_godina={$ag} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=3 ORDER BY k.id"); // Ako nema nijedne komponente prisustva, upit neće vratiti ništa while ($r195 = mysql_fetch_row($q195)) { $casova = 0; $prisustvo_zaglavlje = ""; $prisustvo_id_array[] = $r195[0]; $cas_id_array = array(); $cas_kviz_array = array(); $q200 = myquery("SELECT id,datum,vrijeme,kviz FROM cas where labgrupa={$labgrupa} and komponenta={$r195['0']} ORDER BY datum, vrijeme"); while ($r200 = mysql_fetch_row($q200)) { $cas_id = $r200[0]; list($cas_godina, $cas_mjesec, $cas_dan) = explode("-", $r200[1]); list($cas_sat, $cas_minuta, $cas_sekunda) = explode(":", $r200[2]); $prisustvo_zaglavlje .= "<td align=\"center\">{$cas_dan}.{$cas_mjesec}<br/>{$cas_sat}:{$cas_minuta}"; $prisustvo_zaglavlje .= '<br/><a href="javascript:onclick=upozorenje(' . "'{$cas_id}'" . ');"><img src="images/16x16/brisanje.png" border="0"></a>'; $prisustvo_zaglavlje .= "</td>\n"; $cas_id_array[] = $cas_id; $casova++; $minw += 40; // Kviz if ($r200[3] > 0) { $cas_kviz[$cas_id] = $r200[3]; // Odredjujemo bodove za prolaz $q202 = myquery("select prolaz_bodova from kviz where id={$r200['3']}"); $cas_kviz_prolaz[$cas_id] = mysql_result($q202, 0, 0); // Ako sam nekom drugom casu ranije dao ovaj id, moram ga obrisati foreach ($cas_id_array as $cid) { if ($cid == $cas_id) { continue; } if ($cas_kviz[$cid] == $r200[3]) { $cas_kviz[$cid] = 0; } } } else { // Ako kviz nije unesen u bazu, tražimo najbliži $q203 = myquery("select id, prolaz_bodova from kviz where predmet={$predmet} and akademska_godina={$ag} and vrijeme_pocetak>='{$r200['1']}' and vrijeme_pocetak<'{$r200['1']}' + interval 5 day order by vrijeme_pocetak desc"); while ($r203 = mysql_fetch_row($q203)) { // Da li je već bio? $bio = false; foreach ($cas_id_array as $cid) { if ($cas_kviz[$cid] == $r203[0]) { $bio = true; } } if ($bio) { continue; } $cas_kviz[$cas_id] = $r203[0]; $cas_kviz_prolaz[$cas_id] = $r203[1]; break; } } } $prisustvo_casovi[$r195[0]] = $cas_id_array; // $prisustvo_maxbodova[$r195[0]] = $r195[2]; // $prisustvo_maxizostanaka[$r195[0]] = $r195[3]; // $prisustvo_minbodova[$r195[0]] = $r195[4]; $mogucih_bodova += $r195[2]; if ($prisustvo_zaglavlje == "") { $prisustvo_zaglavlje = "<td> </td>"; $minw += 40; $casova = 1; } $zaglavlje1 .= "<td align=\"center\" colspan=\"" . ($casova + 1) . "\">{$r195['1']}</td>\n"; $zaglavlje2 .= $prisustvo_zaglavlje; $zaglavlje2 .= "<td>BOD.</td>\n"; } // Zaglavlje zadaće $zad_id_array = array(); $q205 = myquery("SELECT k.id, k.gui_naziv FROM akademska_godina_predmet as agp, tippredmeta_komponenta as tpk, komponenta as k\nWHERE agp.predmet={$predmet} and agp.akademska_godina={$ag} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=4 ORDER BY k.id"); // Ako nema nijedne komponente zadaća, upit neće vratiti ništa while ($r205 = mysql_fetch_row($q205)) { $brzadaca = 0; $zadace_zaglavlje = ""; $komponenta = $r205[0]; // Razvrstavamo zadaće po komponentama $q210 = myquery("select id,naziv,zadataka,bodova from zadaca where predmet={$predmet} and akademska_godina={$ag} and komponenta={$komponenta} order by id"); while ($r210 = mysql_fetch_row($q210)) { $zadace_zaglavlje .= "<td width=\"60\" align=\"center\">{$r210['1']}<br /><a href=\"?sta=saradnik/svezadace&grupa={$labgrupa}&zadaca={$r210['0']}\">Download</a></td>\n"; $zad_id_array[] = $r210[0]; $zad_brz_array[$r210[0]] = $r210[2]; $mogucih_bodova += $r210[3]; $brzadaca++; $minw += 60; } if ($brzadaca > 0) { $zaglavlje1 .= "<td align=\"center\" colspan=\"{$brzadaca}\">{$r205['1']}</td>\n"; $zaglavlje2 .= $zadace_zaglavlje; } } // Zaglavlje fiksne komponente $fiksna_prolaz = array(); $fiksna_id_array = array(); $q215 = myquery("SELECT k.id, k.gui_naziv, k.maxbodova, k.prolaz FROM akademska_godina_predmet as agp, tippredmeta_komponenta as tpk, komponenta as k\nWHERE agp.predmet={$predmet} and agp.akademska_godina={$ag} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=5 ORDER BY k.id"); // Ako nema nijedne fiksne komponente, upit neće vratiti ništa while ($r215 = mysql_fetch_row($q215)) { $zaglavlje1 .= "<td align=\"center\" rowspan=\"2\">{$r215['1']}"; $mogucih_bodova += $r215[2]; $minw += 60; $fiksna_id_array[] = $r215[0]; $fiksna_prolaz[$r215[0]] = $r215[3]; } // Zaglavlje ispiti $broj_ispita = 0; $ispit_zaglavlje = ""; $ispit_id_array = array(); $q220 = myquery("select i.id, UNIX_TIMESTAMP(i.datum), k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova, k.prolaz, k.opcija from ispit as i, komponenta as k where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id order by i.datum,i.komponenta"); // Ako nema komponenti sa ispitima, neće biti registrovan nijedan ispit while ($r220 = mysql_fetch_row($q220)) { if ($r220[4] == 5) { $ispit_zaglavlje .= "<td align=\"center\">{$r220['3']}</td>\n"; } else { $ispit_zaglavlje .= "<td align=\"center\">{$r220['3']}<br/> " . date("d.m.", $r220[1]) . "</td>\n"; } $ispit_id_array[] = $r220[0]; $ispit_komponenta[$r220[0]] = $r220[2]; // Pripremamo podatke o komponentama $komponenta_tip[$r220[2]] = $r220[4]; $komponenta_maxb[$r220[2]] = $r220[5]; $komponenta_prolaz[$r220[2]] = $r220[6]; $komponenta_opcija[$r220[2]] = "{$r220['7']}"; if ($r220[4] != 2) { $mogucih_bodova += $r220[5]; } $minw += 40; $broj_ispita++; } if ($broj_ispita > 0) { $zaglavlje1 .= "<td align=\"center\" colspan=\"{$broj_ispita}\">Ispiti</td>\n"; $zaglavlje2 .= $ispit_zaglavlje; } // Zaglavlje konacna ocjena //$ispis_konacna=0; //$q230 = myquery("select count(*) from konacna_ocjena where predmet=$predmet_id"); //if (mysql_result($q230,0,0)>0) { // $minw += 40; $ispis_konacna = 1; //} //if ($casova==0) $casova=1; // ISPIS ZAGLAVLJA $minw += 70; // ukupno $minw += 45; // broj indexa $minw += 100; // ime i prezime $minw += 40; // komentar $minw += 40; // bodovi prisustvo ?> <table cellspacing="0" cellpadding="2" border="1" <?php if ($minw > 800) { print "width=\"{$minw}\""; } ?> > <tr> <td rowspan="2" align="center" valign="center">Ime i prezime</td> <td rowspan="2" align="center" valign="center">Broj indexa</td> <td rowspan="2" align="center" valign="center">Ko-<br/>men-<br/>tar</td> <?php echo $zaglavlje1; ?> <td align="center" valign="center" rowspan="2"> <b>UKUPNO</b> </td> <?php if ($ispis_konacna == 1) { ?> <td rowspan="2" align="center">Konačna<br/>ocjena</td><?php } ?> </tr> <tr> <?php echo $zaglavlje2; ?> <?php if ($ispis_usmeni == 1) { ?> <td>Usmeni</td><?php } ?> </tr> <?php // CACHE REZULTATA ZADAĆA $zadace_statusi = array(); $zadace_bodovi = array(); $q300 = myquery("SELECT z.zadaca,z.redni_broj,z.student,z.status,z.bodova\nFROM zadatak as z,student_labgrupa as sl \nWHERE z.student=sl.student and sl.labgrupa={$labgrupa}\nORDER BY z.id"); while ($r300 = mysql_fetch_row($q300)) { // Slog sa najnovijim IDom se smatra mjerodavnim // Ostali su u bazi radi historije $zadace_bodovi[$r300[0]][$r300[1]][$r300[2]] = $r300[4]; $zadace_statusi[$r300[0]][$r300[1]][$r300[2]] = $r300[3] + 1; // Dodajemo 1 na status kako bismo kasnije mogli znati da li // je vrijednost niza definisana ili ne. // undef ne radi :( } // Ikone i statusi za zadaće $stat_icon = array("zad_bug", "zad_cekaj", "zad_copy", "zad_bug", "zad_preg", "zad_ok"); $stat_tekst = array("Bug u programu", "Automatsko testiranje u toku", "Zadaća prepisana", "Bug u programu", "Potrebno pregledati", "Zadaća OK"); // Glavna petlja - studenti $q310 = myquery("select a.id,a.ime,a.prezime,a.brindexa from osoba as a,student_labgrupa as sl where a.id=sl.student and sl.labgrupa={$labgrupa}"); $imeprezime = array(); $brind = array(); while ($r310 = mysql_fetch_row($q310)) { $stud_id = $r310[0]; $stud_ime = $r310[1]; $stud_prezime = $r310[2]; $stud_brind = $r310[3]; $imeprezime[$stud_id] = "{$stud_prezime} {$stud_ime}"; $brind[$stud_id] = $stud_brind; // Dodajemo ime grupe pored imena studenta ako je grupa virtualna if ($grupa_virtualna == 1) { $q315 = myquery("select lg.naziv from labgrupa as lg, student_labgrupa as sl where sl.student={$stud_id} and sl.labgrupa=lg.id and lg.virtualna=0 and lg.predmet={$predmet} and lg.akademska_godina={$ag}"); if (mysql_num_rows($q315) > 0) { $stud_ime .= " (" . mysql_result($q315, 0, 0) . ")"; } } } uasort($imeprezime, "bssort"); // bssort - bosanski jezik $redni_broj = 0; foreach ($imeprezime as $stud_id => $stud_imepr) { $rednibroj++; ?> <tr> <td id="student_<?php echo $stud_id; ?> "><?php echo $rednibroj; ?> . <a href="index.php?sta=saradnik/student&student=<?php echo $stud_id; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "><?php echo $stud_imepr; ?> </a></td> <td><?php echo $brind[$stud_id]; ?> </td> <td align="center"><a href="javascript:firefoxopen('index.php?sta=saradnik/komentar&student=<?php echo $stud_id; ?> &labgrupa=<?php echo $labgrupa; ?> ','blah3','width=350,height=320,status=0,toolbar=0,resizable=1,location=0,menubar=0,scrollbars=1');"><img src="images/16x16/komentar-plavi.png" border="0" width="16" height="16" alt="Komentar na rad studenta" title="Komentar na rad studenta"></a></td> <?php $prisustvo_ispis = $zadace_ispis = $ispiti_ispis = ""; $bodova = 0; // PRISUSTVO - ISPIS foreach ($prisustvo_id_array as $pid) { $cas_id_array = $prisustvo_casovi[$pid]; if (count($cas_id_array) == 0) { $prisustvo_ispis .= "<td> </td>"; } $odsustvo = 0; foreach ($cas_id_array as $cid) { // Postoji li kviz za ovaj čas? $uspjeh_na_kvizu = ""; if ($cas_kviz[$cid] > 0) { $q317 = myquery("select dovrsen, bodova from kviz_student where student={$stud_id} and kviz=" . $cas_kviz[$cid]); if (mysql_num_rows($q317) > 0) { if (mysql_result($q317, 0, 0) == 1 && mysql_result($q317, 0, 1) >= $cas_kviz_prolaz[$cid]) { $uspjeh_na_kvizu = '<img src="images/16x16/zad_ok.png" width="8" height="8">'; } else { $uspjeh_na_kvizu = '<img src="images/16x16/brisanje.png" width="8" height="8">'; } } } $q320 = myquery("select prisutan from prisustvo where student={$stud_id} and cas={$cid}"); if (mysql_num_rows($q320) > 0) { if (mysql_result($q320, 0, 0) == 1) { $prisustvo_ispis .= "<td bgcolor=\"#CCFFCC\" align=\"center\" id=\"dane-" . $stud_id . "-" . $cid . "\" onclick=\"javascript:prisustvo(event," . $stud_id . "," . $cid . ")\"><span id=\"danetekst-" . $stud_id . "-" . $cid . "\">DA</span> {$uspjeh_na_kvizu}</td>"; } else { $prisustvo_ispis .= "<td bgcolor=\"#FFCCCC\" align=\"center\" id=\"dane-" . $stud_id . "-" . $cid . "\" onclick=\"javascript:prisustvo(event," . $stud_id . "," . $cid . ")\"><span id=\"danetekst-" . $stud_id . "-" . $cid . "\">NE</span> {$uspjeh_na_kvizu}</td>"; $odsustvo++; } //$ocj = mysql_result($q14,0,1); } else { $prisustvo_ispis .= "<td bgcolor=\"#FFFFCC\" align=\"center\" id=\"dane-" . $stud_id . "-" . $cid . "\" onclick=\"javascript:prisustvo(event," . $stud_id . "," . $cid . ")\"><div id=\"danetekst-" . $stud_id . "-" . $cid . "\"> / </div> {$uspjeh_na_kvizu}</td>"; } } /* if ($odsustvo<=$prisustvo_maxizostanaka[$pid]) { $prisustvo_ispis .= "<td>".$prisustvo_maxbodova[$pid]."</td>"; $bodova+=10; } else { $prisustvo_ispis .= "<td>".$prisustvo_minbodova[$pid]."</td>"; }*/ $q325 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$pid}"); if (mysql_num_rows($q325) == 0) { $pbodovi = 0; } else { $pbodovi = mysql_result($q325, 0, 0); } $prisustvo_ispis .= "<td>{$pbodovi}</td>\n"; $bodova += $pbodovi; } // foreach ($prisustvo... as $pid) // ZADACE - ISPIS foreach ($zad_id_array as $zid) { $zadace_ispis .= "<td>\n"; // FIXME: subqueries //$q15a = myquery ("select redni_broj from zadatak where zadaca=$zid and student=$stud_id order by redni_broj group by redni_broj"); for ($i = 1; $i <= $zad_brz_array[$zid]; $i++) { $status = $zadace_statusi[$zid][$i][$stud_id]; if ($status == 0) { // Zadatak nije poslan if ($kreiranje > 0) { $zadace_ispis .= "<a href=\"#\" onclick=\"javascript:openzadaca(event, '" . $stud_id . "', '" . $zid . "', '" . $i . "'); return false;\"><img src=\"images/16x16/zad_novi.png\" width=\"16\" height=\"16\" border=\"0\" align=\"center\" title=\"" . $stud_id . "," . $zid . "," . $i . "\" alt=\"" . $stud_id . "," . $zid . "," . $i . "\"></a> "; //if ($i<$zad_brz_array[$zid]) $zadace_ispis .= "<br/>"; } } else { $status--; // Bio uvećan za 1 $icon = $stat_icon[$status]; $title = $stat_tekst[$status]; $zb = $zadace_bodovi[$zid][$i][$stud_id]; $zadace_ispis .= "<a href=\"#\" onclick=\"javascript:openzadaca(event, '" . $stud_id . "', '" . $zid . "', '" . $i . "'); return false;\"><img src=\"images/16x16/" . $icon . ".png\" width=\"16\" height=\"16\" border=\"0\" align=\"center\" title=\"" . $stud_id . "," . $zid . "," . $i . "\" alt=\"" . $stud_id . "," . $zid . "," . $i . "\"> " . $zb . "</a>"; // if ($i<$zad_brz_array[$zid]) $zadace_ispis .= "<br/>"; $bodova += $zb; } } $zadace_ispis .= " </td>\n"; } // FIKSNE KOMPONENTE - ISPIS $fiksne_ispis = ""; foreach ($fiksna_id_array as $fiksna) { $q328 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$fiksna}"); if (mysql_num_rows($q328) > 0) { $fbodova = mysql_result($q328, 0, 0); $fiksne_ispis .= "<td id=\"fiksna-{$stud_id}-{$predmet}-{$fiksna}-{$ag}\" ondblclick=\"coolboxopen(this)\">{$fbodova}</td>\n"; $bodova += $fbodova; } else { $fiksne_ispis .= "<td id=\"fiksna-{$stud_id}-{$predmet}-{$fiksna}-{$ag}\" ondblclick=\"coolboxopen(this)\">/</td>\n"; } } // ISPITI - ISPIS $ispiti_ispis = ""; $komponente = $kmax = array(); foreach ($ispit_id_array as $ispit) { $k = $ispit_komponenta[$ispit]; $q330 = myquery("select ocjena from ispitocjene where ispit={$ispit} and student={$stud_id}"); if (mysql_num_rows($q330) > 0) { $ocjena = mysql_result($q330, 0, 0); $ispiti_ispis .= "<td id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">{$ocjena}</td>\n"; if (!in_array($k, $komponente) || $ocjena > $kmax[$k]) { $kmax[$k] = $ocjena; } } else { $ispiti_ispis .= "<td id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">/</td>\n"; } if (!in_array($k, $komponente)) { $komponente[] = $k; } } // Prvo trazimo integralne ispite foreach ($komponente as $k) { if ($komponenta_tip[$k] == 2) { // Koje parcijalne ispite obuhvata integralni $dijelovi = explode("+", $komponenta_opcija[$k]); // Racunamo zbir $zbir = 0; $pao = 0; foreach ($dijelovi as $dio) { $zbir += $kmax[$dio]; if ($kmax[$dio] < $komponenta_prolaz[$dio]) { $pao = 1; } } // Eliminisemo parcijalne obuhvacene integralnim if ($kmax[$k] > $zbir || $pao == 1 && $kmax[$k] >= $komponenta_prolaz[$k]) { $bodova += $kmax[$k]; foreach ($dijelovi as $dio) { $kmax[$dio] = 0; } } } } // Sabiremo preostale parcijalne ispite na sumu bodova foreach ($komponente as $k) { if ($komponenta_tip[$k] != 2) { $bodova += $kmax[$k]; } } // KONACNA OCJENA - ISPIS $q350 = myquery("select ocjena from konacna_ocjena where student={$stud_id} and predmet={$predmet} and akademska_godina={$ag}"); if ($privilegija == "super_asistent") { if (mysql_num_rows($q350) > 0) { $ko_ispis = "<td align=\"center\" id=\"ko-{$stud_id}-{$predmet}-{$ag}\">" . mysql_result($q350, 0, 0) . "</td>\n"; } else { $ko_ispis = "<td align=\"center\" id=\"ko-{$stud_id}-{$predmet}-{$ag}\">/</td>\n"; } } else { if (mysql_num_rows($q350) > 0) { $ko_ispis = "<td align=\"center\" id=\"ko-{$stud_id}-{$predmet}-{$ag}\" ondblclick=\"coolboxopen(this)\">" . mysql_result($q350, 0, 0) . "</td>\n"; } else { $ko_ispis = "<td align=\"center\" id=\"ko-{$stud_id}-{$predmet}-{$ag}\" ondblclick=\"coolboxopen(this)\">/</td>\n"; } } ?> <?php echo $prisustvo_ispis; ?> <?php echo $zadace_ispis; ?> <?php echo $fiksne_ispis; ?> <?php echo $ispiti_ispis; ?> <td align="center"><?php print $bodova; /* Procenat zauzima previše prostora po horizontali, a nije toliko interesantan if ($mogucih_bodova!=0 && $mogucih_bodova!=100) { // ?> (<?=procenat($bodova,$mogucih_bodova)?>)<? } */ ?> </td> <?php echo $ko_ispis; ?> </tr><?php } ?> </table> <p><?php if ($kreiranje > 0) { $k = str_replace("&kreiranje=1", "", genuri()); ?> <a href="<?php echo $k; ?> ">Sakrij dugmad za kreiranje zadataka</a><?php } else { ?> <a href="<?php echo genuri(); ?> &kreiranje=1">Prikaži dugmad za kreiranje zadataka</a><?php } ?> * <a href="?sta=saradnik/grupa&id=<?php echo $labgrupa; ?> ">Refresh</a></p> <?php if ($privilegija == "nastavnik") { ?> <p>Vi ste administrator ovog predmeta.</p><?php } else { if ($privilegija == "super_asistent") { ?> <p>Vi ste super-asistent ovog predmeta.</p><?php } } ?> <p> </p> <?php }
function izvjestaj_termini_ispita() { global $userid, $user_nastavnik, $user_studentska, $user_siteadmin; ?> <p>Univerzitet u Sarajevu<br/> Elektrotehnički fakultet Sarajevo</p> <p>Datum i vrijeme izvještaja: <?php echo date("d. m. Y. H:i"); ?> </p> <?php // Parametar if (isset($_REQUEST['termin'])) { $termin_id_url = intval($_REQUEST['termin']); } if (isset($_REQUEST['ispit'])) { $ispit = intval($_REQUEST['ispit']); } else { $q8 = myquery("select ispit from ispit_termin where id={$termin_id_url}"); if (mysql_num_rows($q8) < 1) { niceerror("Nepostojeći termin."); return; } $ispit = mysql_result($q8, 0, 0); } $q9 = myquery("select komponenta from ispit where id={$ispit}"); if (mysql_num_rows($q9) < 1) { niceerror("Nepostojeći ispit."); return; } $komp = mysql_result($q9, 0, 0); // Upit za ispit if ($komp <= 4) { // FIXME Oznake komponente <= 4 se koriste za regularne ispite $q10 = myquery("select UNIX_TIMESTAMP(i.datum), k.gui_naziv, i.predmet, i.akademska_godina from ispit as i, komponenta as k where i.id={$ispit} and i.komponenta=k.id"); } else { $q10 = myquery("select UNIX_TIMESTAMP(i.datum), d.naziv, i.predmet, i.akademska_godina from ispit as i, dogadjaj as d where i.id={$ispit} and i.komponenta=d.id"); } $predmet = mysql_result($q10, 0, 2); $ag = mysql_result($q10, 0, 3); $finidatum = date("d. m. Y.", mysql_result($q10, 0, 0)); $naziv = mysql_result($q10, 0, 1); // Dodatna provjera privilegija if (!$user_studentska && !$user_siteadmin) { $q20 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q20) < 1) { biguglyerror("Nemate permisije za pristup ovom izvještaju"); zamgerlog("nije admin predmeta pp{$predmet} godina ag{$ag}", 3); // 3 = error return; } $privilegija = mysql_result($q20, 0, 0); } // Cool editing box if ($privilegija == "nastavnik" || $privilegija == "super_asistent" || $user_siteadmin) { cool_box('ajah_start("index.php?c=N&sta=common/ajah&akcija=izmjena_ispita&idpolja="+zamger_coolbox_origcaller.id+"&vrijednost="+coolboxedit.value, "undo_coolbox()", "zamger_coolbox_origcaller=false");'); ?> <script language="JavaScript"> function undo_coolbox() { var greska = document.getElementById("zamger_ajah-info").innerText || document.getElementById("zamger_ajah-info").textContent; alert(greska); zamger_coolbox_origcaller.innerHTML = zamger_coolbox_origvalue; zamger_coolbox_origcaller=false; } </script> <?php } // Naziv predmeta, akademska godina $q21 = myquery("select naziv from predmet where id={$predmet}"); $q22 = myquery("select naziv from akademska_godina where id={$ag}"); ?> <p> </p> <h3><?php echo $naziv; ?> , <?php echo $finidatum; ?> </h3> <p><?php echo mysql_result($q21, 0, 0); ?> <?php echo mysql_result($q22, 0, 0); ?> </p> <?php print ajah_box(); $imeprezime = $brindexa = array(); $qtermini = myquery("SELECT it.id,UNIX_TIMESTAMP(it.datumvrijeme)\n\t\t\t\t FROM ispit_termin it\n\t\t\t\t\t INNER JOIN ispit i ON i.id = it.ispit\n\t\t\t\t\t WHERE i.id={$ispit}\n\t\t\t\t\t ORDER BY it.datumvrijeme\n\t\t\t\t\t"); $broj_termina = 0; if (isset($_REQUEST['termin'])) { $termin_id_from_url = intval($_REQUEST['termin']); ?> <p><a href="?sta=izvjestaj/termini_ispita&termin=<?php echo $termin_id_from_url; ?> ">Refresh</a></p> <?php } else { ?> <p><a href="?sta=izvjestaj/termini_ispita&ispit=<?php echo $ispit; ?> ">Refresh</a></p> <?php } while ($rtermini = mysql_fetch_row($qtermini)) { $broj_termina++; $id_termina = $rtermini[0]; if (isset($_REQUEST['termin'])) { $termin_id_from_url = intval($_REQUEST['termin']); if ($termin_id_from_url != $id_termina) { continue; } } $datum_termina = date("d. m. Y. ( H:i )", $rtermini[1]); if (isset($_REQUEST['ispit'])) { $ispit = intval($_REQUEST['ispit']); } else { $q8 = myquery("select ispit from ispit_termin where id={$termin_id_url}"); $ispit = mysql_result($q8, 0, 0); } print "Termin {$broj_termina} : <h4 style=\"display:inline\"> {$datum_termina}</h4><br></br>"; $q10 = myquery("select o.id, o.prezime, o.ime, o.brindexa \n\t\t\t\t\tfrom osoba as o, student_predmet as sp, ponudakursa as pk, student_ispit_termin sit, ispit_termin it, ispit i\n\t\t\t\t\twhere \n\t\t\t\t\t\tsp.predmet=pk.id \n\t\t\t\t\t\tand sp.student=o.id\n\t\t\t\t\t\tand sit.student=o.id\n\t\t\t\t\t\tand sit.ispit_termin=it.id\n\t\t\t\t\t\tand it.ispit = i.id\n\t\t\t\t\t\tand pk.predmet={$predmet} \n\t\t\t\t\t\tand pk.akademska_godina={$ag}\n\t\t\t\t\t\tand i.id={$ispit}\n\t\t\t\t\t\tand it.id = {$id_termina}\n\t\t\t\t\t\t"); if (mysql_num_rows($q10) < 1) { print "<p>------------------------------------------------------</p>"; print "<p>Nijedan student nije prijavljen na ovaj termin.</p>"; print "<p>------------------------------------------------------</p>"; continue; } while ($r10 = mysql_fetch_row($q10)) { $imeprezime[$r10[0]] = "{$r10['1']} {$r10['2']}"; $brindexa[$r10[0]] = "{$r10['3']}"; } uasort($imeprezime, "bssort"); // bssort - bosanski jezik // Ima li grupa na predmetu? $q27 = myquery("SELECT count(*) FROM labgrupa WHERE predmet={$predmet} AND akademska_godina={$ag} AND virtualna=0"); if (mysql_result($q27, 0, 0) > 0) { $treba_grupe = true; } else { $treba_grupe = false; } $broj_ispita = 0; $ispit_zaglavlje = ""; $oldkomponenta = 0; $ispit_id_array = array(); $q30 = myquery("select i.id, UNIX_TIMESTAMP(i.datum), k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova, k.prolaz, k.opcija from ispit as i, komponenta as k where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id order by i.datum, i.komponenta"); $imaintegralni = 0; while ($r30 = mysql_fetch_row($q30)) { $komponenta = $r30[2]; $imeispita = $r30[3]; $tipkomponente = $r30[4]; $ispit_zaglavlje .= "<td align=\"center\">{$imeispita}<br/> " . date("d.m.", $r30[1]) . "</td>\n"; $broj_ispita++; $ispit_id_array[] = $r30[0]; $ispit_komponenta[$r30[0]] = $r30[2]; // Pripremamo podatke o komponentama $komponenta_tip[$r30[2]] = $r30[4]; $komponenta_maxb[$r30[2]] = $r30[5]; $komponenta_prolaz[$r30[2]] = $r30[6]; $komponenta_opcija[$r30[2]] = "{$r30['7']}"; } // Racunamo koliko je bilo moguce ostvariti bodova na predmetu (radi racunanja procenta) $mogucih_bodova = 0; foreach ($komponenta_maxb as $kid => $kmb) { if ($komponenta_tip[$kid] != 2 || $imaintegralni == 1 && $broj_ispita < 2) { // osim ako je to jedini ispit $mogucih_bodova += $kmb; } } // Ostale komponente cemo sabrati nesto kasnije... // Za slucaj da prof odrzi integralni bez parcijalnih if ($imaintegralni == 1 && $broj_ispita < 2) { // $razvdoji_ispite=1; goto // Zaglavlje tabele ispita // no php ne podržava goto :( $broj_ispita = 2; // Ovo ce i dalje biti deformisano, ali nesto manje deformisano nego ranije } // SPISAK KOMPONENTI KOJE NISU ISPITI $ostale_komponente = array(); // 1 = parcijalni ispit, 2 = integralni ispit $q40 = myquery("select k.id, k.kratki_gui_naziv, k.tipkomponente, k.maxbodova from komponenta as k, akademska_godina_predmet as agp, tippredmeta_komponenta as tpk where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente!=1 and k.tipkomponente!=2 and agp.akademska_godina={$ag}"); while ($r40 = mysql_fetch_row($q40)) { $mogucih_bodova += $r40[3]; $ostale_komponente[$r40[0]] = $r40[1]; } $zaglavlje1 = $zaglavlje2 = ""; // Dva reda zaglavlja tabele // Ostale komponente foreach ($ostale_komponente as $kid => $knaziv) { $zaglavlje1 .= "<td rowspan=\"2\" align=\"center\">{$knaziv}</td>\n"; } ?> <table border="1" cellspacing="0" cellpadding="2"> <tr><td rowspan="2" align="center">R.br.</td> <td rowspan="2" align="center">Prezime i ime</td> <td rowspan="2" align="center">Br. indexa</td> <?php if ($treba_grupe) { ?> <td rowspan="2" align="center">Grupa</td><?php } ?> <?php echo $zaglavlje1; ?> <td align="center" <?php if ($broj_ispita == 0) { ?> rowspan="2" <?php } else { ?> colspan="<?php echo $broj_ispita; ?> " <?php } ?> >Ispiti</td> <td rowspan="2" align="center"><b>UKUPNO</b></td> <td rowspan="2" align="center">Konačna<br/>ocjena</td> </tr> <tr> <?php echo $zaglavlje2; ?> <?php echo $ispit_zaglavlje; ?> </tr> <?php // ------ SPISAK STUDENATA ------ $idovi = array_keys($imeprezime); // Petlja za ispis studenata $redni_broj = 0; foreach ($imeprezime as $stud_id => $stud_imepr) { if (!in_array($stud_id, $idovi)) { continue; } unset($imeprezime[$stud_id]); // Vise se nece javljati $redni_broj++; ?> <tr> <td><?php echo $redni_broj; ?> .</td> <td><?php echo $stud_imepr; ?> </td> <td><?php echo $brindexa[$stud_id]; ?> </td> <?php if ($treba_grupe) { $q220 = myquery("SELECT l.naziv FROM labgrupa as l, student_labgrupa as sl WHERE l.predmet={$predmet} AND l.akademska_godina={$ag} AND l.virtualna=0 AND l.id=sl.labgrupa AND sl.student={$stud_id}"); if (mysql_num_rows($q220) == 0) { $grupa = " "; } else { $grupa = mysql_result($q220, 0, 0); } ?> <td><?php echo $grupa; ?> </td> <?php } $ispis = ""; $bodova = 0; // Zbir bodova koje je student ostvario // OSTALE KOMPONENTE foreach ($ostale_komponente as $kid => $knaziv) { $q230 = myquery("select kb.bodovi from komponentebodovi as kb, ponudakursa as pk where kb.student={$stud_id} and kb.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} and kb.komponenta={$kid}"); $obodova = 0; if (mysql_num_rows($q230) > 0) { $obodova = mysql_result($q230, 0, 0); } $ispis .= "<td>{$obodova}</td>"; $bodova += $obodova; } // ISPITI if ($broj_ispita == 0) { $ispis .= "<td> </td>"; } $komponente = $kmax = $kispis = array(); foreach ($ispit_id_array as $ispit) { $k = $ispit_komponenta[$ispit]; $q230 = myquery("select ocjena from ispitocjene where ispit={$ispit} and student={$stud_id}"); if (mysql_num_rows($q230) > 0) { $ocjena = mysql_result($q230, 0, 0); $ispis .= "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">{$ocjena}</td>\n"; if (!in_array($k, $komponente) || $ocjena > $kmax[$k]) { $kmax[$k] = $ocjena; $kispis[$k] = "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">{$ocjena}</td>\n"; } } else { $ispis .= "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">/</td>\n"; if ($kispis[$k] == "") { $kispis[$k] = "<td align=\"center\" id=\"ispit-{$stud_id}-{$ispit}\" ondblclick=\"coolboxopen(this)\">/</td>\n"; } } if (!in_array($k, $komponente)) { $komponente[] = $k; } } // Prvo trazimo integralne ispite foreach ($komponente as $k) { if ($komponenta_tip[$k] == 2) { // Koje parcijalne ispite obuhvata integralni $dijelovi = explode("+", $komponenta_opcija[$k]); // Racunamo zbir $zbir = 0; $pao = 0; foreach ($dijelovi as $dio) { $zbir += $kmax[$dio]; if ($kmax[$dio] < $komponenta_prolaz[$dio]) { $pao = 1; } } // Eliminisemo parcijalne obuhvacene integralnim if ($kmax[$k] > $zbir || $pao == 1 && $kmax[$k] >= $komponenta_prolaz[$k]) { $bodova += $kmax[$k]; foreach ($dijelovi as $dio) { $kmax[$dio] = 0; $kispis[$dio] = ""; } $kispis[$k] = "<td align=\"center\" colspan=\"" . count($dijelovi) . "\">" . $kmax[$k] . "</td>\n"; } else { $kispis[$k] = ""; } } } // Sabiremo preostale parcijalne ispite na sumu bodova foreach ($komponente as $k) { if ($komponenta_tip[$k] != 2) { $bodova += $kmax[$k]; } } // STATISTIKE $topscore[$stud_id] = $bodova; print $ispis; print "<td align=\"center\">{$bodova} (" . procenat($bodova, $mogucih_bodova) . ")</td>\n"; // Konacna ocjena $q508 = myquery("select ocjena from konacna_ocjena where student={$stud_id} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q508) > 0) { print "<td id=\"ko-{$stud_id}-{$predmet}-{$ag}\" ondblclick=\"coolboxopen(this)\">" . mysql_result($q508, 0, 0) . "</td>\n"; } else { print "<td id=\"ko-{$stud_id}-{$predmet}-{$ag}\" ondblclick=\"coolboxopen(this)\">/</td>\n"; } print "</tr>\n"; } print "</table><p> </p>"; } ?> <?php }