function studentska_predmeti() { global $userid, $user_siteadmin, $user_studentska; global $_lv_; // Potrebno za genform() iz libvedran require "lib/manip.php"; // radi ispisa studenata sa predmeta // Provjera privilegija if (!$user_studentska && !$user_siteadmin) { zamgerlog("nije studentska", 3); // 3: error zamgerlog2("nije studentska"); biguglyerror("Pristup nije dozvoljen."); return; } ?> <center> <table border="0"><tr><td> <?php $akcija = $_REQUEST['akcija']; // AKCIJA: Ogranicenje nastavnika na odredjene grupe if ($akcija == "ogranicenja") { $nastavnik = intval($_REQUEST['nastavnik']); $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // akademska godina // Imena stvari $q370 = myquery("select ime,prezime from osoba where id={$nastavnik}"); if (mysql_num_rows($q370) < 1) { zamgerlog("nepoznat nastavnik u{$nastavnik}", 3); zamgerlog2("nepoznat nastavnik", $nastavnik); niceerror("Nepoznat nastavnik"); return; } $ime = mysql_result($q370, 0, 0); $prezime = mysql_result($q370, 0, 1); $q371 = myquery("select naziv from predmet where id={$predmet}"); if (mysql_num_rows($q371) < 1) { zamgerlog("nepoznat predmet pp{$predmet}", 3); zamgerlog2("nepoznat predmet", $predmet); niceerror("Nepoznat predmet"); return; } $naziv_predmeta = mysql_result($q371, 0, 0); ?> <ul><p> <b>Ograničenja za nastavnika <?php echo $ime . " " . $prezime; ?> na predmetu <?php echo $naziv_predmeta; ?> </b></p><?php // Subakcija if ($_POST['subakcija'] == "izmjena" && check_csrf_token()) { // Provjera podataka... $q374 = myquery("select id from labgrupa where predmet={$predmet} and akademska_godina={$ag}"); $izabrane = 0; $grupe = 0; $upitdodaj = $upitbrisi = $upitbrisisve = ""; while ($r374 = mysql_fetch_row($q374)) { $labgrupa = $r374[0]; if ($_REQUEST['lg' . $labgrupa]) { $izabrane++; if ($upitdodaj) { $upitdodaj .= ","; } $upitdodaj .= "({$nastavnik},{$labgrupa})"; } else { if ($upitbrisi) { $upitbrisi .= " OR "; } $upitbrisi .= "(nastavnik={$nastavnik} AND labgrupa={$labgrupa})"; } if ($upitbrisisve) { $upitbrisisve .= " OR "; } $upitbrisisve .= "(nastavnik={$nastavnik} AND labgrupa={$labgrupa})"; $grupe++; } if ($upitdodaj == "") { zamgerlog("pokusao ograniciti sve grupe nastavniku u{$nastavnik}, predmet pp{$predmet}, ag{$ag}", 3); zamgerlog2("pokusao ograniciti sve grupe nastavniku", $nastavnik, $predmet, $ag); niceerror("Nastavnik mora imati pristup barem jednoj grupi"); print "<br/>Ako ne želite da ima pristup, odjavite ga/je sa predmeta."; } else { if ($grupe == $izabrane) { // Sve izabrano $q375 = myquery("delete from ogranicenje where {$upitbrisisve}"); } else { $q376 = myquery("delete from ogranicenje where {$upitbrisisve}"); $q377 = myquery("insert into ogranicenje values {$upitdodaj}"); } nicemessage("Postavljena nova ograničenja."); zamgerlog("izmijenjena ogranicenja nastavniku u{$nastavnik}, predmet pp{$predmet}, ag{$ag}", 4); zamgerlog2("izmijenjena ogranicenja nastavniku", $nastavnik, $predmet, $ag); } } // Skripta za (de)selektovanje svih checkboxa ?> <script language="JavaScript"> function checkall(val) { var z; for(z=0; z<document.ogranicenjaform.length; z++) if (document.ogranicenjaform[z].type=='checkbox') document.ogranicenjaform[z].checked=val; } </script> <?php ?> <?php echo genform("POST", "ogranicenjaform"); ?> <input type="hidden" name="subakcija" value="izmjena"> <p> <?php $nema_ogranicenja = 0; $q372 = myquery("select count(*) from ogranicenje as o, labgrupa as l where o.nastavnik={$nastavnik} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}"); if (mysql_result($q372, 0, 0) < 1) { $nema_ogranicenja = 1; } $q373 = myquery("select id,naziv from labgrupa where predmet={$predmet} and akademska_godina={$ag}"); while ($r373 = mysql_fetch_row($q373)) { $dodaj = "CHECKED"; if ($nema_ogranicenja == 0) { $q374 = myquery("select count(*) from ogranicenje where labgrupa={$r373['0']} and nastavnik={$nastavnik}"); if (mysql_result($q374, 0, 0) == 0) { $dodaj = ""; } } ?> <input type="checkbox" name="lg<?php echo $r373[0]; ?> " <?php echo $dodaj; ?> > <?php echo $r373[1]; ?> <br/><?php } ?> <br/><input type="submit" value=" Izmijeni "> <input type="button" value=" Označi sve " onclick="javascript:checkall(true);"> <input type="button" value=" Poništi sve " onclick="javascript:checkall(false);"> <input type="button" value=" Nazad " onclick="location.href='?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ';"></form><?php } else { if ($_POST['akcija'] == "novi" && check_csrf_token()) { // Naziv predmeta $naziv = substr(my_escape($_POST['naziv']), 0, 100); if (!preg_match("/\\w/", $naziv)) { zamgerlog("naziv nije ispravan ({$naziv})", 3); zamgerlog2("naziv nije ispravan", 0, 0, 0, $naziv); niceerror("Naziv nije ispravan"); return; } // Dodajemo ga u aktuelnu akademsku godinu $q200 = myquery("select id from akademska_godina where aktuelna=1"); if (mysql_num_rows($q200) < 1) { $q200 = myquery("select id from akademska_godina order by id desc"); } if (mysql_num_rows($q200) < 1) { niceerror("Nije definisana nijedna akademska godina. Molimo kontaktirajte administratora sajta."); zamgerlog("ne postoji nijedna akademska godina", 3); zamgerlog2("ne postoji nijedna akademska godina"); return; } $ak_god = mysql_result($q200, 0, 0); // Da li već postoji? $q210 = myquery("select id from predmet where naziv='{$naziv}'"); if (mysql_num_rows($q210) > 0) { $predmet = mysql_result($q210, 0, 0); // Da li se drži u tekućoj akademskoj godini? $q220 = myquery("select count(*) from ponudakursa where predmet={$predmet} and akademska_godina={$ak_god}"); if (mysql_result($q220, 0, 0) > 0) { zamgerlog("predmet vec postoji u ovoj ak.god (pp{$predmet})", 3); zamgerlog2("predmet vec postoji u ovoj ak.god", $predmet, $ag, 0, $naziv); niceerror("Predmet već postoji"); ?> <a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ak_god; ?> ">Editovanje predmeta "<?php echo $naziv; ?> "</a><?php return; } else { // Određujemo najnoviji plan studija $q225 = myquery("select godina_vazenja from plan_studija where predmet={$predmet} order by godina_vazenja desc limit 1"); if (mysql_num_rows($q225) > 0) { // Biramo ponude kursa iz najnovijeg plana studija $q230 = myquery("select studij, semestar, obavezan from plan_studija where predmet={$predmet} and godina_vazenja=" . mysql_result($q225, 0, 0)); } else { // Ne postoji plan studija // Kopiramo ponude kursa iz prošle godine u ovu $q230 = myquery("select studij, semestar, obavezan from ponudakursa where predmet={$predmet} and akademska_godina=" . ($ak_god - 1)); } if (mysql_num_rows($q230) < 1) { zamgerlog("predmet vec postoji, ali nije se drzao (pp{$predmet})", 3); zamgerlog2("predmet vec postoji, ali nije se drzao", $predmet); niceerror("Predmet već postoji, ali nije se držao ni ove ni prošle akademske godine."); ?> <p>Takođe nije definisan ni plan studija. Iz ovih razloga ne možemo automatski kreirati ponude kursa. Koristite editovanje da biste ručno dodali ponude kursa.</p><br/><a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ak_god; ?> ">Editovanje predmeta "<?php echo $naziv; ?> "</a><?php return; } while ($r230 = mysql_fetch_row($q230)) { $q240 = myquery("insert into ponudakursa set predmet={$predmet}, studij={$r230['0']}, semestar={$r230['1']}, obavezan={$r230['2']}, akademska_godina={$ak_god}"); $pk = mysql_insert_id(); // Ispis i logging $q231 = myquery("select naziv from studij where id={$r230['0']}"); $ispis = "Kreiram ponudu kursa za predmet {$naziv} (studij " . mysql_result($q231, 0, 0) . ", semestar {$r230['1']}"; if ($r230[2] != 1) { $ispis .= ", izborni"; } $ispis .= ")"; nicemessage($ispis); zamgerlog("kreirana ponudakursa za pp{$predmet}"); zamgerlog2("kreirana ponudakursa", $pk); } // Kreiram virtualnu labgrupu "Svi studenti" $q250 = myquery("insert into labgrupa set naziv='(Svi studenti)', predmet={$predmet}, akademska_godina={$ak_god}, virtualna=1"); ?> <a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ak_god; ?> ">Editovanje predmeta "<?php echo $naziv; ?> "</a><?php return; } } // Kreiranje potpuno novog predmeta // Određujemo kratki naziv $dijelovi = explode(" ", $naziv); $kratki_naziv = ""; foreach ($dijelovi as $dio) { $kratki_naziv .= strtoupper(substr($dio, 0, 1)); } // Polje institucija u tabeli predmet mora biti definisano! // Korisnik ga može promijeniti kasnije $q260 = myquery("select id from institucija order by id limit 1"); $institucija = mysql_result($q260, 0, 0); // Dodajem predmet u bazu $q270 = myquery("insert into predmet set naziv='{$naziv}', kratki_naziv='{$kratki_naziv}', institucija={$institucija}"); // Koji id predmeta smo dobili? $q280 = myquery("select id from predmet where naziv='{$naziv}'"); $predmet = mysql_result($q280, 0, 0); // Potrebno je definisati zapis u tabeli akademska_godina_predmet. Biramo // default tip predmeta (ETF Bologna standard) a korisnik ga može promijeniti kasnije $q285 = myquery("select id from tippredmeta order by id limit 1"); $tippredmeta = mysql_result($q285, 0, 0); $q287 = myquery("insert into akademska_godina_predmet set akademska_godina={$ak_god}, predmet={$predmet}, tippredmeta={$tippredmeta}"); // Kreiramo virtualnu labgrupu "Svi studenti" $q290 = myquery("insert into labgrupa set naziv='(Svi studenti)', predmet={$predmet}, akademska_godina={$ak_god}, virtualna=1"); // Logging zamgerlog("potpuno novi predmet pp{$predmet}, akademska godina ag{$ak_god}", 4); zamgerlog2("kreiran novi predmet", $predmet, $ak_god); ?> <p>Kreiran novi predmet pod nazivom <?php echo $naziv; ?> sa uobičajenim parametrima. Koristite polja za izmjenu da ih podesite.</p> <p>Obavezno definišite barem jednu ponudu kursa, u suprotnom studenti neće moći biti upisani na predmet.</p> <a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ak_god; ?> ">Editovanje predmeta "<?php echo $naziv; ?> "</a> <?php } else { if ($akcija == "realedit") { $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // akademska godina print "<h1>Izmjena podataka o predmetu</h1>"; if ($_REQUEST['_lv_action'] == "edit") { nicemessage("Podaci o predmetu izmijenjeni"); zamgerlog("izmijenjeni podaci o predmetu pp{$predmet}", 4); zamgerlog2("izmijenjeni podaci o predmetu", $predmet); } $_lv_['where:id'] = $predmet; $_lv_['forceedit'] = 1; print db_form("predmet"); ?> <p><a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Nazad</a></p> <?php } else { if ($akcija == "dodaj_pk") { $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // akademska godina if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { $studij = intval($_REQUEST['_lv_column_studij']); $semestar = intval($_REQUEST['semestar']); if ($_REQUEST['obavezan']) { $obavezan = true; } else { $obavezan = false; } kreiraj_ponudu_kursa($predmet, $studij, $semestar, $ag, $obavezan, $ispis = 0); nicemessage("Ponuda kursa uspješno kreirana"); } $q400 = myquery("select naziv from predmet where id={$predmet}"); $q410 = myquery("select naziv from akademska_godina where id={$ag}"); print "<h3>Nova ponuda kursa za predmet " . mysql_result($q400, 0, 0) . ",<br/> akademska godina " . mysql_result($q410, 0, 0) . "</h3>"; unset($_REQUEST['obavezan']); print genform("POST"); ?> <input type="hidden" name="subakcija" value="potvrda"> Studij: <?php echo db_dropdown("studij"); ?> <br><br> Semestar: <input type="text" name="semestar" size="5"><br><br> <input type="checkbox" name="obavezan"> Obavezan<br><br> <input type="submit" value=" Pošalji "> <input type="reset" value=" Poništi "></form> <p><a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Nazad</a></p> <?php } else { if ($akcija == "edit") { $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // akademska godina if ($ag == 0) { // Izaberi aktuelnu akademsku godinu $q358 = myquery("select id from akademska_godina where aktuelna=1 limit 1"); $ag = mysql_result($q358, 0, 0); } $old_search = $_REQUEST['search']; // Za link ispod print "<a href=\"?sta=studentska/predmeti&ag={$ag}&search={$old_search}&offset=" . intval($_REQUEST['offset']) . "\">Nazad na rezultate pretrage</a><br/><br/>"; // Izvjestaji ?> <center> <table width="700" border="0" cellspacing="0" cellpadding="0"><tr><td width="100" valign="top"> <table width="100%" border="1" cellspacing="0" cellpadding="0"> <tr><td bgcolor="#777777" align="center"> <font color="white"><b>IZVJEŠTAJI:</b></font> </td></tr> <tr><td align="center"><a href="?sta=izvjestaj/grupe&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Spisak grupa</a></td></tr> <tr><td align="center"><a href="?sta=izvjestaj/predmet&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &skrati=da"> <img src="images/32x32/izvjestaj.png" border="0"><br/>Puni izvještaj</a></td></tr><?php $q359 = myquery("select i.id,UNIX_TIMESTAMP(i.datum), k.gui_naziv 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($q359) > 0) { ?> <tr><td align="center"><a href="?sta=izvjestaj/statistika_predmeta&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Statistika predmeta</a></td></tr><?php } ?> <tr><td align="center"><a href="?sta=studentska/prijave&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Štampanje prijava</a></td></tr> <tr><td align="center"><a href="?sta=nastavnik/ispiti&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Ispiti i prijave</a></td></tr> <tr><td align="center"><a href="?sta=nastavnik/unos_ocjene&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Unos ocjena</a></td></tr> <tr><td align="left">Ispiti:<br/><?php while ($r359 = mysql_fetch_row($q359)) { $ispit = $r359[0]; $datum = date("d. m. Y.", $r359[1]); $nazivispita = $r359[2]; ?> * <a href="?sta=izvjestaj/ispit&ispit=<?php echo $ispit; ?> "><?php echo $nazivispita; ?> <br/> (<?php echo $datum; ?> )</a><br/> <?php } ?> </td></tr> </table> </td><td width="10" valign="top"> </td><td width="590" valign="top"> <?php // Submit akcije // Angazman nastavnika na predmetu if ($_POST['subakcija'] == "dodaj_nastavnika" && check_csrf_token()) { $nastavnik = intval($_POST['nastavnik']); if ($nastavnik > 0) { $q360 = myquery("select count(*) from nastavnik_predmet where nastavnik={$nastavnik} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_result($q360, 0, 0) < 1) { $q361 = myquery("insert into nastavnik_predmet set nastavnik={$nastavnik}, predmet={$predmet}, akademska_godina={$ag}"); } nicemessage("Nastavniku dato pravo pristupa predmetu"); zamgerlog("nastavnik u{$nastavnik} dodan na predmet pp{$predmet}", 4); zamgerlog2("nastavniku data prava na predmetu", $nastavnik, $predmet, $ag); } } else { if ($_POST['subakcija'] == "postavi_nivo_pristupa" && check_csrf_token()) { $nastavnik = intval($_POST['nastavnik']); $nivo_pristupa = $_POST['nivo_pristupa']; if ($nivo_pristupa != 'nastavnik' && $nivo_pristupa != 'super_asistent' && $nivo_pristupa != 'asistent') { niceerror("Nepoznat nivo pristupa"); zamgerlog("nepoznat nivo pristupa " . my_escape($nivo_pristupa), 3); zamgerlog2("nepoznat nivo pristupa", 0, 0, 0, $nivo_pristupa); return; } $q362a = myquery("update nastavnik_predmet set nivo_pristupa='{$nivo_pristupa}' where nastavnik={$nastavnik} and predmet={$predmet} and akademska_godina={$ag}"); nicemessage("Promijenjeni nivoi pristupa korisnika na predmetu"); zamgerlog("nastavnik u{$nastavnik} dat nivo '{$nivo_pristupa}' na predmetu pp{$predmet}", 4); zamgerlog2("nastavniku data prava na predmetu", $nastavnik, $predmet, $ag, $nivo_pristupa); } else { if ($_POST['subakcija'] == "izbaci_nastavnika" && check_csrf_token()) { $nastavnik = intval($_POST['nastavnik']); $q363 = myquery("delete from nastavnik_predmet where nastavnik={$nastavnik} and predmet={$predmet} and akademska_godina={$ag}"); nicemessage("Nastavnik više nema pravo pristupa predmetu"); zamgerlog("nastavnik u{$nastavnik} izbacen sa predmeta pp{$predmet}", 4); zamgerlog2("nastavniku oduzeta prava na predmetu", $nastavnik, $predmet, $ag); } else { if ($_POST['subakcija'] == "obrisi_pk" && check_csrf_token()) { $ponudakursa = intval($_POST['pk']); // Ispisujemo studente sa predmeta radi ispravnog brisanja podataka $q364 = myquery("select sp.student, pk.predmet, pk.akademska_godina, o.ime, o.prezime, p.naziv from student_predmet as sp, ponudakursa as pk, osoba as o, predmet as p where pk.id={$ponudakursa} and sp.predmet=pk.id and sp.student=o.id and pk.predmet=p.id"); while ($r364 = mysql_fetch_row($q364)) { $predmet = $r364[1]; $ag = $r364[2]; // za kasnije... nicemessage("Ispisujem studenta {$r364['3']} {$r364['4']} sa predmeta {$r365}"); // Ova funkcija briše ispite, zadaće, prisustvo i konačnu ocjenu te ispisuje studenta iz labgrupe ispis_studenta_sa_predmeta($r364[0], $r364[1], $r364[2]); } // Brišemo ponudu kursa $q365 = myquery("delete from ponudakursa where id={$ponudakursa}"); nicemessage("Ponuda kursa je obrisana"); zamgerlog("obrisana ponudakursa {$ponudakursa} (predmet pp{$predmet}, godina ag{$ag})", 4); zamgerlog2("obrisana ponudakursa", $ponudakursa); } else { if ($_GET['subakcija'] == "deangazuj") { $osoba = intval($_GET['osoba']); $q367 = myquery("delete from angazman where osoba={$osoba} and predmet={$predmet} and akademska_godina={$ag}"); nicemessage("Nastavnik više nije angažovan na predmetu"); zamgerlog("osoba u{$osoba} deangazovana sa predmeta pp{$predmet}, godina {$ag}", 4); zamgerlog2("nastavnik deangazovan sa predmeta", $osoba, $predmet, $ag); } } } } } // Osnovni podaci o predmetu $q350 = myquery("SELECT p.id, p.sifra, p.naziv, p.kratki_naziv, p.institucija, agp.tippredmeta, p.ects, p.sati_predavanja, p.sati_vjezbi, p.sati_tutorijala \n\tFROM predmet as p, akademska_godina_predmet as agp \n\tWHERE p.id={$predmet} AND agp.akademska_godina={$ag} AND p.id=agp.predmet"); if (!($r350 = mysql_fetch_row($q350))) { $q351 = myquery("SELECT COUNT(*) FROM predmet WHERE id={$predmet}"); if (mysql_result($q351, 0, 0) > 0) { zamgerlog("nedostaje slog u tabeli akademska_godina_predmet {$predmet} {$ag}", 3); zamgerlog2("nedostaje slog u tabeli akademska_godina_predmet", $predmet, $ag); niceerror("Nepostojeći predmet (nedostaje agp)!"); } else { zamgerlog("nepostojeci predmet {$predmet}", 3); zamgerlog2("nepostojeci predmet", $predmet); niceerror("Nepostojeći predmet!"); } return; } // Oznacicemo neispravne podatke $greska = 0; $naziv = $r350[2]; if (!preg_match("/\\w/", $naziv)) { $naziv = "<font color=\"red\">Bez naziva!</font>"; $greska = 1; } $sifra = $r350[1]; if ($sifra == "") { $sifra = "<font color=\"red\">(?)</font>"; $greska = 1; } $kratkinaziv = $r350[3]; if ($kratkinaziv == "") { $kratkinaziv = "<font color=\"red\">(?)</font>"; $greska = 1; } $ects = floatval($r350[6]); if ($ects == 0) { $ects = "<font color=\"red\">(?)</font>"; $greska = 1; } // Zašto ne bi bilo nula sati? $sati_predavanja = floatval($r350[7]); // if ($sati_predavanja==0) { $sati_predavanja="<font color=\"red\">(?)</font>"; $greska=1; } $sati_vjezbi = floatval($r350[8]); // if ($sati_vjezbi==0) { $sati_vjezbi="<font color=\"red\">(?)</font>"; $greska=1; } $sati_tutorijala = floatval($r350[9]); // if ($sati_tutorijala==0) { $sati_tutorijala="<font color=\"red\">(?)</font>"; $greska=1; }*/ // Institucija $q352 = myquery("select naziv from institucija where id={$r350['4']}"); if (mysql_num_rows($q352) < 1) { $institucija = "<font color=\"red\">(?)</font>"; $greska = 1; } else { $institucija = mysql_result($q352, 0, 0); } // Tip predmeta $q354 = myquery("select naziv from tippredmeta where id={$r350['5']}"); if (mysql_num_rows($q354) < 1) { $tippredmeta = "<font color=\"red\">(?)</font>"; $greska = 1; } else { $tippredmeta = mysql_result($q354, 0, 0); } ?> <h3><?php echo $naziv; ?> </h3> <p>Šifra predmeta: <b><?php echo $sifra; ?> </b><br /> Skraćeni naziv predmeta: <b><?php echo $kratkinaziv; ?> </b><br /> Institucija: <b><?php echo $institucija; ?> </b><br /> Tip predmeta: <b><?php echo $tippredmeta; ?> </b><br /> ECTS: <b><?php echo $ects; ?> bodova</b><br /> Sati predavanja: <b><?php echo $sati_predavanja; ?> </b><br /> Sati vježbi: <b><?php echo $sati_vjezbi; ?> </b><br /> Sati tutorijala: <b><?php echo $sati_tutorijala; ?> </b><br /> ID: <?php echo $predmet; ?> </p> <?php if ($greska == 1) { print "<font color=\"red\">Imate grešaka u definiciji predmeta. Kliknite na dugme <b>Izmijeni</b>.</font>\n"; } unset($_REQUEST['akcija']); print "\n\n<p>\n" . genform("GET"); ?> <input type="hidden" name="akcija" value="realedit"> <input type="submit" value=" Izmijeni "></form></p> <?php // Omogućujemo popravku ako ne postoji labgrupa "svi studenti" $q356 = myquery("SELECT COUNT(*) FROM labgrupa WHERE predmet={$predmet} AND akademska_godina={$ag} AND virtualna=1"); if (mysql_result($q356, 0, 0) == 0) { niceerror("Ne postoji virtualna labgrupa."); } ?> <hr> <?php // Nastavni ansambl ?> <h3>Nastavni ansambl:</h3> <ul> <?php $q355 = myquery("select o.id, angs.naziv from angazman as a, osoba as o, angazman_status as angs where a.predmet={$predmet} and a.akademska_godina={$ag} and a.osoba=o.id and a.angazman_status=angs.id order by angs.id, o.prezime"); if (mysql_num_rows($q355) < 1) { print "<li>Niko nije angažovan na ovom predmetu</li>\n"; } while ($r355 = mysql_fetch_row($q355)) { print "<li><a href=\"?sta=studentska/osobe&akcija=edit&osoba={$r355['0']}\">" . tituliraj($r355[0], false, false, true) . "</a> - {$r355['1']} (<a href=\"?sta=studentska/predmeti&akcija=edit&predmet={$predmet}&ag={$ag}&subakcija=deangazuj&osoba={$r355['0']}\">deangažuj</a>)</li>\n"; } print "</ul>\n"; // Ponude kursa ?> <h3>Ponude kursa:</h3> <?php // Forma za upozorenje prilikom brisanja ponudekursa ?> <script language="JavaScript"> function upozorenje2(grupa,broj) { var a = confirm("Ovim će sa predmeta biti ispisano "+broj+" studenata, te pobrisani svi ostvareni bodovi i ocjene. Da li ste sigurni?"); if (a) { document.brisanjepkform.pk.value=grupa; document.brisanjepkform.submit(); } } </script> <?php echo genform("POST", "brisanjepkform"); ?> <input type="hidden" name="akcija" value="edit"> <input type="hidden" name="subakcija" value="obrisi_pk"> <input type="hidden" name="pk" value=""></form> <?php // Evt ispis akademske godine $q359 = myquery("select naziv, aktuelna from akademska_godina where id={$ag}"); if (mysql_num_rows($q359) < 1) { zamgerlog("nepostojeca akademska godina {$ag}", 3); zamgerlog2("nepostojeca akademska godina", $ag); niceerror("Nepostojeća akademska godina!"); return; } $agnaziv = mysql_result($q359, 0, 0); if (mysql_result($q359, 0, 1) != 1) { print "<p>Akademska godina: <b>{$agnaziv}</b></p>"; } $q360 = myquery("select pk.id, s.naziv, pk.semestar, pk.obavezan from ponudakursa as pk, studij as s where pk.predmet={$predmet} and pk.akademska_godina={$ag} and pk.studij=s.id"); if (mysql_num_rows($q360) < 1) { ?> <p><font color="red">Ovaj predmet se trenutno ne nudi nigdje!</font><br/> Dodajte ponudu kursa ispod. Dok to ne uradite, predmet neće biti vidljiv, osim kod pretrage ako je izabrana opcija "Sve akademske godine"</p> <?php } else { print "<ul>\n"; } while ($r360 = mysql_fetch_row($q360)) { // Broj studenata $q365 = myquery("select count(*) from student_predmet where predmet={$r360['0']}"); $brstud = mysql_result($q365, 0, 0); ?> <li><?php echo $r360[1]; ?> , <?php echo $r360[2]; ?> . semestar <?php if ($r360[3] < 1) { print "(izborni)"; } ?> (<a href="javascript:onclick=upozorenje2('<?php echo $r360[0]; ?> ','<?php echo $brstud; ?> ')">obriši ponudu kursa</a>)</li> <?php } if (mysql_num_rows($q360) > 0) { print "</ul>\n"; } ?> <a href="?sta=studentska/predmeti&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &akcija=dodaj_pk">Dodaj ponudu kursa</a><?php // Ranije akademske godine $q370 = myquery("select ag.id, ag.naziv from akademska_godina as ag, ponudakursa as pk where pk.predmet={$predmet} and pk.akademska_godina=ag.id and ag.id!={$ag} group by ag.id order by ag.id"); if (mysql_num_rows($q370) > 0) { ?> <p>Ovaj predmet se držao i sljedećih godina: <?php } while ($r370 = mysql_fetch_row($q370)) { ?> <a href="?sta=studentska/predmeti&akcija=edit&predmet=<?php echo $predmet; ?> &ag=<?php echo $r370[0]; ?> "><?php echo $r370[1]; ?> </a> <?php } if (mysql_num_rows($q370) > 0) { print "</p>\n"; } // Prava pristupa na predmetu ?> <hr> <p>Osobe sa pravima pristupa na predmetu (<?php echo $agnaziv; ?> ):</p> <?php $q351 = myquery("select np.nastavnik,np.nivo_pristupa,o.ime,o.prezime from osoba as o, nastavnik_predmet as np where np.nastavnik=o.id and np.predmet={$predmet} and np.akademska_godina={$ag} order by np.nivo_pristupa, o.prezime, o.ime"); if (mysql_num_rows($q351) < 1) { print "<ul><li>Nijedan nastavnik nema pravo pristupa predmetu.</li></ul>\n"; } else { ?> <script language="JavaScript"> function upozorenje(nastavnik) { document.izbaciform.nastavnik.value=nastavnik; document.izbaciform.submit(); } </script> <?php echo genform("POST", "izbaciform"); ?> <input type="hidden" name="akcija" value="edit"> <input type="hidden" name="subakcija" value="izbaci_nastavnika"> <input type="hidden" name="nastavnik" id="nastavnik" value=""></form> <table width="100%" border="1" cellspacing="0"><tr><td>Ime i prezime</td><td>Nivo pristupa</td><td>Ograničenja</td><td> </td></tr><?php } while ($r351 = mysql_fetch_row($q351)) { $nastavnik = $r351[0]; $imeprezime = "{$r351['2']} {$r351['3']}"; $nivo_pristupa = $r351[1]; if ($nivo_pristupa == 'nastavnik') { $option_nastavnik = "SELECTED"; $option_sa = $option_asistent = ""; } else { if ($nivo_pristupa == 'super_asistent') { $option_sa = "SELECTED"; $option_nastavnik = $option_asistent = ""; } else { if ($nivo_pristupa == 'asistent') { $option_asistent = "SELECTED"; $option_nastavnik = $option_sa = ""; } } } ?> <tr> <td><a href="?sta=studentska/osobe&akcija=edit&osoba=<?php echo $nastavnik; ?> "><?php echo $imeprezime; ?> </td> <td><?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="edit"> <input type="hidden" name="nastavnik" value="<?php echo $nastavnik; ?> "> <input type="hidden" name="subakcija" value="postavi_nivo_pristupa"> <select name="nivo_pristupa" class="default"> <option value="nastavnik" <?php echo $option_nastavnik; ?> >Nastavnik</option> <option value="super_asistent" <?php echo $option_sa; ?> >Super-asistent</option> <option value="asistent" <?php echo $option_asistent; ?> >Asistent</option> </select> <input type="submit" class="default" value=" Postavi "> </form> </td> <td><a href="<?php echo genuri(); ?> &akcija=ogranicenja&nastavnik=<?php echo $nastavnik; ?> "><?php // Spisak grupa na koje ima ogranicenje $q352 = myquery("select l.naziv from ogranicenje as o, labgrupa as l where o.nastavnik={$nastavnik} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}"); if (mysql_num_rows($q352) < 1) { print "Nema"; } while ($r352 = mysql_fetch_row($q352)) { // Ljudi daju glupa imena grupama... if (!preg_match("/\\w/", $r352[0])) { $imegrupe = "[Nema imena]"; } else { $imegrupe = substr($r352[0], 0, 15); } print "{$imegrupe}, "; } ?> </a></td> <td><a href="javascript:onclick=upozorenje('<?php echo $nastavnik; ?> ')">Izbaci</a></td> </tr> <?php } if (mysql_num_rows($q351) > 0) { print "</table>\n"; } // Dodaj nove nastavnike ?> <p>Angažman nastavnika na predmetu: <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="edit"> <input type="hidden" name="subakcija" value="dodaj_nastavnika"> <select name="nastavnik" class="default">'<?php $q360 = myquery("select o.id, o.prezime, o.ime from osoba as o, privilegije as p where p.osoba=o.id and p.privilegija='nastavnik' order by o.prezime, o.ime"); while ($r360 = mysql_fetch_row($q360)) { print "<option value=\"{$r360['0']}\">{$r360['1']} {$r360['2']}</option>\n"; } ?> </select> <input type="submit" value=" Dodaj "></form></p><?php ?> </td></tr></table></center><?php // Vanjska tabela } else { $src = my_escape($_REQUEST["search"]); $limit = 20; $offset = intval($_REQUEST["offset"]); $ak_god = intval($_REQUEST["ag"]); if ($ak_god == 0) { $q299 = myquery("select id from akademska_godina where aktuelna=1 order by naziv desc limit 1"); $ak_god = mysql_result($q299, 0, 0); } ?> <table width="100%" border="0"><tr><td align="left"> <p><b>Pretraga</b><br/> Za prikaz svih predmeta na akademskoj godini, ostavite polje za pretragu prazno.</br> <?php echo genform("GET"); ?> <input type="hidden" name="offset" value="0"> <?php /*resetujem offset*/ ?> <select name="ag"> <option value="-1">Sve akademske godine</option> <?php $q295 = myquery("select id,naziv, aktuelna from akademska_godina order by naziv"); while ($r295 = mysql_fetch_row($q295)) { ?> <option value="<?php echo $r295[0]; ?> "<?php if ($r295[0] == $ak_god) { print " selected"; } ?> ><?php echo $r295[1]; ?> </option> <?php } ?> </select><br/> <input type="text" size="50" name="search" value="<?php if ($src != "") { print $src; } ?> "> <input type="Submit" value=" Pretraži "></form> <br/> <?php if ($ak_god >= 0 && $src != "") { $q300 = myquery("select count(distinct pk.predmet) from ponudakursa as pk, predmet as p where pk.akademska_godina={$ak_god} and (p.naziv like '%{$src}%' or p.kratki_naziv like '%{$src}%') and pk.predmet=p.id"); } else { if ($ak_god >= 0) { $q300 = myquery("select count(distinct pk.predmet) from ponudakursa as pk where pk.akademska_godina={$ak_god}"); } else { if ($src != "") { $q300 = myquery("select count(*) from predmet as p where (p.naziv like '%{$src}%' or p.kratki_naziv like '%{$src}%')"); } else { $q300 = myquery("select count(*) from predmet as p"); } } } $rezultata = mysql_result($q300, 0, 0); if ($rezultata == 0) { print "Nema rezultata!"; } else { if ($rezultata > $limit) { print "Prikazujem rezultate " . ($offset + 1) . "-" . ($offset + 20) . " od {$rezultata}. Stranica: "; for ($i = 0; $i < $rezultata; $i += $limit) { $br = intval($i / $limit) + 1; if ($i == $offset) { print "<b>{$br}</b> "; } else { print "<a href=\"" . genuri() . "&offset={$i}&_lv_column_akademska_godina={$ak_god}\">{$br}</a> "; } } print "<br/>"; } print "<br/>"; if ($ak_god >= 0 && $src != "") { $q301 = myquery("select distinct p.id, p.naziv, i.kratki_naziv, ag.id, ag.naziv from predmet as p, ponudakursa as pk, akademska_godina as ag, institucija as i where pk.akademska_godina=ag.id and ag.id={$ak_god} and (p.naziv like '%{$src}%' or p.kratki_naziv like '%{$src}%') and pk.predmet=p.id and p.institucija=i.id order by ag.naziv desc, p.naziv limit {$offset},{$limit}"); } else { if ($ak_god >= 0) { $q301 = myquery("select distinct p.id, p.naziv, i.kratki_naziv, ag.id, ag.naziv from predmet as p, ponudakursa as pk, akademska_godina as ag, institucija as i where pk.akademska_godina=ag.id and ag.id={$ak_god} and pk.predmet=p.id and p.institucija=i.id order by ag.naziv desc, p.naziv limit {$offset},{$limit}"); } else { if ($src != "") { $q301 = myquery("select distinct p.id, p.naziv, i.kratki_naziv, 1 from predmet as p, institucija as i where (p.naziv like '%{$src}%' or p.kratki_naziv like '%{$src}%') and p.institucija=i.id order by p.naziv limit {$offset},{$limit}"); } else { $q301 = myquery("select distinct p.id, p.naziv, i.kratki_naziv, 1 from predmet as p, institucija as i where p.institucija=i.id order by p.naziv limit {$offset},{$limit}"); } } } print '<table width="100%" border="0">'; $i = $offset + 1; while ($r301 = mysql_fetch_row($q301)) { print "<tr><td>{$i}. {$r301['1']} ({$r301['2']})</td>\n"; print "<td><a href=\"" . genuri() . "&akcija=edit&predmet={$r301['0']}&ag={$r301['3']}\">Detalji</a></td>\n"; if ($user_siteadmin) { print "<td><a href=\"?sta=nastavnik/predmet&predmet={$r301['0']}&ag={$r301['3']}\">Uređivanje predmeta</a></td></tr>"; } $i++; } print "</table>"; } ?> <br/> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="novi"> <b>Novi predmet:</b><br/> <input type="text" name="naziv" size="50"> <input type="submit" value=" Dodaj "> </form> </table> <?php } } } } } ?> </td></tr></table></center> <?php }
function studentska_izvjestaji() { global $userid, $user_siteadmin, $user_studentska; // Provjera privilegija if (!$user_studentska && !$user_siteadmin) { zamgerlog("nije studentska", 3); // 3: error zamgerlog2("nije studentska"); // 3: error biguglyerror("Pristup nije dozvoljen."); return; } // Kada se klikne na generisanje izvještaja, biće zasivljen ekran i prikazan prozor koji // obavjestava da je u toku generisanje izvještaja. // Razlog: Nihada (among else) ima običaj da klika na link sve dok se stranica ne otvori, // što ne samo da nema efekta nego i opterećuje server ?> <p><h3>Studentska služba - Izvještaji</h3></p> <script language="JavaScript"> var mywidth,myheight; if (window.innerWidth && window.innerHeight) { mywidth=window.innerWidth; myheight=window.innerHeight; } else if (document.body.clientWidth && document.body.clientHeight) { mywidth=document.body.clientWidth; myheight=document.body.clientHeight; } function izvjestaj() { var n = ""; // Stupid hack for stupid specification document.getElementById('prekrivac').style.width = n.concat(mywidth, "px"); document.getElementById('prekrivac').style.height = n.concat(myheight, "px"); document.getElementById('prekrivac').style.display="inline"; document.getElementById('obavijest').style.top = n.concat(myheight/2-25, "px"); document.getElementById('obavijest').style.left = n.concat(mywidth/2-150, "px"); document.getElementById('obavijest').style.display="inline"; //alert(n); return true; } </script> <img src="images/blur.gif" width="1" height="1" border="0"> <!-- preloading --> <div id="prekrivac" name="prekrivac" style="display:none; position: absolute; left: 0px; top: 55px; background-image:url('images/blur.gif'); background-repeat:repeat;"> </div> <div id="obavijest" name="obavijest" style="display:none; position: absolute; left: 0px; top: 55px"> <table width="300" height="50" border="1" cellspacing="0" cellpadding="0"><tr><td align="center" valign="center" width="50" bgcolor="#DDDDDD"><img src="images/Animated-Hourglass.gif" width="38" height="38"></td><td align="center" valign="center" bgcolor="#DDDDDD">U toku je kreiranje izvještaja<br>Molimo sačekajte</td></tr></table> </div> <?php // Razne forme za pojedinačne izvještaje if ($_REQUEST['akcija'] == "po_prosjeku") { ?> <h3>Spiskovi studenata po prosječnoj ocjeni</h3> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> <input type="hidden" name="sta" value="izvjestaj/genijalci"> <table border="0"> <tr><td>Akademska godina:</td><td><select name="akademska_godina"> <?php $q500 = myquery("select id,naziv,aktuelna from akademska_godina order by naziv desc"); while ($r500 = mysql_fetch_row($q500)) { print "<option value=\"{$r500['0']}\""; if ($r500[2] == 1) { print " selected"; } print ">{$r500['1']}</option>\n"; } ?> </select></td></tr> <tr><td>Studij:</td><td><select name="studij"> <option value="-1">Svi studiji (BSc)</option> <option value="-2">Svi studiji (MSc)</option> <option value="-3">Svi studiji (MSc bez BSca)</option> <?php $q505 = myquery("select id, naziv from studij where moguc_upis=1 order by naziv"); while ($r505 = mysql_fetch_row($q505)) { print "<option value=\"{$r505['0']}\">{$r505['1']}</option>\n"; } ?> </select></td></tr> <tr><td>Godina:</td><td><input type="text" name="godina_studija" size="5" value="1"></td></tr> <tr><td>Limit prosjeka:</td><td><input type="text" name="limit_prosjek" value="8.0"></td></tr> <tr><td>Maksimalan broj<br>nepoloženih predmeta:</td><td><input type="text" name="limit_predmet" value="1"></td></tr> <tr><td colspan="2"><input type="radio" name="samo_tekuca_gs" value="da" checked> Prosjek samo za odabranu godinu studija<br> <input type="radio" name="samo_tekuca_gs" value="ne"> Prosjek za odabrani studij</td></tr> </table> <input type="submit" value=" Prikaži "></form> <?php } if ($_REQUEST['akcija'] == "po_nepolozenim") { ?> <h3>Spiskovi studenata po broju nepoloženih predmeta (GRANIČNI SLUČAJEVI)</h3> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> <input type="hidden" name="sta" value="izvjestaj/granicni"> <input type="hidden" name="varijanta" value="1"> <table border="0"> <tr><td>Akademska godina:</td><td><select name="akademska_godina"> <?php $q500 = myquery("select id,naziv,aktuelna from akademska_godina order by naziv desc"); while ($r500 = mysql_fetch_row($q500)) { print "<option value=\"{$r500['0']}\""; if ($r500[2] == 1) { print " selected"; } print ">{$r500['1']}</option>\n"; } ?> </select></td></tr> <tr> <td colspan="2"> <br><input type="radio" name="studij_godina" value="svi" onclick="javascript:document.getElementById('studij').disabled=true; document.getElementById('godina_studija').disabled=true;" checked> Svi studiji i godine<br> <input type="radio" name="studij_godina" value="izbor" onclick="javascript:document.getElementById('studij').disabled=false; document.getElementById('godina_studija').disabled=false;"> Izabrani studij i godina:<br> Studij: <select name="studij" id="studij" disabled> <option value="-1">Svi studiji (BSc)</option> <option value="-2">Svi studiji (MSc)</option> <?php $q505 = myquery("select id, naziv from studij where moguc_upis=1 order by naziv"); while ($r505 = mysql_fetch_row($q505)) { print "<option value=\"{$r505['0']}\">{$r505['1']}</option>\n"; } ?> </select> Godina: <input type="text" name="godina_studija" id="godina_studija" size="5" value="1" disabled><br> </td></tr> <tr><td colspan="2"> Broj nepoloženih ispita:<br> <br><input type="radio" name="vrste_granicnih" value="sve" onclick="javascript:document.getElementById('predmeta').disabled=true; document.getElementById('parcijalnih').disabled=true; document.getElementById('douslova').disabled=true;" checked> Sve vrste graničnih slučajeva<br> <input type="radio" name="vrste_granicnih" value="izbor" onclick="javascript:document.getElementById('predmeta').disabled=false; document.getElementById('parcijalnih').disabled=false; document.getElementById('douslova').disabled=false;"> Samo studenti koji imaju nepoloženih:<br> <input type="text" name="predmeta" id="predmeta" size="5" value="1" disabled> čitavih predmeta i <input type="text" name="parcijalnih" id="parcijalnih" size="5" value="1" disabled> parcijalnih ispita <input type="checkbox" name="douslova" id="douslova" disabled> Do uslova<br> </td></tr> <tr><td>Prikaži podatke:</td><td> <input type="radio" name="prikaz" value="sumarno" checked> Sumarno <input type="radio" name="prikaz" value="po_predmetu"> Grupisano po predmetu <input type="radio" name="prikaz" value="po_studiju"> Grupisano po studiju </td></tr> </table> <br> <br> <input type="submit" value=" Prikaži "></form> <?php } if ($_REQUEST['akcija'] == "prolaznost") { ?> <p><h3>Prolaznost studenata na predmetima</h3></p> <script type="text/javascript"> function setCheckedValue(radioObj, newValue) { if(!radioObj) return; var radioLength = radioObj.length; if(radioLength == undefined) { radioObj.checked = (radioObj.value == newValue.toString()); return; } for(var i = 0; i < radioLength; i++) { radioObj[i].checked = false; if(radioObj[i].value == newValue.toString()) { radioObj[i].checked = true; } } } </script> <table width="550" border="0"><tr><td align="left"> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> <input type="hidden" name="sta" value="izvjestaj/prolaznost"> Akademska godina: <select name="_lv_column_akademska_godina"> <?php $q500 = myquery("select id,naziv,aktuelna from akademska_godina order by naziv desc"); while ($r500 = mysql_fetch_row($q500)) { print "<option value=\"{$r500['0']}\""; if ($r500[2] == 1) { print " selected"; } print ">{$r500['1']}</option>\n"; } ?> </select><br/><br/> Studij: <select name="_lv_column_studij"><option value="-1">Prva godina studija</option><?php $q505 = myquery("select id, naziv from studij where moguc_upis=1 order by naziv"); while ($r505 = mysql_fetch_row($q505)) { print "<option value=\"{$r505['0']}\">{$r505['1']}</option>\n"; } ?> </select><br/><br/> <input type="radio" name="period" value="0" CHECKED> Semestar: <input type="text" name="semestar" size="5" onclick="setCheckedValue(document.forms['studijForm'].elements['period'], '0');"> <input type="radio" name="period" value="1"> Cijela godina: <input type="text" name="godina" size="5" onclick="setCheckedValue(document.forms['studijForm'].elements['period'], '1');"><br/><br/> Statistika za:<br/> <input type="radio" name="ispit" value="1" CHECKED> I parcijalni <input type="radio" name="ispit" value="2"> II parcijalni <input type="radio" name="ispit" value="3"> Ukupan broj bodova <input type="radio" name="ispit" value="4"> Konačna ocjena <input type="radio" name="ispit" value="5"> Uslov <br/><br/> Studenti:<br/> <input type="radio" name="cista_gen" value="0" CHECKED> Svi studenti (uključujući ponovce i one koji su prenijeli predmete)<br/> <input type="radio" name="cista_gen" value="1"> Svi koji slušaju godinu (uključujući ponovce, ali bez prenijetih predmeta)<br/> <input type="radio" name="cista_gen" value="2"> Bez ponovaca<br/> <input type="radio" name="cista_gen" value="3"> Čista generacija (studenti koji nemaju ponovljenih godina ni prenesenih predmeta)<br/><br/> <input type="checkbox" name="studenti" value="1"> Prikaži podatke za svakog pojedinačnog studenta<br/> NAPOMENA: Zbog kompleksnosti izvještaja, izračunavanje podataka za pojedinačne studente može trajati do par minuta.<br/><br/> Sortiraj spisak po: <ul> <input type="radio" name="sortiranje" value="0" CHECKED> Prezimenu<br/> <input type="radio" name="sortiranje" value="1"> Broju položenih ispita i bodova<br/> <input type="radio" name="sortiranje" value="2"> Broju indeksa</ul> <input type="submit" value=" Prikaži "></form> <?php } if ($_REQUEST['akcija'] == "pregled") { ?> <p><h3>Pregled broja upisanih studenata u aktuelnoj akademskoj godini</h3></p> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> Tip izvještaja: <select name="sta"> <option value="izvjestaj/pregled">Po tipu studiranja</option> <option value="izvjestaj/pregled_nacin">Po tipu i načinu studiranja</option> <option value="izvjestaj/po_kantonima">Po kantonima</option> </select><br><br> Akademska godina: <select name="akademska_godina"> <?php $q500 = myquery("select id,naziv,aktuelna from akademska_godina order by naziv desc"); while ($r500 = mysql_fetch_row($q500)) { print "<option value=\"{$r500['0']}\""; if ($r500[2] == 1) { print " selected"; } print ">{$r500['1']}</option>\n"; } ?> </select><br/><br/> <input type="submit" value=" Prikaži "></form> <?php } if ($_REQUEST['akcija'] == "ugovoroucenju") { ?> <p><h3>Detaljan broj studenata po predmetu u aktuelnoj akademskoj godini</h3></p> <p>Ukoliko upis u akademsku godinu nije završen, prikazuje se procjena broja studenata na osnovu popunjenih Ugovora o učenju i Zahtjeva za koliziju. Ova procjena je data pod sljedećim pretpostavkama: <ul><li>da se nijedan student neće ispisati sa fakulteta</li> <li>da će svi zahtjevi za promjenu odsjeka biti odobreni</li> <li>da će student koji u septembru položi pismeni ispit koji ranije nije položio vjerovatno položiti i završni ispit</li></ul> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> <input type="hidden" name="sta" value="izvjestaj/ugovoroucenju"> Akademska godina: <select name="akademska_godina"> <?php $q500 = myquery("select id,naziv,aktuelna from akademska_godina order by naziv desc"); while ($r500 = mysql_fetch_row($q500)) { print "<option value=\"{$r500['0']}\""; if ($r500[2] == 1) { print " selected"; } print ">{$r500['1']}</option>\n"; } ?> </select><br/><br/> <input type="submit" value=" Prikaži "></form> <?php } if ($_REQUEST['akcija'] == "uspjesnost") { ?> <h3>Uspješnost studenata i prosječno trajanje studija</h3> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> <input type="hidden" name="sta" value="izvjestaj/uspjesnost"> <p>Izaberite studij:<br> <?php echo db_dropdown("studij"); ?> <br/><br/> <input type="submit" value=" Prikaži "></form> <?php } if ($_REQUEST['akcija'] == "svi_studenti") { ?> <h3>Spisak svih studenata abecedno</h3> <form action="index.php" method="GET" name="studijForm" onsubmit="return izvjestaj();"> <input type="hidden" name="sta" value="izvjestaj/svi_studenti"> <p><input type="checkbox" name="ime_oca">Ime oca<br /> <input type="checkbox" name="jmbg">JMBG<br /> <input type="checkbox" name="nacin_studiranja">Način studiranja (redovni, samofinansirajući...)<br /> <input type="checkbox" name="vanredni">Uključi i vanredne studente<br /> <input type="checkbox" name="login">Korisničko ime<br /><br /> <input type="checkbox" name="tabelarno">Prikaži u obliku tabele umjesto numerisane liste<br /> Akademska godina: <select name="ag"> <?php $q506 = myquery("select id, naziv, aktuelna from akademska_godina order by naziv"); while ($r506 = mysql_fetch_row($q506)) { print "<option value=\"{$r506['0']}\""; if ($r506[2] == 1) { print " selected"; } print ">{$r506['1']}</option>\n"; } ?> </select><br /> Studij: <select name="studij"> <option value="0">Svi studiji</option> <option value="-1">Prvi ciklus</option> <option value="-2">Drugi ciklus</option> <?php $q505 = myquery("select id, naziv from studij order by naziv"); //TODO neke virtualne studije izostaviti? while ($r505 = mysql_fetch_row($q505)) { print "<option value=\"{$r505['0']}\">{$r505['1']}</option>\n"; } ?> </select><br /> Godina studija: <select name="godina"><option value="0">Sve godine</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><br /> <input type="checkbox" name="prvi_put">Prvi put (bez ponovaca)<br /> <input type="submit" value=" Prikaži "></form> <?php } // SPISAK IZVJEŠTAJA ?> <hr/> <p>Najčešći izvještaji: <ul> <li><a href="?sta=studentska/izvjestaji&akcija=prolaznost">Prolaznost studenata po predmetima</a></li> <li><a href="?sta=izvjestaj/prolaznosttab" onclick="return izvjestaj();">Tabelarni pregled prolaznosti (sumarno za sve godine)</a></li> <li><a href="?sta=studentska/izvjestaji&akcija=pregled">Pregled broja upisanih studenata u aktuelnoj akademskoj godini</a></li> <li><a href="?sta=izvjestaj/ugovoroucenju" onclick="return izvjestaj();">Detaljan broj studenata po predmetu u aktuelnoj akademskoj godini i/ili Procjena za sljedeću akademsku godinu</a> - <a href="?sta=studentska/izvjestaji&akcija=ugovoroucenju">ranije akademske godine</a></li> <li><a href="?sta=studentska/izvjestaji&akcija=po_nepolozenim">Spisak studenata po broju nepoloženih predmeta (GRANIČNI SLUČAJEVI)</a></li> <li><a href="?sta=studentska/izvjestaji&akcija=po_prosjeku">Spisak studenata po prosječnoj ocjeni</a></li> <li><a href="?sta=studentska/izvjestaji&akcija=svi_studenti">Spisak svih studenata abecedno</a></li> <li><a href="?sta=studentska/izvjestaji&akcija=uspjesnost">Uspješnost studenata i prosječno trajanje studija</a></li> </ul></p> <hr/> <?php }
<td>Lease expires</td> <td><input name="pro_leaseend" type="text" size="10" value="' . $pro_leaseend . '"></td> <td>Receptions</td> <td>' . db_dropdown("pro_reception", "10", $pro_reception, "0", "NULL") . '</td> </tr> <tr> <td>Parking</td> <td>' . db_enum("property", "pro_parking", "select", $pro_parking, "NULL") . '</td> <td>Bedrooms</td> <td>' . db_dropdown("pro_bedroom", "10", $pro_bedroom, "0", "NULL") . '</td> </tr> <tr> <td>Garden</td> <td>' . db_enum("property", "pro_garden", "select", $pro_garden, "NULL") . '</td> <td>Bathrooms</td> <td>' . db_dropdown("pro_bathroom", "10", $pro_bathroom, "0", "NULL") . '</td> </tr> <tr> <td>Garden length</td> <td><input name="pro_gardenlength" type="text" size="10" value="' . $pro_gardenlength . '"> <input name="pro_gardenlength_unit" type="radio" value="mtr" checked> meters <input name="pro_gardenlength_unit" type="radio" value="ft"> feet </td> <td>Built</td> <td><input name="pro_built" type="text" size="10" value="' . $pro_built . '"></td> </tr> <tr> <td>Listed</td> <td>' . db_enum("property", "pro_listed", "select", $pro_listed, "NULL") . '</td> <td>Refurbished</td>
function db_grid($table) { global $_lv_; global $__lv_cn, $__lv_ct, $__lv_cs, $__lv_showcreate; // Update database with submitted data db_submit(); // Parse table columns from "show create" query __lv_parsetable($table); // Generate form header with hidden fields - this will be used for each row $form_header = genform("POST"); $form_header .= '<input type="hidden" name="_lv_table" value="' . $table . '"> <input type="hidden" name="_lv_action" value="edit">' . "\n"; // List tables - used to find foreign keys $q200 = myquery("show tables"); while ($r200 = mysql_fetch_row($q200)) { $tables[] = $r200[0]; } // Query database to get default form values $sql = "select * from {$table}"; $n = 0; for ($i = 0; $i < count($__lv_cn); $i++) { $name = $__lv_cn[$i]; // Get WHERE from $_lv_ if (strlen($_lv_["where:{$name}"]) > 0) { if ($n > 0) { $sql .= " and "; } else { $sql .= " where "; } $sql .= "{$name}='" . my_escape($_lv_["where:{$name}"]) . "'"; $n++; } // We are not interested in _lv_where... } // Get ORDER BY from $_lv_ foreach ($_lv_ as $key => $value) { if ($key == "orderby") { $sql .= " order by " . $value; break; } } // Get LIMIT from $_lv_ foreach ($_lv_ as $key => $value) { if ($key == "limit") { $sql .= " limit " . $value; break; } } // Display table header $result .= '<table border="0" cellspacing="0" cellpadding="3">' . "\n"; $result .= '<tr bgcolor="#bbbbbb">' . "\n"; for ($i = 0; $i < count($__lv_cn); $i++) { $name = $__lv_cn[$i]; $type = $__lv_ct[$i]; $label = strtoupper(substr($name, 0, 1)) . strtolower(substr($name, 1)); $label = str_replace("_", " ", $label); if ($_lv_["label:{$name}"]) { $label = $_lv_["label:{$name}"]; } // ID and fields given in WHERE are always hidden if ($name != "id" && !$_lv_["where:{$name}"]) { $result .= "<th>{$label}</th>\n"; } } $result .= "<th> </th>\n"; // Extra column for submit button $result .= "</tr>\n"; // Table contents $q202 = myquery($sql); $color = 0; while ($r202 = mysql_fetch_assoc($q202)) { $result .= "{$form_header}\n"; if ($color == 0) { $result .= "<tr>\n"; $color = 1; } else { $result .= '<tr bgcolor="#efefef">' . "\n"; $color = 0; } // Display form for ($i = 0; $i < count($__lv_cn); $i++) { $name = $__lv_cn[$i]; $type = $__lv_ct[$i]; $size = $__lv_cs[$i]; if ($size > 15) { $size = 15; } // not practical to have size>15 // ID and fields given in WHERE are always hidden if ($name == "id") { // FIXME: Value of 0 suggests that this is an autonumber field if (intval($r202[$name]) != 0) { $result .= '<input type="hidden" name="_lv_where_id" value="' . $r202[$name] . '">' . "\n"; // We need to resubmit data for add $result .= '<input type="hidden" name="_lv_column_id" value="' . $r202[$name] . '">' . "\n"; } } else { if ($_lv_["where:{$name}"]) { $result .= '<input type="hidden" name="_lv_where_' . $name . '" value="' . $_lv_["where:{$name}"] . '">' . "\n"; // We need to resubmit data for add $result .= '<input type="hidden" name="_lv_column_' . $name . '" value="' . $_lv_["where:{$name}"] . '">' . "\n"; // find foreign keys } else { if (in_array($name, $tables)) { $result .= "<td>" . db_dropdown($name, $r202[$name]) . "</td>\n"; // db_dropdown will destroy __lv_c* ... __lv_parsetable($table); // Various column types } else { if ($type == "varchar") { $result .= '<td><input type="text" name="_lv_column_' . $name . '" size="' . $size . '" value="' . $r202[$name] . '"></td>' . "\n"; } else { if ($type == "text") { $result .= '<td><textarea name="_lv_column_' . $name . '" rows="5" cols="20">' . $r202[$name] . '</textarea></td>' . "\n"; } else { if ($type == "date") { // Parse date if ($r202[$name]) { $mytime = mysql2time($r202[$name]); } else { $mytime = time(); // Set time to now } $d = date('d', $mytime); $m = date('m', $mytime); $Y = date('Y', $mytime); $result .= '<td>' . datectrl($d, $m, $Y, "_lv_column_{$name}" . "_") . "</td>\n"; } else { if ($type == "datetime") { // Parse date if ($r202[$name]) { $mytime = mysql2time($r202[$name]); } else { $mytime = time(); // Set time to now } $d = date('d', $mytime); $m = date('m', $mytime); $Y = date('Y', $mytime); $h = date('H', $mytime); $mi = date('i', $mytime); $se = date('s', $mytime); $result .= '<td>' . datectrl($d, $m, $Y, "_lv_column_{$name}" . "_") . "\n"; $result .= '<input type="text" size="2" name="_lv_column_' . $name . '_hour" value="' . $h . '">:'; $result .= '<input type="text" size="2" name="_lv_column_' . $name . '_minute" value="' . $mi . '">:'; $result .= '<input type="text" size="2" name="_lv_column_' . $name . '_second" value="' . $se . '"></td>' . "\n"; } else { if ($type == "tinyint" && $size == "1") { // assume boolean $result .= '<td><input type="checkbox" name="_lv_column_' . $name . '"'; if ($r202[$name] == "1") { $result .= ' CHECKED'; } $result .= '></td>' . "\n"; } else { if ($type == "int" || $type == "tinyint" || $type == "smallint" || $type == "bigint" || $type == "float" || $type == "double") { // classic numeric $result .= '<td><input type="text" name="_lv_column_' . $name . '" size="' . $size . '" value="' . $r202[$name] . '"></td>' . "\n"; } else { $result .= "<td>Unknown type: '{$type}'</td>\n"; } } } } } } } } } } // Row ends $result .= '<td>'; if ($_lv_["enableedit"]) { $result .= '<a href="' . genuri() . '&_lv_nav_id=' . $r202["id"] . '">Izmijeni</a> '; } $result .= '<input type="submit" value=" Pošalji "><input type="submit" name="_lv_action_delete" value=" Obriši "></td>' . "\n"; $result .= "</tr></form>"; } $result .= "</table>\n"; return $result; }
function studentska_osobe() { global $userid, $user_siteadmin, $user_studentska; global $conf_system_auth, $conf_ldap_server, $conf_ldap_domain, $conf_files_path; global $registry; // šta je od modula aktivno global $_lv_; // Potrebno za genform() iz libvedran require "lib/manip.php"; // Radi upisa studenta na predmet // Provjera privilegija if (!$user_siteadmin && !$user_studentska) { // 2 = studentska, 3 = admin zamgerlog("korisnik nije studentska (admin {$admin})", 3); zamgerlog2("nije studentska"); biguglyerror("Pristup nije dozvoljen."); return; } ?> <center> <table border="0"><tr><td> <?php $akcija = $_REQUEST['akcija']; $osoba = intval($_REQUEST['osoba']); // Dodavanje novog korisnika u bazu if ($_POST['akcija'] == "novi" && check_csrf_token()) { $ime = substr(my_escape($_POST['ime']), 0, 100); if (!preg_match("/\\w/", $ime)) { niceerror("Ime nije ispravno"); return; } $prezime = substr(my_escape($_POST['prezime']), 0, 100); // Probamo tretirati ime kao LDAP UID if ($conf_system_auth == "ldap") { $uid = $ime; $ds = ldap_connect($conf_ldap_server); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); if ($ds && ldap_bind($ds)) { $sr = ldap_search($ds, "", "uid={$uid}", array("givenname", "sn")); $results = ldap_get_entries($ds, $sr); if ($results['count'] > 0) { $gn = $results[0]['givenname']; if (is_array($gn)) { $gn = $results[0]['givenname'][0]; } if ($gn) { $ime = $gn; } $sn = $results[0]['sn']; if (is_array($sn)) { $sn = $results[0]['sn'][0]; } if ($sn) { $prezime = $sn; } } else { zamgerlog("korisnik '{$uid}' nije pronadjen na LDAPu", 3); zamgerlog2("korisnik nije pronadjen na LDAPu", 0, 0, 0, $uid); $uid = ""; niceerror("Korisnik nije pronadjen na LDAPu... dodajem novog!"); } } else { zamgerlog("ne mogu kontaktirati LDAP server", 3); zamgerlog2("ne mogu kontaktirati LDAP server"); niceerror("Ne mogu kontaktirati LDAP server... pravim se da ga nema :("); } } if (!preg_match("/\\w/", $prezime)) { niceerror("Prezime nije ispravno"); return; } // Da li ovaj korisnik već postoji u osoba tabeli? $q10 = myquery("select id, ime, prezime from osoba where ime like '{$ime}' and prezime like '{$prezime}'"); if ($r10 = mysql_fetch_row($q10)) { zamgerlog("korisnik vec postoji u bazi ('{$ime}' '{$prezime}' - ID: {$r10['0']})", 3); zamgerlog2("korisnik vec postoji u bazi", $r10[0], 0, 0, "'{$ime}' '{$prezime}'"); niceerror("Korisnik već postoji u bazi:"); print "<br><a href=\"?sta=studentska/osobe&akcija=edit&osoba={$r10['0']}\">{$r10['1']} {$r10['2']}</a>"; return; } else { // Nije u tabeli, dodajemo ga... $q30 = myquery("select id from osoba order by id desc limit 1"); $osoba = mysql_result($q30, 0, 0) + 1; $q40 = myquery("insert into osoba set id={$osoba}, ime='{$ime}', prezime='{$prezime}', naucni_stepen=6, strucni_stepen=5"); // 6 = bez naučnog stepena, 5 = srednja stručna sprema if ($conf_system_auth == "ldap" && $uid != "") { // Ako je LDAP onda imamo email adresu $email = $uid . $conf_ldap_domain; $q33 = myquery("INSERT INTO email SET osoba={$osoba}, adresa='{$email}', sistemska=1"); // Adresu podešavamo kao sistemsku što znači da je korisnik ne može mijenjati niti brisati // Mozemo ga dodati i u auth tabelu $q35 = myquery("select count(*) from auth where id={$osoba}"); if (mysql_result($q35, 0, 0) == 0) { $q37 = myquery("insert into auth set id={$osoba}, login='******', admin=1, aktivan=1"); } } nicemessage("Novi korisnik je dodan."); zamgerlog("dodan novi korisnik u{$osoba} (ID: {$osoba})", 4); // nivo 4: audit zamgerlog2("dodan novi korisnik", $osoba); print "<br><a href=\"?sta=studentska/osobe&akcija=edit&osoba={$osoba}\">{$ime} {$prezime}</a>"; return; } } // Izmjena licnih podataka osobe if ($akcija == "podaci") { if ($_POST['subakcija'] == "potvrda" && check_csrf_token()) { $ime = my_escape($_REQUEST['ime']); $prezime = my_escape($_REQUEST['prezime']); $spol = $_REQUEST['spol']; if ($spol != "M" && $spol != "Z") { $spol = ""; } $jmbg = my_escape($_REQUEST['jmbg']); $nacionalnost = intval($_REQUEST['nacionalnost']); if ($nacionalnost == 0) { $nacionalnost = "NULL"; } $brindexa = my_escape($_REQUEST['brindexa']); $djevojacko_prezime = my_escape($_REQUEST['djevojacko_prezime']); $imeoca = my_escape($_REQUEST['imeoca']); $prezimeoca = my_escape($_REQUEST['prezimeoca']); $imemajke = my_escape($_REQUEST['imemajke']); $prezimemajke = my_escape($_REQUEST['prezimemajke']); $mjesto_rodjenja = my_escape($_REQUEST['mjesto_rodjenja']); $opcina_rodjenja = intval($_REQUEST['opcina_rodjenja']); $drzava_rodjenja = intval($_REQUEST['drzava_rodjenja']); $drzavljanstvo = intval($_REQUEST['drzavljanstvo']); if ($drzavljanstvo == 0) { $drzavljanstvo = "NULL"; } if ($_REQUEST['boracke_kategorije'] == "on") { $boracke_kategorije = 1; } else { $boracke_kategorije = 0; } $adresa = my_escape($_REQUEST['adresa']); $adresa_mjesto = my_escape($_REQUEST['adresa_mjesto']); $kanton = intval($_REQUEST['_lv_column_kanton']); if ($kanton == -1) { $kanton = "NULL"; } $telefon = my_escape($_REQUEST['telefon']); $email = my_escape($_REQUEST['email']); $strucni_stepen = intval($_REQUEST['_lv_column_strucni_stepen']); if ($strucni_stepen == -1) { $strucni_stepen = "NULL"; } $naucni_stepen = intval($_REQUEST['_lv_column_naucni_stepen']); if ($naucni_stepen == -1) { $naucni_stepen = "NULL"; } $maternji_jezik = intval($_REQUEST['_lv_column_maternji_jezik']); $vozacka_dozvola = intval($_REQUEST['_lv_column_vozacki_kategorija']); $nacin_stanovanja = intval($_REQUEST['_lv_column_nacin_stanovanja']); // Sredjujem datum 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; } } } // Mjesto rođenja $mjrid = "NULL"; if ($mjesto_rodjenja != "") { $q1 = myquery("select id from mjesto where naziv='{$mjesto_rodjenja}' and opcina={$opcina_rodjenja} and drzava={$drzava_rodjenja}"); if (mysql_num_rows($q1) < 1) { $q2 = myquery("select id from mjesto where naziv='{$mjesto_rodjenja}'"); if (mysql_num_rows($q2) < 1) { nicemessage("Dodajem novo mjesto '{$mjesto_rodjenja}'"); $q2 = myquery("insert into mjesto set naziv='{$mjesto_rodjenja}', opcina={$opcina_rodjenja}, drzava={$drzava_rodjenja}"); $q1 = myquery("select id from mjesto where naziv='{$mjesto_rodjenja}'"); } else { nicemessage("Promjena općine/države za mjesto '{$mjesto_rodjenja}'"); $q2 = myquery("insert into mjesto set naziv='{$mjesto_rodjenja}', opcina={$opcina_rodjenja}, drzava={$drzava_rodjenja}"); $q1 = myquery("select id from mjesto where naziv='{$mjesto_rodjenja}' and opcina={$opcina_rodjenja} and drzava={$drzava_rodjenja}"); } } $mjrid = mysql_result($q1, 0, 0); } // Mjesto adresa $admid = "NULL"; if ($adresa_mjesto != "") { $q3 = myquery("select id from mjesto where naziv='{$adresa_mjesto}'"); if (mysql_num_rows($q3) < 1) { $q4 = myquery("insert into mjesto set naziv='{$adresa_mjesto}'"); $q3 = myquery("select id from mjesto where naziv='{$adresa_mjesto}'"); } $admid = mysql_result($q3, 0, 0); } $q395 = myquery("update osoba set ime='{$ime}', prezime='{$prezime}', imeoca='{$imeoca}', prezimeoca='{$prezimeoca}', imemajke='{$imemajke}', prezimemajke='{$prezimemajke}', spol='{$spol}', brindexa='{$brindexa}', datum_rodjenja='{$godina}-{$mjesec}-{$dan}', mjesto_rodjenja={$mjrid}, nacionalnost={$nacionalnost}, drzavljanstvo={$drzavljanstvo}, jmbg='{$jmbg}', adresa='{$adresa}', adresa_mjesto={$admid}, telefon='{$telefon}', kanton='{$kanton}', strucni_stepen={$strucni_stepen}, naucni_stepen={$naucni_stepen}, djevojacko_prezime='{$djevojacko_prezime}', maternji_jezik={$maternji_jezik}, vozacka_dozvola={$vozacka_dozvola}, nacin_stanovanja={$nacin_stanovanja}, boracke_kategorije={$boracke_kategorije} where id={$osoba}"); zamgerlog("promijenjeni licni podaci korisnika u{$osoba}", 4); // nivo 4 - audit zamgerlog2("promijenjeni licni podaci korisnika", $osoba); ?> <script language="JavaScript"> location.href='?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=edit'; </script> <?php return; } // Postavljanje ili promjena slike if ($_POST['subakcija'] == "postavisliku" && check_csrf_token()) { $slika = $_FILES['slika']['tmp_name']; if ($slika && file_exists($slika)) { // Provjeravamo ispravnost slike $podaci = getimagesize($slika); $koef = $podaci[0] / $podaci[1]; if ($koef < 0.5 || $koef > 2) { niceerror("Omjer širine i visine slike nije povoljan."); print "<p>Slika bi trebala biti uobičajenog formata slike za lične dokumente. Ova je formata {$podaci['0']}x{$podaci['1']}.</p>\n"; return; } if ($podaci[2] != IMAGETYPE_GIF && $podaci[2] != IMAGETYPE_JPEG && $podaci[2] != IMAGETYPE_PNG && $podaci[2] != IMAGETYPE_TIFF_II) { niceerror("Nepoznat tip slike."); print "<p>Podržane su samo slike tipa GIF, JPEG ili PNG.</p>"; return; } // Brisemo evt. postojecu sliku $q498 = myquery("select slika from osoba where id={$osoba}"); if (mysql_result($q498, 0, 0) != "") { unlink("{$conf_files_path}/slike/" . mysql_result($q498, 0, 0)); } // Kopiramo novu sliku $novavisina = 150; $novasirina = $novavisina * $koef; $filename = "{$conf_files_path}/slike/{$osoba}"; if (!file_exists("{$conf_files_path}/slike")) { mkdir("{$conf_files_path}/slike", 0777, true); } $dest = imagecreatetruecolor($novasirina, $novavisina); switch ($podaci[2]) { case IMAGETYPE_GIF: $source = imagecreatefromgif($slika); imagecopyresampled($dest, $source, 0, 0, 0, 0, $novasirina, $novavisina, $podaci[0], $podaci[1]); imagegif($dest, $filename . ".gif"); $slikabaza = "{$osoba}.gif"; break; case IMAGETYPE_JPEG: $source = imagecreatefromjpeg($slika); imagecopyresampled($dest, $source, 0, 0, 0, 0, $novasirina, $novavisina, $podaci[0], $podaci[1]); imagejpeg($dest, $filename . ".jpg"); $slikabaza = "{$osoba}.jpg"; break; case IMAGETYPE_PNG: $source = imagecreatefrompng($slika); imagecopyresampled($dest, $source, 0, 0, 0, 0, $novasirina, $novavisina, $podaci[0], $podaci[1]); imagepng($dest, $filename . ".png"); $slikabaza = "{$osoba}.png"; break; case IMAGETYPE_TIFF_II: nicemessage("Nije moguća promjena dimenzija slike tipa TIFF... Ostavljam zadate dimenzije."); rename($slika, $filename . ".tiff"); $slikabaza = "{$osoba}.tiff"; break; } $q310 = myquery("update osoba set slika='{$slikabaza}' where id={$osoba}"); zamgerlog("postavljena slika za korisnika u{$osoba}", 2); zamgerlog2("postavljena slika za korisnika", $osoba); ?> <script language="JavaScript"> location.href='?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=edit'; </script> <?php return; } else { nicemessage("Greška pri slanju slike"); } } // Brisanje slike if ($_POST['subakcija'] == "obrisisliku" && check_csrf_token()) { // Brisemo evt. postojecu sliku $q496 = myquery("select slika from osoba where id={$osoba}"); if (mysql_result($q498, 0, 0) != "") { unlink("{$conf_files_path}/slike/" . mysql_result($q496, 0, 0)); } $q497 = myquery("update osoba set slika='' where id={$osoba}"); zamgerlog("obrisana slika za korisnika u{$osoba}", 2); zamgerlog2("obrisana slika za korisnika", $osoba); ?> <script language="JavaScript"> location.href='?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=edit'; </script> <?php return; } // Mailovi if ($_GET['subakcija'] == "obrisimail") { $mailid = intval($_GET['mailid']); $q497a = myquery("select adresa from email where id={$mailid} and osoba={$osoba}"); if (mysql_num_rows($q497a) < 1) { niceerror("Greška"); return; } $staraadresa = mysql_result($q497a, 0, 0); $q498 = myquery("delete from email where osoba={$osoba} and id={$mailid}"); zamgerlog("obrisana email adresa za u{$osoba}", 2); zamgerlog2("email adresa obrisana", $osoba, $mailid, 0, $staraadresa); nicemessage("Obrisana email adresa {$staraadresa}"); } if ($_GET['subakcija'] == "izmijenimail") { $mailid = intval($_GET['mailid']); $adresa = my_escape($_GET['adresa']); $q497a = myquery("select adresa from email where id={$mailid} and osoba={$osoba}"); if (mysql_num_rows($q497a) < 1) { niceerror("Greška"); return; } $staraadresa = mysql_result($q497a, 0, 0); $q498 = myquery("update email set adresa='{$adresa}' where osoba={$osoba} and id={$mailid}"); zamgerlog("promijenjena email adresa za u{$osoba}", 2); zamgerlog2("email adresa promijenjena", $osoba, $mailid, 0, "{$staraadresa} -> {$adresa}"); nicemessage("Promijenjena email adresa {$staraadresa} u {$adresa}"); } if ($_GET['subakcija'] == "dodajmail") { $adresa = my_escape($_GET['adresa']); $q498 = myquery("insert into email set adresa='{$adresa}', osoba={$osoba}, sistemska=0"); zamgerlog("dodana email adresa za u{$osoba}", 2); zamgerlog2("email adresa dodana", $osoba, intval(mysql_insert_id()), 0, "{$adresa}"); nicemessage("Dodana email adresa {$adresa}"); } // Prikaz podataka $q400 = myquery("select ime, prezime, imeoca, prezimeoca, imemajke, prezimemajke, spol, 1, brindexa, UNIX_TIMESTAMP(datum_rodjenja), mjesto_rodjenja, jmbg, nacionalnost, drzavljanstvo, adresa, adresa_mjesto, telefon, kanton, strucni_stepen, naucni_stepen, slika, djevojacko_prezime, maternji_jezik, vozacka_dozvola, nacin_stanovanja, boracke_kategorije from osoba where id={$osoba}"); if (!($r400 = mysql_fetch_row($q400))) { zamgerlog("nepostojeca osoba u{$osoba}", 3); zamgerlog2("nepostojeca osoba", $osoba); niceerror("Nepostojeća osoba!"); return; } $ime = mysql_result($q400, 0, 0); $prezime = mysql_result($q400, 0, 1); $muski = $zenski = $boracke_kategorije = ""; if (mysql_result($q400, 0, 6) == "M") { $muski = " CHECKED"; } if (mysql_result($q400, 0, 6) == "Z") { $zenski = " CHECKED"; } if (mysql_result($q400, 0, 25) == 1) { $boracke_kategorije = " CHECKED"; } // Spisak gradova $q410 = myquery("select id,naziv,opcina,drzava from mjesto order by naziv"); $gradovir = "<option></option>"; $gradovia = "<option></option>"; $gradovilist = array(); while ($r410 = mysql_fetch_row($q410)) { if ($r410[0] == mysql_result($q400, 0, 10)) { $mjestorvalue = $r410[1]; $eopcinarodjenja = $r410[2]; $edrzavarodjenja = $r410[3]; } if ($r410[0] == mysql_result($q400, 0, 15)) { $mjestoavalue = $r410[1]; } $gradovilist[] = $r410[1]; } // 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] == mysql_result($q400, 0, 13)) { $drzavljanstvor .= " SELECTED"; } $drzavljanstvor .= ">{$r257['1']}</option>\n"; } // Spisak nacionalnosti $q258 = myquery("select id, naziv from nacionalnost order by naziv"); $nacionalnostr = "<option></option>"; while ($r258 = mysql_fetch_row($q258)) { $nacionalnostr .= "<option value=\"{$r258['0']}\""; if ($r258[0] == mysql_result($q400, 0, 12)) { $nacionalnostr .= " SELECTED"; } $nacionalnostr .= ">{$r258['1']}</option>\n"; } // Spisak opičina $q259 = myquery("select id, naziv from opcina order by naziv"); $opcinar = ""; while ($r259 = mysql_fetch_row($q259)) { $opcinar .= "<option value=\"{$r259['0']}\""; if ($r259[0] == $eopcinarodjenja) { $opcinar .= " SELECTED"; } $opcinar .= ">{$r259['1']}</option>\n"; } // Spisak mailova $q260 = myquery("select id, adresa from email where osoba={$osoba}"); $email_adrese = ""; while ($r260 = mysql_fetch_row($q260)) { $email_adrese .= "<input type=\"text\" class=\"default\" name=\"email\" id=\"email{$r260['0']}\" value=\"{$r260['1']}\"> <input type=\"button\" class=\"default\" value=\"Izmijeni\" onclick=\"javascript:location.href='?sta=studentska/osobe&osoba={$osoba}&akcija=podaci&subakcija=izmijenimail&mailid={$r260['0']}&adresa='+document.getElementById('email{$r260['0']}').value;\"> <input type=\"button\" class=\"default\" value=\"Obriši\" onclick=\"javascript:location.href='?sta=studentska/osobe&osoba={$osoba}&akcija=podaci&subakcija=obrisimail&mailid={$r260['0']}';\"><br>\n"; } ?> <script type="text/javascript" src="js/mycombobox.js"></script> <h2><?php echo $ime; ?> <?php echo $prezime; ?> - izmjena ličnih podataka</h2> <p>ID: <b><?php echo $osoba; ?> </b></p> <?php if (mysql_result($q400, 0, 20) == "") { print genform("POST", "\" enctype=\"multipart/form-data"); ?> <input type="hidden" name="subakcija" value="postavisliku"> <p>Dodaj sliku:<br /><input type="file" name="slika"> <input type="submit" value="Dodaj"></p> </form> <?php } else { ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="obrisisliku"> <p>Slika:<br /> <img src="?sta=common/slika&osoba=<?php echo $osoba; ?> "><br/> <input type="submit" value="Obriši sliku"><br></form> <?php print genform("POST", "\" enctype=\"multipart/form-data"); ?> <input type="hidden" name="subakcija" value="postavisliku"> <input type="file" name="slika"> <input type="submit" value="Promijeni sliku"></p> </form> <?php } ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="potvrda"> <table border="0" width="600"><tr> <td>Ime:</td> <td><input type="text" name="ime" value="<?php echo $ime; ?> " class="default"></td> </tr><tr> <td>Prezime:</td> <td><input type="text" name="prezime" value="<?php echo $prezime; ?> " class="default"></tr> </tr><tr> <td>Spol:</td> <td><input type="radio" name="spol" value="M" <?php echo $muski; ?> > Muški <input type="radio" name="spol" value="Z" <?php echo $zenski; ?> > Ženski</td> </tr><tr> <td>JMBG:</td> <td><input type="text" name="jmbg" value="<?php echo mysql_result($q400, 0, 11); ?> " class="default"></td> </tr><tr> <td>Nacionalnost:</td> <td><select name="nacionalnost" class="default"><?php echo $nacionalnostr; ?> </select></td> </tr><tr> <td>Broj indexa<br>(za studente):</td> <td><input type="text" name="brindexa" value="<?php echo mysql_result($q400, 0, 8); ?> " class="default"></td> </tr><tr><td colspan="2"> </td> </tr><tr> <td>Djevojačko prezime:</td> <td><input type="text" name="imeoca" value="<?php echo mysql_result($q400, 0, 21); ?> " class="default"></td> </tr><tr> <td>Ime oca:</td> <td><input type="text" name="imeoca" value="<?php echo mysql_result($q400, 0, 2); ?> " class="default"></td> </tr><tr> <td>Prezime oca:</td> <td><input type="text" name="prezimeoca" value="<?php echo mysql_result($q400, 0, 3); ?> " class="default"></tr> </tr><tr> <td>Ime majke:</td> <td><input type="text" name="imemajke" value="<?php echo mysql_result($q400, 0, 4); ?> " class="default"></td> </tr><tr> <td>Prezime majke:</td> <td><input type="text" name="prezimemajke" value="<?php echo mysql_result($q400, 0, 5); ?> " class="default"></td> </tr><tr><td colspan="2"> </td> </tr><tr> <td>Datum rođenja:</td> <td><input type="text" name="datum_rodjenja" value="<?php if (mysql_result($q400, 0, 4)) { print date("d. m. Y.", mysql_result($q400, 0, 9)); } ?> " class="default"></td> </tr><tr> <td>Mjesto rođenja:</td> <td><?php echo mycombobox("mjesto_rodjenja", $mjestorvalue, $gradovilist); ?> </td> </tr><tr> <td>Općina rođenja:</td> <td><select name="opcina_rodjenja" class="default"><?php echo $opcinar; ?> </select></td> </tr><tr> <td>Država rođenja:</td> <td><select name="drzava_rodjenja" class="default"><?php echo $drzaverodjr; ?> </select></td> </tr><tr> <td>Državljanstvo:</td> <td><select name="drzavljanstvo" class="default"><?php echo $drzavljanstvor; ?> </select></td> </tr><tr> <td>Boračke kategorije:</td> <td><input type="checkbox" name="boracke_kategorije" <?php echo $boracke_kategorije; ?> ></td> </tr><tr><td colspan="2"> </td> </tr><tr> <td>Adresa:</td> <td><input type="text" name="adresa" value="<?php echo mysql_result($q400, 0, 14); ?> " class="default"><br> <?php echo mycombobox("adresa_mjesto", $mjestoavalue, $gradovilist); ?> </td> </tr><tr> <td>Kanton:</td> <td><?php echo db_dropdown("kanton", mysql_result($q400, 0, 17), "--Izaberite kanton--"); ?> </td> </tr><tr> <td>Telefon:</td> <td><input type="text" name="telefon" value="<?php echo mysql_result($q400, 0, 16); ?> " class="default"></td> </tr><tr> <td valign="top">Kontakt e-mail:</td> <td><?php echo $email_adrese; ?> <input type="text" name="emailnovi" id="emailnovi" class="default"> <input type="button" class="default" value="Dodaj" onclick="javascript:location.href='?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=podaci&subakcija=dodajmail&adresa='+document.getElementById('emailnovi').value;"></td> </tr><tr><td colspan="2"> </td> </tr><tr> <td>Maternji jezik:</td> <td><?php echo db_dropdown("maternji_jezik", mysql_result($q400, 0, 22), " "); ?> </td> </tr><tr> <td>Vozačka dozvola:</td> <td><?php echo db_dropdown("vozacki_kategorija", mysql_result($q400, 0, 23), " "); ?> </td> </tr><tr> <td>Način stanovanja:</td> <td><?php echo db_dropdown("nacin_stanovanja", mysql_result($q400, 0, 24), " "); ?> </td> </tr><tr><td colspan="2"> </td> </tr><tr> <td>Stručni stepen:</td> <td><?php echo db_dropdown("strucni_stepen", mysql_result($q400, 0, 18), " "); ?> </td> </tr><tr> <td>Naučni stepen:</td> <td><?php echo db_dropdown("naucni_stepen", mysql_result($q400, 0, 19), " "); ?> </td> </tr></table> <p> <input type="Submit" value=" Izmijeni "></form> <a href="?sta=studentska/osobe&akcija=edit&osoba=<?php echo $osoba; ?> ">Povratak nazad</a> </p> <?php } else { if ($akcija == "upis") { $student = intval($_REQUEST['osoba']); $studij = intval($_REQUEST['studij']); $semestar = intval($_REQUEST['semestar']); $godina = intval($_REQUEST['godina']); // Neispravni parametri se ne bi trebali desiti, osim u slučaju hackovanja // a i tada je "šteta" samo nekonzistentnost baze $q500 = myquery("select ime, prezime, brindexa from osoba where id={$student}"); $ime = mysql_result($q500, 0, 0); $prezime = mysql_result($q500, 0, 1); $brindexa = mysql_result($q500, 0, 2); $q505 = myquery("select naziv from akademska_godina where id={$godina}"); $naziv_ak_god = mysql_result($q505, 0, 0); ?> <a href="?sta=studentska/osobe&akcija=edit&osoba=<?php echo $student; ?> ">Nazad na podatke o osobi</a><br/><br/> <h2><?php echo $ime; ?> <?php echo $prezime; ?> - upis</h2><?php print genform("POST"); ?> <input type="hidden" name="subakcija" value="upis_potvrda"> <?php // Ako je subakcija, potvrdjujemo da se moze izvrsiti upis $ok_izvrsiti_upis = 0; if ($_POST['subakcija'] == "upis_potvrda" && check_csrf_token()) { $ok_izvrsiti_upis = 1; // Potvrdjujemo promjenu studija napravljenu tokom rada $ns = intval($_REQUEST['novi_studij']); if ($ns > 0) { $studij = $ns; $_REQUEST['novi_studij'] = 0; ?> <input type="hidden" name="studij" value="<?php echo $studij; ?> "> <input type="hidden" name="novi_studij" value="0"> <?php $ok_izvrsiti_upis = 0; // Tražimo novu potvrdu jer od izbora studija ovisi previše stvari // npr. ugovor o učenju } } // Šta je student slušao i kako? $q510 = myquery("select studij, nacin_studiranja, plan_studija, semestar, ponovac from student_studij where student={$student} order by akademska_godina desc, semestar desc limit 1"); $stari_studij = $nacin_studiranja = $plan_studija = $ponovac = $stari_nacin_studiranja = 0; if (mysql_num_rows($q510) > 0) { $stari_studij = mysql_result($q510, 0, 0); $stari_nacin_studiranja = mysql_result($q510, 0, 1); $plan_studija = mysql_result($q510, 0, 2); if (mysql_result($q510, 0, 3) >= $semestar) { $ponovac = 1; } else { if ($semestar % 2 == 0) { $ponovac = mysql_result($q510, 0, 4); } } } if (intval($_REQUEST['nacin_studiranja']) > 0) { $nacin_studiranja = intval($_REQUEST['nacin_studiranja']); } // Ako je promijenjen studij, moramo odrediti i novi plan studija if ($stari_studij != $studij) { $ponovac = 0; $q515 = myquery("select godina_vazenja from plan_studija where studij={$studij} order by godina_vazenja desc limit 1"); if (mysql_num_rows($q515) > 0) { $plan_studija = mysql_result($q515, 0, 0); } } // Novi student $mijenja_studij = 0; if ($stari_studij == 0 && $ns == 0 && $ok_izvrsiti_upis == 0) { // Šta je odabrao na prijemnom? (pretpostavljamo da godine idu hronološkim redom) $izabrani_studij = $studij; $q520 = myquery("select pp.studij_prvi, pt.ciklus_studija from prijemni_prijava as pp, prijemni_termin as pt where pp.osoba={$student} and pp.prijemni_termin=pt.id and pt.akademska_godina={$godina} order by pt.datum desc limit 1"); if (mysql_num_rows($q520) > 0) { $izabrani_studij = mysql_result($q520, 0, 0); $ciklus = mysql_result($q520, 0, 1); } else { // Iz parametra studij ćemo probati odrediti ciklus $q530 = myquery("select ts.ciklus from tipstudija as ts, studij as s where s.id={$studij} and s.tipstudija=ts.id"); if (mysql_num_rows($q530) > 0) { $ciklus = mysql_result($q530, 0, 0); } else { $ciklus = 1; } // nemamo pojma = prvi ciklus } // Lista studija $q550 = myquery("select s.id, s.naziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.ciklus={$ciklus} and ts.moguc_upis=1 order by s.naziv"); ?> <p><b>Izaberite studij koji će student upisati:</b><br/> <?php while ($r550 = mysql_fetch_row($q550)) { if ($r550[0] == $izabrani_studij) { $dodaj = " CHECKED"; } else { $dodaj = ""; } print '<input type="radio" name="novi_studij" value="' . $r550[0] . '"' . $dodaj . '>' . $r550[1] . "<br/>\n"; } print "</p>\n\n"; $mijenja_studij = 1; } // Izbor studija kod zavrsetka prethodnog $q540 = myquery("select ts.trajanje, s.naziv, ts.ciklus, s.institucija from studij as s, tipstudija as ts where s.id={$studij} and s.tipstudija=ts.id"); if (mysql_num_rows($q540) > 0) { $trajanje = mysql_result($q540, 0, 0); $naziv_studija = mysql_result($q540, 0, 1); $ciklus = mysql_result($q540, 0, 2); $institucija = mysql_result($q540, 0, 3); } else { $ok_izvrsiti_upis = 0; } // nepoznat studij // Pošto se akcija "edit" ne bavi određivanjem sljedećeg ciklusa, ona će proslijediti // prevelik broj semestra if ($semestar > $trajanje && $stari_studij != 0) { // Biramo sljedeći ciklus istog studija po tome što ga nudi ista institucija $ciklus++; $q545 = myquery("select s.id from studij as s, tipstudija as ts where s.institucija={$institucija} and s.tipstudija=ts.id and ts.ciklus={$ciklus} and ts.moguc_upis=1"); if (mysql_num_rows($q545) > 0) { $izabrani_studij = mysql_result($q545, 0, 0); } $q550 = myquery("select s.id, s.naziv from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.ciklus={$ciklus} and ts.moguc_upis=1 order by s.naziv"); ?> <p><b>Izaberite studij koji će student upisati:</b><br/> <?php while ($r550 = mysql_fetch_row($q550)) { if ($r550[0] == $izabrani_studij) { $dodaj = " CHECKED"; } else { $dodaj = ""; } print '<input type="radio" name="novi_studij" value="' . $r550[0] . '"' . $dodaj . '>' . $r550[1] . "<br/>\n"; } print "</p>\n\n"; // Postavljamo semestar na 1 unset($_REQUEST['semestar']); print '<input type="hidden" name="semestar" value="1">' . "\n"; $prijedlog_nacin_studiranja = $nacin_studiranja; $nacin_studiranja = 0; // Ponovo se mora izabrati način studiranja $ok_izvrsiti_upis = 0; $mijenja_studij = 1; } else { if ($stari_studij != 0) { ?> <p>Upis na studij <?php echo $naziv_studija; ?> , <?php echo $semestar; ?> . semestar:</p> <?php } } // Izbor načina studiranja if ($nacin_studiranja == 0) { ?> <p><b>Izaberite način studiranja studenta:</b><br/> <?php $q560 = myquery("select id, naziv from nacin_studiranja where moguc_upis=1"); while ($r560 = mysql_fetch_row($q560)) { if ($r560[0] == $stari_nacin_studiranja) { $dodaj = " CHECKED"; } else { $dodaj = ""; } print '<input type="radio" name="nacin_studiranja" value="' . $r560[0] . '"' . $dodaj . '>' . $r560[1] . "<br/>\n"; } $ok_izvrsiti_upis = 0; } // Da li ima nepoložene predmete sa ranijih semestara? if ($semestar > 1 && $semestar % 2 == 1 && $stari_studij != 0) { // Uvodimo dva načina izbora predmeta - preko plana studija i preko odslušanih predmeta u prošloj godini // U slučaju da nije definisan plan studija, bira se ovaj drugi način, ali on nije pouzdan zbog komplikacije // oko izbornih predmeta i ECTSova if ($plan_studija > 0) { // Prema novom zakonu, uslov za upis je jedan predmet iz prethodne godine $predmeti_pao = array(); $stari_predmet = array(); $q570 = myquery("select predmet, obavezan, semestar from plan_studija where godina_vazenja={$plan_studija} and studij={$stari_studij} and semestar<{$semestar} order by semestar"); $slusao = array(); while ($r570 = mysql_fetch_row($q570)) { $psemestar = $r570[2]; if ($r570[1] == 1) { // obavezan $predmet = $r570[0]; $q580 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet} and ocjena>5"); if (mysql_result($q580, 0, 0) < 1) { $q590 = myquery("select ects, naziv from predmet where id={$predmet}"); $predmeti_pao[$predmet] = mysql_result($q590, 0, 1); if ($psemestar < $semestar - 2) { $stari_predmet[$predmet] = 1; } } } else { // izborni $is = $r570[0]; $slusao_id = 0; $polozio = 0; $q600 = myquery("select predmet from izborni_slot where id={$is}"); while ($r600 = mysql_fetch_row($q600)) { $predmet = $r600[0]; if ($slusao[$predmet] != "") { continue; } // kada je isti predmet u dva slota // Koji je od ovih slušao? $q610 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet}"); if (mysql_result($q610, 0, 0) > 0) { $slusao_id = $predmet; $q620 = myquery("select ects, naziv from predmet where id={$predmet}"); $slusao[$predmet] = mysql_result($q620, 0, 1); } // Da li je polozio? $q630 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet} and ocjena>5"); if (mysql_result($q630, 0, 0) > 0) { $polozio = 1; break; } } if ($polozio == 0) { // nije položio nijedan od mogućih predmeta u slotu if ($slusao_id > 0) { $predmeti_pao[$slusao_id] = $slusao[$slusao_id]; } else { // Ubacićemo nešto u niz $predmeti_pao da se zna da nema uslov // ali u biti ne znamo šta $predmeti_pao[0] = "X"; } if ($psemestar < $semestar - 2) { $stari_predmet[$slusao_id] = 1; } } } } } else { // if ($plan_studija>0) // Nemamo plana studija, pokušavamo odrediti šta je student slušao ranijih godina // Nepouzdano zbog kolizija, izbornih predmeta itd. $q640 = myquery("select pk.predmet, p.ects, pk.semestar, p.naziv from ponudakursa as pk, student_predmet as sp, predmet as p where sp.student={$student} and sp.predmet=pk.id and pk.semestar<{$semestar} and pk.predmet=p.id"); $predmeti_pao = array(); while ($r650 = mysql_fetch_row($q650)) { $predmet = $r650[0]; $psemestar = $r650[2]; $pnaziv = $r650[3]; $q660 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet} and ocjena>5"); if (mysql_result($q660, 0, 0) < 1 && !$predmeti_pao[$predmet]) { $predmeti_pao[$predmet] = $pnaziv; if ($psemestar < $semestar - 2) { $stari_predmet[$predmet] = 1; } } } } // Tabela za unos ocjena na predmetima koje je pao: if (count($predmeti_pao) > 0 && $ok_izvrsiti_upis == 0) { ?> <p><b>Predmeti iz kojih je student ostao neocijenjen - upišite eventualne ocjene u polja lijevo:</b></p> <table border="0"> <?php foreach ($predmeti_pao as $id => $naziv) { if ($id == 0) { // Ovo je jedini pametan razlog da se pojavi id nula ?> <tr><td colspan="2">Student nije slušao nijedan od ponuđenih izbornih predmeta koje je po planu studija trebao slušati.<br/> Pošto ima dovoljan broj ostvarenih ECTS kredita pretpostavićemo da je sve u redu.</td></tr> <?php continue; } ?> <tr><td><input type="text" size="3" name="pao-<?php echo $id; ?> "></td> <td><?php echo $naziv; ?> </td></tr> <?php } ?> </table> <?php } } // if ($semestar%2 ==1) // IZBORNI PREDMETI // novi studij - određujemo najnoviji plan studija za taj studij if ($ns > 0) { $q670 = myquery("select godina_vazenja from plan_studija where studij={$studij} order by godina_vazenja desc limit 1"); if (mysql_num_rows($q670) > 0) { $plan_studija = mysql_result($q670, 0, 0); } } // Nema potrebe gledati dalje ako treba tek izabrati studij $uou = 0; if ($mijenja_studij == 0) { // Da li je popunjen ugovor o učenju? $q680 = myquery("select id from ugovoroucenju where student={$student} and akademska_godina={$godina} and studij={$studij} and semestar={$semestar}"); $uoupk = array(); if (mysql_num_rows($q680) > 0) { $uou = mysql_result($q680, 0, 0); if ($ok_izvrsiti_upis == 0) { print "<p>Popunjen Ugovor o učenju (ID: {$uou}).\n"; } $q690 = myquery("select p.id, p.naziv from ugovoroucenju_izborni as uoui, predmet as p where uoui.ugovoroucenju={$uou} and uoui.predmet=p.id"); if (mysql_num_rows($q690) > 0 && $ok_izvrsiti_upis == 0) { print " Izabrani predmeti u semestru:"; } while ($r690 = mysql_fetch_row($q690)) { $predmet = $r690[0]; if ($ok_izvrsiti_upis == 0) { print "<br/>* {$r690['1']}\n"; } // Da li je već položio predmet $q695 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet} and ocjena>5"); if (mysql_result($q695, 0, 0) > 0) { if ($ok_izvrsiti_upis == 0) { print " - već položen! Preskačem"; } } else { // Tražimo ponudukursa $q700 = myquery("select id from ponudakursa where predmet={$predmet} and studij={$studij} and semestar={$semestar} and akademska_godina={$godina}"); if (mysql_num_rows($q700) < 1) { if ($ok_izvrsiti_upis == 0) { print " - nije pronađena ponuda kursa!! Kreiram.\n"; } $q701 = myquery("insert into ponudakursa set predmet={$predmet}, studij={$studij}, semestar={$semestar}, akademska_godina={$godina}, obavezan=0"); $q700 = myquery("select id from ponudakursa where predmet={$predmet} and studij={$studij} and semestar={$semestar} and akademska_godina={$godina}"); zamgerlog("kreirao ponudu kursa pp{$predmet}, studij s{$studij}, sem. {$semestar}, ag{$ag} zbog studenta u{$student}", 2); zamgerlog2("kreirao ponudu kursa zbog studenta", $student, intval($pkid)); } if ($ok_izvrsiti_upis == 0) { print '<input type="hidden" name="izborni-' . mysql_result($q700, 0, 0) . '" value="on">' . "\n"; } } } if ($ok_izvrsiti_upis == 0) { print "</p>\n"; } } else { if ($ok_izvrsiti_upis == 0) { print "<p><b>Nije popunjen Ugovor o učenju!</b> Izaberite izborne predmete ručno.</p>\n"; } } // Nalazim izborne predmete // Ako postoji plan studija, problem je jednostavan if ($plan_studija > 0 && $uou == 0) { $bio_predmet = array(); $q710 = myquery("select predmet from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and semestar={$semestar} and obavezan=0"); while ($r710 = mysql_fetch_row($q710)) { $izborni_slot = $r710[0]; $q720 = myquery("select p.id, p.naziv, p.ects from izborni_slot as iz, predmet as p where iz.id={$izborni_slot} and iz.predmet=p.id"); // Prvi prolaz, za provjere $nastavak = 0; $ispis_predmet = array(); $ispis_predmet_ects = array(); while ($r720 = mysql_fetch_row($q720)) { $predmet = $r720[0]; if (in_array($predmet, $bio_predmet)) { continue; } array_push($bio_predmet, $predmet); // Da li je izabran na formi? foreach ($_REQUEST as $key => $value) { if (substr($key, 0, 8) != "izborni-") { continue; } if ($value == "") { continue; } $ponudakursa = intval(substr($key, 8)); $q566 = myquery("select predmet from ponudakursa where id={$ponudakursa}"); if ($predmet == mysql_result($q566, 0, 0)) { $nastavak = 1; break; } } // Da li je položen? $q730 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet}"); if (mysql_result($q730, 0, 0) > 0) { $nastavak = 1; break; } $ispis_predmet[$predmet] = $r720[1]; $ispis_predmet_ects[$predmet] = $r720[2]; } if ($nastavak == 1) { continue; } if ($ok_izvrsiti_upis == 1 && count($ispis_predmet) > 0) { print "<p><b>Morate izabrati jedan od ovih predmeta.</b> Ako to znači da ste sada izabrali viška predmeta, koristite dugme za povratak nazad.</p>\n"; $ok_izvrsiti_upis = 0; } // Drugi prolaz foreach ($ispis_predmet as $predmet => $pnaziv) { // Odredjujemo ponudu kursa $q740 = myquery("select id from ponudakursa where predmet={$predmet} and studij={$studij} and semestar={$semestar} and akademska_godina={$godina}"); if (mysql_num_rows($q740) < 1) { $q701 = myquery("insert into ponudakursa set predmet={$predmet}, studij={$studij}, semestar={$semestar}, akademska_godina={$godina}, obavezan=0"); $q700 = myquery("select id from ponudakursa where predmet={$predmet} and studij={$studij} and semestar={$semestar} and akademska_godina={$godina}"); $pkid = mysql_result($q700, 0, 0); zamgerlog("kreirao ponudu kursa pp{$predmet}, studij s{$studij}, sem. {$semestar}, ag{$ag} zbog studenta u{$student}", 2); zamgerlog2("kreirao ponudu kursa zbog studenta", $student, intval($pkid)); } else { $pkid = mysql_result($q740, 0, 0); } ?> <input type="checkbox" name="izborni-<?php echo $pkid; ?> "> <?php echo $pnaziv; ?> (<?php echo $ispis_predmet_ects[$predmet]; ?> ECTS)<br/> <?php } } } else { if ($uou == 0) { // Nije definisan plan studija - deduciramo izborne predmete iz onoga što se držalo prošle godine // Da li je zbir ECTS bodova sa izbornim predmetima = 30? $q560 = myquery("select p.id, p.naziv, pk.id, p.ects from predmet as p, ponudakursa as pk where pk.akademska_godina={$godina} and pk.studij={$studij} and pk.semestar={$semestar} and obavezan=0 and pk.predmet=p.id"); if (mysql_num_rows($q560) > 0 && $ok_izvrsiti_upis == 1) { $q565 = myquery("select sum(p.ects) from ponudakursa as pk, predmet as p where pk.studij={$studij} and pk.semestar={$semestar} and pk.akademska_godina={$godina} and pk.obavezan=1 and pk.predmet=p.id"); $ects_suma = mysql_result($q565, 0, 0); // Upisujemo na izborne predmete koji su odabrani foreach ($_REQUEST as $key => $value) { if (substr($key, 0, 8) != "izborni-") { continue; } if ($value == "") { continue; } $predmet = intval(substr($key, 8)); $q566 = myquery("select p.ects from ponudakursa as pk, predmet as p where pk.id={$predmet} and pk.predmet=p.id"); $ects_suma += mysql_result($q566, 0, 0); } if ($ects_suma != 30) { $ok_izvrsiti_upis = 0; niceerror("Izabrani izborni predmeti čine sumu {$ects_suma} ECTS kredita, umjesto 30"); } } if (mysql_num_rows($q560) > 0 && $ok_izvrsiti_upis == 0) { ?> <p><b>Izaberite izborne predmete:</b><br/> <?php while ($r560 = mysql_fetch_row($q560)) { $q570 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$r560['0']}"); if (mysql_result($q570, 0, 0) < 1) { // Nije polozio/la - koristimo pk ?> <input type="checkbox" name="izborni-<?php echo $r560[2]; ?> "> <?php echo $r560[1]; ?> (<?php echo $r560[3]; ?> ECTS)<br/> <?php } } } } } } // if ($stari_studij!=0 && $semestar<=$trajanje) // Studentu nikada nije zadat broj indexa (npr. prvi put se upisuje) if (($brindexa == 0 || $brindexa == "" || $mijenja_studij == 1) && $ok_izvrsiti_upis == 0 && !isset($_REQUEST['novi_brindexa'])) { if ($brindexa == 0) { $brindexa = ""; } ?> <p><b>Unesite broj indeksa za ovog studenta:</b><br/> <input type="text" name="novi_brindexa" size="10" value="<?php echo $brindexa; ?> "></p> <?php } // ------ Izvrsenje upisa! if ($ok_izvrsiti_upis == 1 && check_csrf_token()) { // Upis u prvi semestar - kandidat za prijemni postaje student! if ($stari_studij == 0) { // Ukidamo privilegiju "prijemni" ako je student imao $q640 = myquery("delete from privilegije where osoba={$student} and privilegija='prijemni'"); // Dodajemo privilegiju "student" samo ako je student nije već imao $q643 = myquery("select count(*) from privilegije where osoba={$student} and privilegija='student'"); if (mysql_result($q643, 0, 0) < 1) { $q646 = myquery("insert into privilegije set osoba={$student}, privilegija='student'"); } // AUTH tabelu cemo srediti naknadno zamgerlog2("proglasen za studenta", $student); print "-- {$prezime} {$ime} proglašen za studenta<br/>\n"; } // Novi broj indexa $nbri = my_escape($_REQUEST['novi_brindexa']); if ($nbri != "") { $q650 = myquery("update osoba set brindexa='{$nbri}' where id={$student}"); zamgerlog2("postavljen broj indeksa", $student, 0, 0, $nbri); print "-- broj indeksa postavljen na {$nbri}<br/>\n"; } // Upisujemo ocjene za predmete koje su dopisane if (count($predmeti_pao) > 0) { foreach ($predmeti_pao as $predmet => $naziv_predmeta) { $ocjena = intval($_REQUEST["pao-{$predmet}"]); if ($ocjena > 5) { // Upisujem dopisanu ocjenu $q590 = myquery("insert into konacna_ocjena set student={$student}, predmet={$predmet}, ocjena={$ocjena}, akademska_godina={$ag}"); zamgerlog("dopisana ocjena {$ocjena} prilikom upisa na studij (predmet pp{$predmet}, student u{$student})", 4); // 4 = audit zamgerlog2("dodana ocjena", $student, $predmet, $ag, $ocjena); print "-- Dopisana ocjena {$ocjena} za predmet {$naziv_predmeta}<br/>\n"; } else { // Student prenio predmet if ($predmet == 0) { continue; } // nije slušao nijedan od mogućih izbornih predmeta // Provjera broja ECTS kredita je obavljena na početnoj strani (akcija "edit") // pa ćemo pretpostaviti sve najbolje :) // Moramo upisati studenta u istu ponudu kursa koju je ranije slušao $q592 = myquery("select pk.studij,pk.semestar from ponudakursa as pk, student_predmet as sp where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet} order by pk.akademska_godina desc limit 1"); // Polje predmeti pao sadrži predmete koje je student trebao slušati prema NPP u prošloj godini a nije ih položio // No ako se student direktno upisuje na višu godinu (doktorski studij!?), moguće da je tu predmet koji nikada nije slušao // Stoga moramo provjeriti i to i preskočiti takve predmete if (mysql_num_rows($q592) < 1) { continue; } $q594 = myquery("select id from ponudakursa where predmet={$predmet} and studij=" . mysql_result($q592, 0, 0) . " and semestar=" . mysql_result($q592, 0, 1) . " and akademska_godina={$godina}"); upis_studenta_na_predmet($student, mysql_result($q594, 0, 0)); zamgerlog2("student upisan na predmet (preneseni)", $student, intval(mysql_result($q594, 0, 0))); print "-- Upisan u predmet {$naziv_predmeta} koji je prenio s prethodne godine (ako je ovo greška, zapamtite da ga treba ispisati sa predmeta!)<br/>\n"; } } } // Upisujemo studenta na novi studij $q600 = myquery("insert into student_studij set student={$student}, studij={$studij}, semestar={$semestar}, akademska_godina={$godina}, nacin_studiranja={$nacin_studiranja}, ponovac={$ponovac}, odluka=NULL, plan_studija={$plan_studija}"); // Upisujemo na sve obavezne predmete na studiju $q610 = myquery("select pk.id, p.id, p.naziv from ponudakursa as pk, predmet as p where pk.studij={$studij} and pk.semestar={$semestar} and pk.akademska_godina={$godina} and pk.obavezan=1 and pk.predmet=p.id"); while ($r610 = mysql_fetch_row($q610)) { // Da li ga je vec polozio $q615 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$r610['1']}"); if (mysql_result($q615, 0, 0) < 1) { upis_studenta_na_predmet($student, $r610[0]); zamgerlog2("student upisan na predmet (obavezan)", $student, intval($r610[0])); } else { print "-- Student NIJE upisan u {$r610['2']} jer ga je već položio<br/>\n"; } } // Upisujemo na izborne predmete koji su odabrani foreach ($_REQUEST as $key => $value) { if (substr($key, 0, 8) != "izborni-") { continue; } if ($value == "") { continue; } $ponudakursa = intval(substr($key, 8)); // drugi dio ključa je ponudakursa upis_studenta_na_predmet($student, $ponudakursa); zamgerlog2("student upisan na predmet (izborni)", $student, $ponudakursa); $q635 = myquery("select p.naziv from ponudakursa as pk, predmet as p where pk.id={$ponudakursa} and pk.predmet=p.id"); print "-- Student upisan u izborni predmet " . mysql_result($q635, 0, 0) . "<br/>"; } nicemessage("Student uspješno upisan na {$naziv_studija}, {$semestar}. semestar"); zamgerlog("Student u{$student} upisan na studij s{$studij}, semestar {$semestar}, godina ag{$godina}", 4); // 4 - audit return; } else { ?> <p> </p> <input type="submit" value=" Potvrda upisa "> </form> <?php } } else { if ($akcija == "ispis") { // Svi parametri su obavezni! $studij = $_REQUEST['studij']; $semestar = $_REQUEST['semestar']; $ak_god = $_REQUEST['godina']; $q2500 = myquery("select ime, prezime from osoba where id={$osoba}"); $ime = mysql_result($q2500, 0, 0); $prezime = mysql_result($q2500, 0, 1); $q2510 = myquery("select naziv from akademska_godina where id={$ak_god}"); $naziv_ak_god = mysql_result($q2510, 0, 0); ?> <a href="?sta=studentska/osobe&akcija=edit&osoba=<?php echo $osoba; ?> ">Nazad na podatke o osobi</a><br/><br/> <h2><?php echo $ime; ?> <?php echo $prezime; ?> - ispis sa studija</h2> <?php // Gdje je trenutno upisan? $q2520 = myquery("select s.id, s.naziv, ss.semestar from studij as s, student_studij as ss where ss.student={$osoba} and ss.studij=s.id and ss.akademska_godina={$ak_god} and ss.semestar={$semestar}"); if (mysql_num_rows($q2520) < 1) { niceerror("Student nije upisan na fakultet u izabranoj akademskoj godini!"); zamgerlog("pokusao ispisati studenta u{$osoba} koji nije upisan u ag{$ak_god}", 3); zamgerlog2("pokusao ispisati studenta koji nije upisan", $osoba, intval($ak_god)); return; } if (mysql_result($q2520, 0, 0) != $studij) { niceerror("Student nije upisan na izabrani studij u izabranoj akademskoj godini!"); zamgerlog("pokusao ispisati studenta u{$osoba} sa studija {$studij} koji ne slusa u ag{$ak_god}", 3); zamgerlog2("pokusao ispisati studenta sa studija koji ne slusa", $osoba, intval($studij), intval($ak_god)); return; } if (mysql_result($q2520, 0, 2) != $semestar) { niceerror("Student nije upisan na izabrani semestar u izabranoj akademskoj godini!"); zamgerlog("pokusao ispisati studenta u{$osoba} sa semestra {$semestar} koji ne slusa u ag{$ak_god}", 3); zamgerlog2("pokusao ispisati studenta sa semestra koji ne slusa", $osoba, intval($semestar), intval($ak_god)); return; } $naziv_studija = mysql_result($q2520, 0, 1); $zimski_ljetnji = $semestar % 2; ?> <h3>Studij: <?php echo $naziv_studija; ?> , <?php echo $semestar; ?> . semestar, <?php echo $naziv_ak_god; ?> godina</h3> <?php // Ispis sa studija if ($_REQUEST['potvrda'] == "1") { $q530 = myquery("select pk.predmet from student_predmet as sp, ponudakursa as pk where sp.student={$osoba} and sp.predmet=pk.id and pk.akademska_godina={$ak_god} and pk.semestar mod 2={$zimski_ljetnji}"); while ($r530 = mysql_fetch_row($q530)) { $predmet = $r530[0]; ispis_studenta_sa_predmeta($osoba, $predmet, $ak_god); zamgerlog("ispisujem studenta u{$osoba} sa predmeta pp{$predmet} (ispis sa studija)", 4); // 4 - audit zamgerlog2("student ispisan sa predmeta (ispis sa studija)", $osoba, intval($predmet), intval($ak_god)); } $q550 = myquery("delete from student_studij where student={$osoba} and akademska_godina={$ak_god} and semestar={$semestar}"); nicemessage("Ispisujem studenta sa studija {$naziv_studija} i svih predmeta koje trenutno sluša."); zamgerlog("ispisujem studenta u{$osoba} sa studija {$naziv_studija} (ag{$ak_god})", 4); zamgerlog2("student ispisan sa studija", $osoba, intval($ak_god)); } else { ?> <p>Student će biti ispisan sa sljedećih predmeta:<ul> <?php $q520 = myquery("select p.naziv from predmet as p, ponudakursa as pk, student_predmet as sp where sp.student={$osoba} and sp.predmet=pk.id and pk.akademska_godina={$ak_god} and pk.predmet=p.id and pk.semestar mod 2={$zimski_ljetnji}"); while ($r520 = mysql_fetch_row($q520)) { print "<li>{$r520['0']}</li>\n"; } ?> </ul></p> <p>NAPOMENA: Svi bodovi ostvareni na ovim predmetima će biti izgubljeni! Trenutno nema drugog načina da se student ispiše sa studija.</p> <p>Kliknite na dugme "Potvrda" da potvrdite ispis.</p> <?php echo genform("POST"); ?> <input type="hidden" name="potvrda" value="1"> <input type="submit" value=" Potvrda "> </form> <?php } } else { if ($akcija == "kolizija") { ?> <a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=edit">Nazad na podatke o studentu</a><br/><br/> <?php // Odredjujemo u koju akademsku godinu bi se trebao upisivati student $nova_ak_god = intval($_REQUEST['godina']); $q398 = myquery("select naziv from akademska_godina where id={$nova_ak_god}"); $naziv_godine = mysql_result($q398, 0, 0); // Koji studij student sluša? Treba nam radi ponudekursa $q399 = myquery("select s.id, s.naziv from student_studij as ss, studij as s where ss.student={$osoba} and ss.studij=s.id order by ss.akademska_godina desc, ss.semestar desc"); $studij = mysql_result($q399, 0, 0); $studij_naziv = mysql_result($q399, 0, 1); $q400 = myquery("select predmet from kolizija where student={$osoba} and akademska_godina={$nova_ak_god}"); $predmeti = $ponudekursa = array(); $greska = 0; while ($r400 = mysql_fetch_row($q400)) { $predmet = $r400[0]; // Eliminišemo predmete koje je položio u međuvremenu $q410 = myquery("select count(*) from konacna_ocjena where student={$osoba} and predmet={$predmet} and ocjena>5"); if (mysql_result($q410, 0, 0) < 1) { $q420 = myquery("select naziv from predmet where id={$predmet}"); $predmeti[$predmet] = "<b>" . mysql_result($q420, 0, 0) . "</b> ({$studij_naziv}, "; // Odredjujemo ponudu kursa koju bi student trebao slušati $q430 = myquery("select id, semestar, obavezan from ponudakursa where predmet={$predmet} and studij={$studij} and akademska_godina={$nova_ak_god}"); if (mysql_num_rows($q430) < 1) { if ($greska == 0) { niceerror("Nije pronađena ponuda kursa"); } print "Predmet <b>" . mysql_result($q420, 0, 0) . "</b>, studij <b>{$studij_naziv}</b>, godina {$naziv_godine}<br/>"; $greska = 1; } $ponudekursa[$predmet] = mysql_result($q430, 0, 0); $predmeti[$predmet] .= mysql_result($q430, 0, 1) . ". semestar"; if (mysql_result($q430, 0, 2) == 0) { $predmeti[$predmet] .= ", izborni"; } $predmeti[$predmet] .= ")"; } } if ($greska == 1) { return; } // ne idemo dalje if (count($predmeti) == 0) { // nema ništa za koliziju!!! nicemessage("Student je u međuvremenu položio/la sve predmete! Nema se ništa za upisati."); return; } if ($_REQUEST['subakcija'] == "potvrda") { foreach ($ponudekursa as $predmet => $pk) { upis_studenta_na_predmet($osoba, $pk); $q440 = myquery("delete from kolizija where student={$osoba} and akademska_godina={$nova_ak_god} and predmet={$predmet}"); zamgerlog2("student upisan na predmet (kolizija)", $osoba, intval($pk)); } zamgerlog("prihvacen zahtjev za koliziju studenta u{$osoba}", 4); // 4 = audit zamgerlog2("prihvacen zahtjev za koliziju", $osoba); print "<p>Upis je potvrđen.</p>\n"; } else { ?> <p>Student želi upisati sljedeće predmete:</p> <ul> <?php foreach ($predmeti as $tekst) { print "<li>{$tekst}</li>\n"; } ?> </ul> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="potvrda"> <input type="submit" value=" Potvrdi "> </form> <?php } } else { if ($akcija == "predmeti") { ?> <a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=edit">Nazad na podatke o studentu</a><br/><br/> <?php // Parametar "spisak" određuje koji predmeti će biti prikazani $spisak = intval($_REQUEST['spisak']); $q2000 = myquery("select ime, prezime from osoba where id={$osoba}"); if (mysql_num_rows($q2000) < 1) { niceerror("Nepoznata osoba {$osoba}"); return; } $ime = mysql_result($q2000, 0, 0); $prezime = mysql_result($q2000, 0, 1); ?> <h2><?php echo $ime; ?> <?php echo $prezime; ?> - upis/ispis na predmete</h2> <?php // Subakcije: upis i ispis sa predmeta if ($_REQUEST['subakcija'] == "upisi") { $ponudakursa = intval($_REQUEST['ponudakursa']); upis_studenta_na_predmet($osoba, $ponudakursa); $q2200 = myquery("select p.naziv from ponudakursa as pk, predmet as p where pk.id={$ponudakursa} and pk.predmet=p.id"); $naziv_predmeta = mysql_result($q2200, 0, 0); nicemessage("Student upisan na predmet {$naziv_predmeta}"); zamgerlog("student u{$osoba} manuelno upisan na predmet p{$ponudakursa}", 4); // 4 - audit zamgerlog2("student upisan na predmet (manuelno)", $osoba, $ponudakursa); } if ($_REQUEST['subakcija'] == "ispisi") { $ponudakursa = intval($_REQUEST['ponudakursa']); $q2200 = myquery("select p.id, p.naziv, pk.akademska_godina from ponudakursa as pk, predmet as p where pk.id={$ponudakursa} and pk.predmet=p.id"); $predmet = mysql_result($q2200, 0, 0); $naziv_predmeta = mysql_result($q2200, 0, 1); $ag = mysql_result($q2200, 0, 2); // Upozorenje ako ima neke bodove? $q2210 = myquery("select sum(bodovi) from komponentebodovi where student={$osoba} and predmet={$ponudakursa}"); $bodovi = mysql_result($q2210, 0, 0); if ($bodovi != 0 && $bodovi != 10 && $_REQUEST['siguran'] != "da") { // 10 bodova je default za prisustvo nicemessage("Upozorenje! Student je osvojio {$bodovi} bodova na predmetu {$naziv_predmeta}."); ?> Da li ste sigurni da ga želite ispisati?<br/> <?php echo genform("POST"); ?> <input type="hidden" name="siguran" value="da"> <input type="submit" value=" Potvrda "> </form> <?php return; } ispis_studenta_sa_predmeta($osoba, $predmet, $ag); nicemessage("Student ispisan sa predmeta {$naziv_predmeta}"); zamgerlog("student u{$osoba} manuelno ispisan sa predmeta p{$ponudakursa}", 4); // 4 - audit zamgerlog2("student ispisan sa predmeta (manuelno)", $osoba, intval($predmet), intval($ag)); } // Aktuelna akademska godina if ($_REQUEST['ag'] || $_REQUEST['_lv_column_akademska_godina']) { $ak_god = intval($_REQUEST['ag']); if ($_REQUEST['_lv_column_akademska_godina']) { $ak_god = intval($_REQUEST['_lv_column_akademska_godina']); } $q2005 = myquery("select naziv from akademska_godina where id={$ak_god}"); if (mysql_num_rows($q2005) < 1) { biguglyerror("Nepoznata akademska godina"); return; } $naziv_ag = mysql_result($q2005, 0, 0); } else { $q2010 = myquery("select id, naziv from akademska_godina where aktuelna=1"); $ak_god = mysql_result($q2010, 0, 0); $naziv_ag = mysql_result($q2010, 0, 1); } $q2020 = myquery("select studij, semestar, plan_studija from student_studij where student={$osoba} and akademska_godina={$ak_god} order by semestar desc"); if (mysql_num_rows($q2020) > 0) { $studij = mysql_result($q2020, 0, 0); $semestar = mysql_result($q2020, 0, 1); $q2025 = myquery("select naziv from studij where id={$studij}"); $naziv_studija = mysql_result($q2025, 0, 0); print "<p>Student trenutno ({$naziv_ag}) upisan na {$naziv_studija}, {$semestar}. semestar.</p>\n"; // Upozorenje! if (mysql_result($q2020, 0, 2) > 0) { print "<p><b>Napomena:</b> Student je već upisan na sve predmete koje je trebao slušati po odabranom planu studija!<br/> Koristite ovu opciju samo za izuzetke / odstupanja od plana ili u slučaju grešaka u radu Zamgera.<br/>U suprotnom, može se desiti da student nema adekvatan broj ECTS kredita ili da sluša izborni predmet<br/>koji ne bi smio slušati.</p>\n"; } } else { // Student trenutno nije upisan nigdje... biramo zadnji studij koji je slušao if ($spisak == 0) { $spisak = 1; } $q2030 = myquery("select studij, semestar, akademska_godina from student_studij where student={$osoba} order by akademska_godina desc limit 1"); if (mysql_num_rows($q2030) > 0) { $studij = mysql_result($q2030, 0, 0); $ag_studija = mysql_result($q2030, 0, 2); $q2040 = myquery("select naziv from studij where id={$studij}"); $naziv_studija = mysql_result($q2040, 0, 0); $q2050 = myquery("select naziv from akademska_godina where id={$ag_studija}"); if ($ag_studija > $ak_god) { print "<p>Student nije bio upisan u odabranoj akademskoj godini ({$naziv_ag}), ali je upisan na studij {$naziv_studija}, " . mysql_result($q2030, 0, 0) . ". semestar, akademske " . mysql_result($q2050, 0, 0) . " godine.</p>\n"; } else { print "<p>Student trenutno ({$naziv_ag}) nije upisan na fakultet! Posljednji put slušao {$naziv_studija}, " . mysql_result($q2030, 0, 0) . ". semestar, akademske " . mysql_result($q2050, 0, 0) . " godine.</p>\n"; } } else { // Nikada nije bio student? $studij = 0; if ($spisak < 2) { $spisak = 2; } print "<p>Osoba nikada nije bila naš student!</p>\n"; } } // Opcije za spisak predmeta $s0 = $spisak == 0 ? "CHECKED" : ""; $s1 = $spisak == 1 ? "CHECKED" : ""; $s2 = $spisak == 2 ? "CHECKED" : ""; unset($_REQUEST['subakcija']); // da se ne bi ponovila ?> <?php echo genform("GET"); ?> Akademska godina: <?php echo db_dropdown("akademska_godina", $ak_god); ?> <br> <input type="radio" name="spisak" value="0" <?php echo $s0; ?> > Prikaži predmete sa izabranog studija i semestra<br/> <input type="radio" name="spisak" value="1" <?php echo $s1; ?> > Prikaži predmete sa svih semestara<br/> <input type="radio" name="spisak" value="2" <?php echo $s2; ?> > Prikaži predmete sa drugih studija<br/> <input type="submit" value=" Kreni "></form><br><br> <?php // Ispis svih predmeta na studiju semestru je funkcija, pošto pozivanje unutar petlje ovisi o nivou spiska function dajpredmete($studij, $semestar, $student, $ag, $spisak) { $q2100 = myquery("select pk.id, p.id, p.naziv, pk.obavezan from ponudakursa as pk, predmet as p where pk.studij={$studij} and pk.semestar={$semestar} and pk.akademska_godina={$ag} and pk.predmet=p.id order by p.naziv"); while ($r2100 = mysql_fetch_row($q2100)) { $ponudakursa = $r2100[0]; $predmet = $r2100[1]; $predmet_naziv = $r2100[2]; print "<li>{$predmet_naziv}"; if ($r2100[3] != 1) { print " (izborni)"; } // Da li je upisan? // Zbog mogućih bugova, prvo gledamo da li je upisan... $q2120 = myquery("select count(*) from student_predmet where student={$student} and predmet={$ponudakursa}"); if (mysql_result($q2120, 0, 0) > 0) { print " - <a href=\"?sta=studentska/osobe&akcija=predmeti&osoba={$student}&subakcija=ispisi&ponudakursa={$ponudakursa}&spisak={$spisak}&ag={$ag}\">ispiši</a></li>\n"; } else { // Da li je položen? $q2110 = myquery("select count(*) from konacna_ocjena where student={$student} and predmet={$predmet} and ocjena>5"); if (mysql_result($q2110, 0, 0) > 0) { print " - položen</li>\n"; } else { print " - <a href=\"?sta=studentska/osobe&akcija=predmeti&osoba={$student}&subakcija=upisi&ponudakursa={$ponudakursa}&spisak={$spisak}&ag={$ag}\">upiši</a></li>\n"; } } } } // function dajpredmete // Ispis predmeta if ($spisak == 0) { print "<b>{$naziv_studija}, {$semestar}. semestar</b>\n<ul>\n"; dajpredmete($studij, $semestar, $osoba, $ak_god, $spisak); print "</ul>\n"; } else { if ($spisak == 1) { // Broj semestara? $q2060 = myquery("select ts.trajanje from studij as s, tipstudija as ts where s.id={$studij} and s.tipstudija=ts.id"); for ($s = 1; $s <= mysql_result($q2060, 0, 0); $s++) { if ($s == $semestar) { print "<b>{$naziv_studija}, {$s}. semestar</b>\n<ul>\n"; } else { print "{$naziv_studija}, {$s}. semestar\n<ul>\n"; } dajpredmete($studij, $s, $osoba, $ak_god, $spisak); print "</ul>\n"; } } else { if ($spisak == 2) { // Svi studiji $q2070 = myquery("select s.id, s.naziv, ts.trajanje from studij as s, tipstudija as ts where s.tipstudija=ts.id and ts.moguc_upis=1 order by ts.ciklus, s.naziv"); while ($r2070 = mysql_fetch_row($q2070)) { $stud = $r2070[0]; $stud_naziv = $r2070[1]; $stud_trajanje = $r2070[2]; if ($stud == $studij) { print "<b>{$stud_naziv}</b>\n<ul>\n"; } else { print "{$stud_naziv}\n<ul>\n"; } for ($s = 1; $s <= $stud_trajanje; $s++) { if ($stud == $studij && $s == $semestar) { print "<b>{$s}. semestar</b>\n<ul>\n"; } else { print "{$s}. semestar\n<ul>\n"; } dajpredmete($stud, $s, $osoba, $ak_god, $spisak); print "</ul>\n"; } print "</ul>\n"; } } } } } else { if ($akcija == "izbori") { if ($_POST['subakcija'] == "novi" && check_csrf_token()) { $zvanje = intval($_POST['_lv_column_zvanje']); $datum_izbora = mktime(0, 0, 0, intval($_POST['izbormonth']), intval($_POST['izborday']), intval($_POST['izboryear'])); $datum_isteka = mktime(0, 0, 0, intval($_POST['istekmonth']), intval($_POST['istekday']), intval($_POST['istekyear'])); // Ove vrijednosti moraju biti ovakve if ($datum_izbora == mktime(0, 0, 0, 1, 1, 1990)) { $datum_izbora = 0; } if ($datum_isteka == mktime(0, 0, 0, 1, 1, 1990)) { $datum_isteka = 0; } $oblast = intval($_POST['_lv_column_oblast']); $podoblast = intval($_POST['_lv_column_podoblast']); if ($_POST['dopunski']) { $dopunski = 1; } else { $dopunski = 0; } if ($_POST['druga_institucija']) { $drugainst = 1; } else { $drugainst = 0; } if ($_POST['neodredjeno']) { $sqlisteka = "'2999-01-01'"; } else { $sqlisteka = "FROM_UNIXTIME({$datum_isteka})"; } $q3030 = myquery("insert into izbor set osoba={$osoba}, zvanje={$zvanje}, datum_izbora=FROM_UNIXTIME({$datum_izbora}), datum_isteka={$sqlisteka}, oblast={$oblast}, podoblast={$podoblast}, dopunski={$dopunski}, druga_institucija={$drugainst}"); zamgerlog("dodani podaci o izboru za u{$osoba}", 2); } if ($_POST['subakcija'] == "izmjena" && check_csrf_token()) { $izvanje = intval($_POST['_lv_column_zvanje']); $idatum_izbora = mktime(0, 0, 0, intval($_POST['izbormonth']), intval($_POST['izborday']), intval($_POST['izboryear'])); $idatum_isteka = mktime(0, 0, 0, intval($_POST['istekmonth']), intval($_POST['istekday']), intval($_POST['istekyear'])); // Ove vrijednosti moraju biti ovakve if ($idatum_izbora == mktime(0, 0, 0, 1, 1, 1990)) { $idatum_izbora = 0; } if ($idatum_isteka == mktime(0, 0, 0, 1, 1, 1990)) { $idatum_isteka = 0; } $ioblast = intval($_POST['_lv_column_oblast']); $ipodoblast = intval($_POST['_lv_column_podoblast']); if ($_POST['dopunski']) { $idopunski = 1; } else { $idopunski = 0; } if ($_POST['druga_institucija']) { $idrugainst = 1; } else { $idrugainst = 0; } if ($_POST['neodredjeno']) { $isqlisteka = "'2999-01-01'"; } else { $isqlisteka = "FROM_UNIXTIME({$idatum_isteka})"; } // Bice azurirano prilikom ispisa... } $broj_izbora = intval($_REQUEST['broj_izbora']); $q3000 = myquery("select ime, prezime from osoba where id={$osoba}"); $imeprezime = mysql_result($q3000, 0, 0) . " " . mysql_result($q3000, 0, 1); ?> <h3>Izbor nastavnika u zvanja</h3> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=edit">Nazad na podatke o osobi <?php echo $imeprezime; ?> </a></p> <p> </p> <?php $t_zvanje = $t_datumiz = $t_datumis = $t_oblast = $t_podoblast = $t_dopunski = 0; $ispis = ""; $q3010 = myquery("select zvanje, UNIX_TIMESTAMP(datum_izbora), UNIX_TIMESTAMP(datum_isteka), oblast, podoblast, dopunski, druga_institucija from izbor WHERE osoba={$osoba} order by datum_isteka, datum_izbora"); if (mysql_num_rows($q3010) == 1 && $broj_izbora != -1) { $broj_izbora = 1; } // Ako postoji samo jedan izbor, editujemo ga; -1 znači ipak dodavanje novog for ($i = 1; $i <= mysql_num_rows($q3010); $i++) { $zvanje = mysql_result($q3010, $i - 1, 0); $datumiz = mysql_result($q3010, $i - 1, 1); $datumis = mysql_result($q3010, $i - 1, 2); $oblast = mysql_result($q3010, $i - 1, 3); $podoblast = mysql_result($q3010, $i - 1, 4); $dopunski = mysql_result($q3010, $i - 1, 5); $drugainst = mysql_result($q3010, $i - 1, 6); $q3020 = myquery("select naziv from zvanje where id={$zvanje}"); $nzvanje = mysql_result($q3020, 0, 0); $ndatumiz = date("d. m. Y", $datumiz); if ($datumiz == 0) { $ndatumiz = "nepoznato"; } $ndatumis = date("d. m. Y", $datumis); if ($datumis == 0) { $ndatumis = "neodređeno"; } if ($i == $broj_izbora) { $t_zvanje = $zvanje; $t_datumiz = $datumiz; $t_datumis = $datumis; $t_oblast = $oblast; $t_podoblast = $podoblast; $t_dopunski = $dopunski; $t_drugainst = $drugainst; if ($datumis == 0) { $t_neodredjeno = 1; } else { $t_neodredjeno = 0; } if ($_POST['subakcija'] == "izmjena" && check_csrf_token()) { $q3040 = myquery("update izbor set zvanje={$izvanje}, datum_izbora=FROM_UNIXTIME({$idatum_izbora}), datum_isteka={$isqlisteka}, oblast={$ioblast}, podoblast={$ipodoblast}, dopunski={$idopunski}, druga_institucija={$idrugainst} WHERE zvanje={$zvanje} and UNIX_TIMESTAMP(datum_izbora)={$datumiz} and UNIX_TIMESTAMP(datum_isteka)={$datumis} and oblast={$oblast} and podoblast={$podoblast} and dopunski={$dopunski} and druga_institucija={$drugainst}"); zamgerlog("azurirani podaci o izboru za u{$osoba}", 2); zamgerlog2("azurirani podaci o izboru", $osoba); $t_zvanje = $izvanje; $t_datumiz = $idatum_izbora; $t_datumis = $idatum_isteka; $t_oblast = $ioblast; $t_podoblast = $ipodoblast; $t_dopunski = $idopunski; $t_drugainst = $idrugainst; $q3020 = myquery("select naziv from zvanje where id={$izvanje}"); $nzvanje = mysql_result($q3020, 0, 0); $ndatumiz = date("d. m. Y", $t_datumiz); if ($t_datumiz == 0) { $ndatumiz = "nepoznato"; } $ndatumis = date("d. m. Y", $t_datumis); if ($t_datumis == 0) { $ndatumis = "neodređeno"; } } $ispis .= "<br/>* {$nzvanje} ({$ndatumiz} - {$ndatumis})\n"; } else { $ispis .= "<br/>* <a href=\"?sta=studentska/osobe&osoba={$osoba}&akcija=izbori&broj_izbora={$i}\">{$nzvanje} ({$ndatumiz} - {$ndatumis})</a>\n"; } } if (mysql_num_rows($q3010) > 0) { ?> <p><b>Historija izbora:</b> <?php echo $ispis; ?> </p> <?php } if ($broj_izbora < 1) { ?> <p><b>Unos novog izbora:</b></p> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="novi"> <?php } else { ?> <p><b>Izmjena podataka o izboru:</b></p> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="izmjena"> <?php } ?> <table border="0"><tr> <td>Zvanje:</td> <td><?php echo db_dropdown("zvanje", $t_zvanje); ?> </td> </tr><tr> <td>Datum izbora:</td> <td><?php echo datectrl(date("d", $t_datumiz), date("m", $t_datumiz), date("Y", $t_datumiz), "izbor"); ?> </td> </tr><tr> <td valign="top">Datum isteka:</td> <td><input type="checkbox" name="neodredjeno" <?php if ($t_neodredjeno == 1) { print "CHECKED"; } ?> > Neodređeno<br/> <?php echo datectrl(date("d", $t_datumis), date("m", $t_datumis), date("Y", $t_datumis), "istek"); ?> </td> </tr><tr> <td>Oblast:</td> <td><?php echo db_dropdown("oblast", $t_oblast, "--Nepoznato--"); ?> </td> </tr><tr> <td>Podoblast:</td> <td><?php echo db_dropdown("podoblast", $t_podoblast, "--Nepoznato--"); ?> </td> </tr><tr> <td colspan="2"><input type="checkbox" name="dopunski" <?php if ($t_dopunski == 1) { print "CHECKED"; } ?> > Dopunski radni odnos</td> </tr><tr> <td colspan="2"><input type="checkbox" name="druga_institucija" <?php if ($t_drugainst == 1) { print "CHECKED"; } ?> > Biran/a na drugoj VŠO</td> </tr> </table> <input type="submit" value=" Pošalji "> </form> <?php if ($broj_izbora > 0) { ?> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=izbori&broj_izbora=-1">Kliknite ovdje za unos novog izbora</a></p> <?php } } else { if ($akcija == "edit") { $pretraga = my_escape($_REQUEST['search']); $ofset = my_escape($_REQUEST['offset']); ?> <a href="?sta=studentska/osobe&search=<?php echo $pretraga; ?> &offset=<?php echo $ofset; ?> ">Nazad na rezultate pretrage</a><br/><br/><?php // Prvo odredjujemo aktuelnu akademsku godinu - ovaj upit se dosta koristi kasnije $q210 = myquery("select id,naziv from akademska_godina where aktuelna=1 order by id desc"); if (mysql_num_rows($q210) < 1) { // Nijedna godina nije aktuelna - ali mora postojati barem jedna u bazi $q210 = myquery("select id,naziv from akademska_godina order by id desc"); } $id_ak_god = mysql_result($q210, 0, 0); $naziv_ak_god = mysql_result($q210, 0, 1); // Posto se id_ak_god moze promijeniti.... CLEANUP!!! $orig_iag = $id_ak_god; // ======= SUBMIT AKCIJE ========= // Promjena korisničkog pristupa i pristupnih podataka if ($_POST['subakcija'] == "auth" && check_csrf_token()) { $login = my_escape(trim($_REQUEST['login'])); $login_ldap = ldap_escape(trim($_REQUEST['login'])); $stari_login = my_escape($_REQUEST['stari_login']); $password = my_escape($_REQUEST['password']); $aktivan = intval($_REQUEST['aktivan']); if ($login == "") { niceerror("Ne možete postaviti prazan login"); } else { if ($stari_login == "") { // Provjeravamo LDAP? if ($conf_system_auth == "ldap") { do { // Simuliramo GOTO... // Tražimo ovaj login na LDAPu... $ds = ldap_connect($conf_ldap_server); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); if (!ldap_bind($ds)) { zamgerlog("Ne mogu se spojiti na LDAP server", 3); // 3 - greska zamgerlog2("ne mogu se spojiti na LDAP server"); niceerror("Ne mogu se spojiti na LDAP server - nastavljam dalje bez provjere"); break; } $sr = ldap_search($ds, "", "uid={$login_ldap}", array()); if (!$sr) { zamgerlog("ldap_search() nije uspio.", 3); zamgerlog2("ldap_search() nije uspio."); niceerror("ldap_search() nije uspio - nastavljam dalje bez provjere"); break; } $results = ldap_get_entries($ds, $sr); if ($results['count'] > 0) { nicemessage("Login '{$login}' pronađen na LDAP serveru"); break; } // Pokušavamo mail alias $sr = ldap_search($ds, "", "mail={$login_ldap}{$conf_ldap_domain}", array()); if (!$sr) { zamgerlog("ldap_search() 2 nije uspio.", 3); zamgerlog2("ldap_search() nije uspio."); niceerror("ldap_search() nije uspio - nastavljam dalje bez provjere"); break; } $results = ldap_get_entries($ds, $sr); // pretpostavka je da će druga pretraga raditi if ($results['count'] > 0) { nicemessage("Email '{$login}{$conf_ldap_domain}' pronađen na LDAP serveru"); } else { zamgerlog("login ne postoji na LDAPu ({$login})", 3); zamgerlog2("login ne postoji na LDAPu", 0, 0, 0, $login); niceerror("Predloženi login ({$login}) nije pronađen na LDAP serveru!"); print "<p>Nastaviću dalje sa dodavanjem logina, ali korisnik vjerovatno neće moći pristupiti Zamgeru.</p>"; } } while (false); } // Dodavanje novog logina $q120 = myquery("insert into auth set id={$osoba}, login='******', password='******', aktivan={$aktivan}"); nicemessage("Uspješno kreiran novi login za korisnika"); zamgerlog("dodan novi login '{$login}' za korisnika u{$osoba}", 4); zamgerlog2("dodan novi login za korisnika", $osoba, 0, 0, $login); } else { // Izmjena starog logina $q123 = myquery("select count(*) from auth where id={$osoba} and login='******'"); if (mysql_result($q123, 0, 0) < 1) { niceerror("Nije pronađen login... molimo pokušajte ponovo"); zamgerlog("nije pronadjen stari login '{$stari_login}' za korisnika u{$osoba}", 3); zamgerlog2("nije pronadjen stari login za korisnika", $osoba); } else { if ($_REQUEST['brisanje'] == " Obriši ") { $q125 = myquery("delete from auth where id={$osoba} and login='******'"); nicemessage("Uspješno obrisan login '{$stari_login}'"); zamgerlog("obrisan login '{$stari_login}' za korisnika u{$osoba}", 4); zamgerlog2("obrisan login za korisnika", $osoba, 0, 0, $stari_login); } else { $q127 = myquery("update auth set login='******', password='******', aktivan={$aktivan} where id={$osoba} and login='******'"); nicemessage("Uspješno izmijenjen login '{$login}'"); zamgerlog("izmijenjen login '{$stari_login}' u '{$login}' za korisnika u{$osoba}", 4); zamgerlog2("izmijenjen login za korisnika", $osoba, 0, 0, $login); } } } } } // if ($_REQUEST['subakcija'] == "auth") // Pojednostavljena promjena podataka za studentsku službu u slučaju korištenja // eksterne baze korisnika if ($_POST['subakcija'] == "auth_ldap" && check_csrf_token()) { $aktivan = intval($_REQUEST['aktivan']); // Postoji li zapis u tabeli auth? $q103 = myquery("select count(*) from auth where id={$osoba}"); if (mysql_result($q103, 0, 0) > 0) { // Da! // Ako isključujemo pristup, stavljamo aktivan na 0 if ($aktivan != 0) { $q105 = myquery("update auth set aktivan=0 where id={$osoba}"); zamgerlog("ukinut login za korisnika u{$osoba} (ldap)", 4); zamgerlog2("ukinut login za korisnika (ldap)", $osoba); } else { $q105 = myquery("update auth set aktivan=1 where id={$osoba}"); zamgerlog("aktiviran login za korisnika u{$osoba} (ldap)", 4); zamgerlog2("aktiviran login za korisnika (ldap)", $osoba); } } else { if ($aktivan != 0) { // Nema zapisa u tabeli auth // Ako je izabrano isključenje pristupa, ne radimo nista // (ne bi se smjelo desiti) // U suprotnom kreiramo login // predloženi login $suggest_login = gen_ldap_uid($osoba); // Tražimo ovaj login na LDAPu... $ds = ldap_connect($conf_ldap_server); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); if (!ldap_bind($ds)) { zamgerlog("Ne mogu se spojiti na LDAP server", 3); // 3 - greska zamgerlog2("ne mogu se spojiti na LDAP server"); niceerror("Ne mogu se spojiti na LDAP server"); return; } $sr = ldap_search($ds, "", "uid={$suggest_login}", array()); if (!$sr) { zamgerlog("ldap_search() nije uspio.", 3); zamgerlog2("ldap_search() nije uspio."); niceerror("ldap_search() nije uspio."); return; } $results = ldap_get_entries($ds, $sr); if ($results['count'] < 1) { zamgerlog("login ne postoji na LDAPu ({$suggest_login})", 3); zamgerlog2("login ne postoji na LDAPu", 0, 0, 0, $suggest_login); niceerror("Predloženi login ({$suggest_login}) nije pronađen na LDAP serveru!"); print "<p>Da li ste uspravno unijeli broj indeksa, ime i prezime? Ako jeste, kontaktirajte administratora!</p>"; // Nastavljamo dalje sa edit akcijom kako bi studentska mogla popraviti podatke } else { // Dodajemo login, ako nije podešen $q110 = myquery("select login, aktivan from auth where id={$osoba}"); if (mysql_num_rows($q110) == 0) { $q111 = myquery("insert into auth set id={$osoba}, login='******', aktivan=1"); zamgerlog("kreiran login za korisnika u{$osoba} (ldap - upis u tabelu)", 4); zamgerlog2("kreiran login za korisnika (ldap - upis u tabelu)", $osoba); } else { if (mysql_result($q110, 0, 0) == "") { $q112 = myquery("update auth set login='******' where id={$osoba}"); zamgerlog("kreiran login za korisnika u{$osoba} (ldap - postavljeno polje login)", 4); zamgerlog2("kreiran login za korisnika (ldap - postavljeno polje login)", $osoba); } if (mysql_result($q110, 0, 1) == 0) { $q113 = myquery("update auth set aktivan=1 where id={$osoba}"); zamgerlog("kreiran login za korisnika u{$osoba} (ldap - aktivan=1)", 4); zamgerlog2("kreiran login za korisnika (ldap - aktivan=1)", $osoba); } } // Generišemo email adresu ako nije podešena $email_adresa = $suggest_login . $conf_ldap_domain; $q115 = myquery("select sistemska from email where osoba={$osoba} and adresa='{$email_adresa}'"); if (mysql_num_rows($q115) < 1) { $q114 = myquery("insert into email set osoba={$osoba}, adresa='{$email_adresa}', sistemska=1"); zamgerlog("dodana sistemska email adresa za u{$osoba}", 2); zamgerlog2("sistemska email adresa dodana", $osoba, intval(mysql_insert_id()), 0, "{$email_adresa}"); } else { if (mysql_result($q115, 0, 0) == 0) { $q114 = myquery("update email set sistemska=1 where email='{$email_adresa}' and osoba={$osoba}"); zamgerlog("email adresa proglasena za sistemsku za u{$osoba}", 2); zamgerlog2("email adresa proglasena za sistemsku", $osoba, 0, 0, "{$email_adresa}"); } } } } } // else if ($pristup!=0) } // if ($_REQUEST['subakcija'] == "auth") // Upis studenta na predmet if ($_POST['subakcija'] == "upisi" && check_csrf_token()) { $predmet = intval($_POST['predmet']); if ($predmet == 0) { nicemessage("Niste izabrali predmet"); } else { $q130 = myquery("select count(*) from student_predmet where student={$osoba} and predmet={$predmet}"); if (mysql_result($q130, 0, 0) < 1) { upis_studenta_na_predmet($osoba, $predmet); zamgerlog("student u{$osoba} upisan na predmet p{$predmet}", 4); zamgerlog2("student upisan na predmet (manuelno 2)", $osoba, $predmet); $q136 = myquery("select p.naziv from predmet as p, ponudakursa as pk where pk.id={$predmet} and pk.predmet=p.id"); $naziv_predmeta = mysql_result($q136, 0, 0); nicemessage("Student upisan na predmet {$naziv_predmeta}."); } } } // Dodjela prava nastavniku na predmetu if ($_POST['subakcija'] == "daj_prava" && check_csrf_token()) { $predmet = intval($_POST['predmet']); $q115 = myquery("select naziv from predmet where id={$predmet}"); $naziv_predmeta = mysql_result($q115, 0, 0); $q130 = myquery("replace nastavnik_predmet set nastavnik={$osoba}, predmet={$predmet}, akademska_godina={$id_ak_god}, nivo_pristupa='asistent'"); zamgerlog("nastavniku u{$osoba} data prava na predmetu pp{$predmet} (admin: {$admin_predmeta}, akademska godina: {$id_ak_god})", 4); zamgerlog2("nastavniku data prava na predmetu", $osoba, $predmet, intval($id_ak_god)); nicemessage("Nastavniku su dodijeljena prava na predmetu {$naziv_predmeta}."); print "<p>Kliknite na naziv predmeta na spisku ispod kako biste detaljnije podesili privilegije.</p>"; } // Angažman nastavnika na predmetu if ($_POST['subakcija'] == "angazuj" && check_csrf_token()) { $predmet = intval($_POST['predmet']); $status = intval($_POST['_lv_column_angazman_status']); $angazman_ak_god = intval($_POST['_lv_column_akademska_godina']); $q115 = myquery("select naziv from predmet where id={$predmet}"); $naziv_predmeta = mysql_result($q115, 0, 0); $q130 = myquery("replace angazman set osoba={$osoba}, predmet={$predmet}, akademska_godina={$angazman_ak_god}, angazman_status={$status}"); zamgerlog("nastavnik u{$osoba} angazovan na predmetu pp{$predmet} (status: {$status}, akademska godina: {$id_ak_god})", 4); zamgerlog2("nastavnik angazovan na predmetu", $osoba, $predmet, intval($id_ak_god)); nicemessage("Nastavnik angažovan na predmetu {$naziv_predmeta}."); print "<p>Kliknite na naziv predmeta na spisku ispod kako biste detaljnije podesili privilegije.</p>"; } // Promjena uloga korisnika if ($_POST['subakcija'] == "uloga" && check_csrf_token()) { if (!$user_siteadmin) { niceerror("Nemate pravo na promjenu uloga!"); return; } $korisnik['student'] = $korisnik['nastavnik'] = $korisnik['prijemni'] = $korisnik['studentska'] = $korisnik['siteadmin'] = 0; $q150 = myquery("select privilegija from privilegije where osoba={$osoba}"); while ($r150 = mysql_fetch_row($q150)) { if ($r150[0] == "student") { $korisnik['student'] = 1; } if ($r150[0] == "nastavnik") { $korisnik['nastavnik'] = 1; } if ($r150[0] == "prijemni") { $korisnik['prijemni'] = 1; } if ($r150[0] == "studentska") { $korisnik['studentska'] = 1; } if ($r150[0] == "siteadmin") { $korisnik['siteadmin'] = 1; } } foreach ($korisnik as $privilegija => $vrijednost) { if ($_POST[$privilegija] == "1" && $vrijednost == 0) { $q151 = myquery("insert into privilegije set osoba={$osoba}, privilegija='{$privilegija}'"); zamgerlog("osobi u{$osoba} data privilegija {$privilegija}", 4); zamgerlog2("osobi data privilegija", $osoba, 0, 0, $privilegija); nicemessage("Data privilegija {$privilegija}"); } if ($_POST[$privilegija] != "1" && $vrijednost == 1) { $q151 = myquery("delete from privilegije where osoba={$osoba} and privilegija='{$privilegija}'"); zamgerlog("osobi u{$osoba} oduzeta privilegija {$privilegija}", 4); zamgerlog2("osobi oduzeta privilegija", $osoba, $privilegija); nicemessage("Oduzeta privilegija {$privilegija}"); } } } // Osnovni podaci $q200 = myquery("select ime, prezime, 1, brindexa, UNIX_TIMESTAMP(datum_rodjenja), mjesto_rodjenja, jmbg, drzavljanstvo, adresa, adresa_mjesto, telefon, kanton, strucni_stepen, naucni_stepen, slika from osoba where id={$osoba}"); if (!($r200 = mysql_fetch_row($q200))) { zamgerlog("nepostojeca osoba u{$osoba}", 3); zamgerlog2("nepostojeca osoba", $osoba); niceerror("Nepostojeća osoba!"); return; } $ime = mysql_result($q200, 0, 0); $prezime = mysql_result($q200, 0, 1); $slika = mysql_result($q200, 0, 14); // Pripremam neke podatke za ispis // Ovo nije u istom upitu jer nije pravi FK, podaci ne moraju biti definisani // TODO dodati polje "nedefinisano" u sve tabele, po mogućnosti sa IDom nula $mjesto_rodj = ""; if (mysql_result($q200, 0, 5) != 0) { $q201 = myquery("select naziv from mjesto where id=" . mysql_result($q200, 0, 5)); $mjesto_rodj = mysql_result($q201, 0, 0); } $drzavljanstvo = ""; if (mysql_result($q200, 0, 7) != 0) { $q202 = myquery("select naziv from drzava where id=" . mysql_result($q200, 0, 7)); $drzavljanstvo = mysql_result($q202, 0, 0); } $adresa = mysql_result($q200, 0, 8); if (mysql_result($q200, 0, 9) != 0) { $q203 = myquery("select naziv from mjesto where id=" . mysql_result($q200, 0, 9)); $adresa .= ", " . mysql_result($q203, 0, 0); } $kanton = ""; if (mysql_result($q200, 0, 11) > 0) { $q205 = myquery("select naziv from kanton where id=" . mysql_result($q200, 0, 11)); $kanton = mysql_result($q205, 0, 0); } if (mysql_result($q200, 0, 12) != 0) { $q206 = myquery("select naziv from strucni_stepen where id=" . mysql_result($q200, 0, 12)); $strucni_stepen = mysql_result($q206, 0, 0); } if (mysql_result($q200, 0, 13) != 0) { $q207 = myquery("select naziv from naucni_stepen where id=" . mysql_result($q200, 0, 13)); $naucni_stepen = mysql_result($q207, 0, 0); } // Spisak mailova $q260 = myquery("select adresa from email where osoba={$osoba}"); $email_adrese = ""; while ($r260 = mysql_fetch_row($q260)) { if ($email_adrese !== "") { $email_adrese .= ", "; } $email_adrese .= $r260[0]; } ?> <h2><?php echo $ime; ?> <?php echo $prezime; ?> </h2> <?php if ($slika != "") { print "<img src=\"?sta=common/slika&osoba={$osoba}\"><br/>\n"; } ?> <table border="0" width="600"><tr><td valign="top"> Ime: <b><?php echo $ime; ?> </b><br/> Prezime: <b><?php echo $prezime; ?> </b><br/> Broj indexa (za studente): <b><?php echo mysql_result($q200, 0, 3); ?> </b><br/> JMBG: <b><?php echo mysql_result($q200, 0, 6); ?> </b><br/> <br/> Datum rođenja: <b><?php if (mysql_result($q200, 0, 4)) { print date("d. m. Y.", mysql_result($q200, 0, 4)); } ?> </b><br/> Mjesto rođenja: <b><?php echo $mjesto_rodj; ?> </b><br/> Državljanstvo: <b><?php echo $drzavljanstvo; ?> </b><br/> </td><td valign="top"> Adresa: <b><?php echo $adresa; ?> </b><br/> Kanton: <b><?php echo $kanton; ?> </b><br/> Telefon: <b><?php echo mysql_result($q200, 0, 10); ?> </b><br/> Kontakt e-mail: <b><?php echo $email_adrese; ?> </b><br/> <br/> Stručni stepen: <b><?php echo $strucni_stepen; ?> </b><br/> Naučni stepen: <b><?php echo $naucni_stepen; ?> </b><br/> <br/> ID: <b><?php echo $osoba; ?> </b><br/> <br/> </form> <form action="index.php" method="GET"> <input type="hidden" name="sta" value="common/profil"> <input type="hidden" name="osoba" value="<?php echo $osoba; ?> "> <input type="Submit" value=" Izmijeni "></form></td> </tr></table> <?php // Login&password if ($conf_system_auth == "table" || $user_siteadmin) { print "<p>Korisnički pristup:\n"; $q201 = myquery("select aktivan from auth where id={$osoba} and aktivan=1"); if (mysql_num_rows($q201) < 1) { print "<font color=\"red\">NEMA</font>"; } ?> </p> <table border="0"> <tr> <td>Korisničko ime:</td> <td width="80">Šifra:</td> <td>Aktivan:</td> <td> </td> </tr> <?php $q201 = myquery("select login,password,aktivan from auth where id={$osoba}"); while ($r201 = mysql_fetch_row($q201)) { $login = $r201[0]; $password = $r201[1]; $pristup = $r201[2]; ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="auth"> <input type="hidden" name="stari_login" value="<?php echo $login; ?> "> <tr> <td><input type="text" size="10" name="login" value="<?php echo $login; ?> "></td> <td valign="center"><?php if ($conf_system_auth == "ldap") { print "<b>LDAP</b>"; } else { ?> <input type="password" size="10" name="password" value="<?php echo $password; ?> "><?php } ?> </td> <td><input type="checkbox" size="10" name="aktivan" value="1" <?php if ($pristup == 1) { print "CHECKED"; } ?> ></td> <td><input type="Submit" value=" Izmijeni "> <input type="Submit" name="brisanje" value=" Obriši "></td> </tr></form> <?php } ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="auth"> <input type="hidden" name="stari_login" value=""> <tr> <td><input type="text" size="10" name="login" value=""></td> <td><?php if ($conf_system_auth == "ldap") { print "<b>LDAP</b>"; } else { ?> <input type="password" size="10" name="password" value=""><?php } ?> </td> <td><input type="checkbox" size="10" name="aktivan" value="1"></td> <td><input type="Submit" value=" Dodaj novi "></td> </tr></form></table> <?php } else { if ($conf_system_auth == "ldap") { $q201 = myquery("select aktivan from auth where id={$osoba} and aktivan=1"); if (mysql_num_rows($q201) > 0) { $pristup = 1; } else { $pristup = 0; } ?> <script language="JavaScript"> function upozorenje(pristup) { document.authforma.pristup.value=pristup; document.authforma.submit(); } </script> <?php echo genform("POST", "authforma"); ?> <input type="hidden" name="subakcija" value="auth_ldap"> <input type="hidden" name="pristup" value=""> </form> <table border="0"> <tr> <td colspan="5">Korisnički pristup: <input type="checkbox" name="aktivan" onchange="javascript:upozorenje('<?php echo $pristup; ?> ');" <?php if ($pristup == 1) { print "CHECKED"; } ?> ></td> </tr></table></form> <?php } } // Uloge korisnika $korisnik_student = $korisnik_nastavnik = $korisnik_prijemni = $korisnik_studentska = $korisnik_siteadmin = 0; print "<p>Tip korisnika: "; $q209 = myquery("select privilegija from privilegije where osoba={$osoba}"); while ($r209 = mysql_fetch_row($q209)) { if ($r209[0] == "student") { print "<b>student,</b> "; $korisnik_student = 1; } if ($r209[0] == "nastavnik") { print "<b>nastavnik,</b> "; $korisnik_nastavnik = 1; } if ($r209[0] == "prijemni") { print "<b>kandidat na prijemnom ispitu,</b> "; $korisnik_prijemni = 1; } if ($r209[0] == "studentska") { print "<b>uposlenik studentske službe,</b> "; $korisnik_studentska = 1; } if ($r209[0] == "siteadmin") { print "<b>administrator,</b> "; $korisnik_siteadmin = 1; } } print "</p>\n"; // Admin dio if ($user_siteadmin) { unset($_REQUEST['student'], $_REQUEST['nastavnik'], $_REQUEST['prijemni'], $_REQUEST['studentska'], $_REQUEST['siteadmin']); ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="uloga"> <input type="checkbox" name="student" value="1" <?php if ($korisnik_student == 1) { print "CHECKED"; } ?> > Student <input type="checkbox" name="nastavnik" value="1" <?php if ($korisnik_nastavnik == 1) { print "CHECKED"; } ?> > nastavnik <input type="checkbox" name="prijemni" value="1" <?php if ($korisnik_prijemni == 1) { print "CHECKED"; } ?> > prijemni <input type="checkbox" name="studentska" value="1" <?php if ($korisnik_studentska == 1) { print "CHECKED"; } ?> > studentska <input type="checkbox" name="siteadmin" value="1" <?php if ($korisnik_siteadmin == 1) { print "CHECKED"; } ?> > siteadmin<br/> <input type="submit" value=" Promijeni "> </form> <?php } // STUDENT if ($korisnik_student) { ?> <hr> <h3>STUDENT</h3> <?php // Trenutno upisan na semestar: $q220 = myquery("SELECT s.naziv, ss.semestar, ss.akademska_godina, ag.naziv, s.id, ts.trajanje, ns.naziv, ts.ciklus \n\t\tFROM student_studij as ss, studij as s, akademska_godina as ag, tipstudija as ts, nacin_studiranja as ns \n\t\tWHERE ss.student={$osoba} and ss.studij=s.id and ag.id=ss.akademska_godina and s.tipstudija=ts.id and ss.nacin_studiranja=ns.id \n\t\tORDER BY ag.naziv DESC"); $studij = "0"; $studij_id = $semestar = 0; $puta = 1; // Da li je ikada slusao nesto? $ikad_studij = $ikad_studij_id = $ikad_semestar = $ikad_ak_god = $ikad_ciklus = 0; while ($r220 = mysql_fetch_row($q220)) { if ($r220[2] == $id_ak_god && $r220[1] > $semestar) { //trenutna akademska godina $studij = $r220[0]; $semestar = $r220[1]; $studij_id = $r220[4]; $studij_trajanje = $r220[5]; $nacin_studiranja = "kao {$r220['6']}"; $studij_ciklus = $r220[7]; } else { if ($r220[0] == $studij && $r220[1] == $semestar) { // ponovljeni semestri $puta++; } else { if ($r220[2] > $ikad_ak_god || $r220[2] == $ikad_ak_god && $r220[1] > $ikad_semestar) { $ikad_studij = $r220[0]; $ikad_semestar = $r220[1]; $ikad_ak_god = $r220[2]; $ikad_ak_god_naziv = $r220[3]; $ikad_studij_id = $r220[4]; $ikad_studij_trajanje = $r220[5]; $ikad_ciklus = $r220[7]; } } } } $prepisi_ocjena = ""; if ($ikad_ciklus > 1 || $studij_ciklus > 1) { for ($i = 1; $i <= max($ikad_ciklus, $studij_ciklus); $i++) { $prepisi_ocjena .= "<br><a href=\"?sta=izvjestaj/index2&student={$osoba}&ciklus={$i}\">Samo {$i}. ciklus</a>"; } } // Izvjestaji ?> <div style="float:left; margin-right:10px"> <table width="100" border="1" cellspacing="0" cellpadding="0"> <tr><td bgcolor="#777777" align="center"> <font color="white"><b>IZVJEŠTAJI:</b></font> </td></tr> <tr><td align="center"><a href="?sta=izvjestaj/historija&student=<?php echo $osoba; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Historija</a></td></tr> <tr><td align="center"><a href="?sta=izvjestaj/index2&student=<?php echo $osoba; ?> "> <img src="images/32x32/izvjestaj.png" border="0"><br/>Prepis ocjena</a> <?php echo $prepisi_ocjena; ?> </td></tr> <tr><td align="center"><a href="?sta=izvjestaj/progress&student=<?php echo $osoba; ?> &razdvoji_ispite=0"> <img src="images/32x32/izvjestaj.png" border="0"><br/>Bodovi</a></td></tr> <tr><td align="center"><a href="?sta=izvjestaj/progress&student=<?php echo $osoba; ?> &razdvoji_ispite=1"> <img src="images/32x32/izvjestaj.png" border="0"><br/>Bodovi + nepoloženi ispiti</a></td></tr> </table> </div> <?php // Trenutno slusa studij $nova_ak_god = 0; ?> <p align="left">Trenutno (<b><?php echo $naziv_ak_god; ?> </b>) upisan/a na:<br/> <?php if ($studij == "0") { ?> Nije upisan/a niti u jedan semestar!</p> <?php // Proglasavamo zadnju akademsku godinu koju je slusao za tekucu // a tekucu za novu $nova_ak_god = $id_ak_god; $naziv_nove_ak_god = $naziv_ak_god; if ($ikad_semestar != 0) { // Ako je covjek upisan u buducu godinu, onda je u toku upis if ($ikad_ak_god > $id_ak_god) { $nova_ak_god = $ikad_ak_god; $naziv_nove_ak_god = $ikad_ak_god_naziv; $semestar = $ikad_semestar - 1; // da se ne bi ispisivalo da drugi put sluša } else { $id_ak_god = $ikad_ak_god; $naziv_ak_god = $ikad_ak_god_naziv; $semestar = $ikad_semestar; if ($semestar % 2 != 0) { $semestar++; } // Da ga ne bi pokušavalo upisati u parni semestar } // Zelimo da se provjeri ECTS: $studij = $ikad_studij; $studij_id = $ikad_studij_id; $studij_trajanje = $ikad_studij_trajanje; } else { // Nikada nije slušao ništa - ima li podataka o prijemnom ispitu? $q225 = myquery("select pt.akademska_godina, ag.naziv, s.id, s.naziv from prijemni_termin as pt, prijemni_prijava as pp, akademska_godina as ag, studij as s where pp.osoba={$osoba} and pp.prijemni_termin=pt.id and pt.akademska_godina=ag.id and pp.studij_prvi=s.id order by ag.id desc, pt.id desc limit 1"); if (mysql_num_rows($q225) > 0) { $nova_ak_god = mysql_result($q225, 0, 0); $naziv_nove_ak_god = mysql_result($q225, 0, 1); $novi_studij = mysql_result($q225, 0, 3); $novi_studij_id = mysql_result($q225, 0, 2); } } } else { ?> <b>"<?php echo $studij; ?> "</b>, <?php echo $semestar; ?> . semestar (<?php echo $puta; ?> . put) <?php echo $nacin_studiranja; ?> (<a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=ispis&studij=<?php echo $studij_id; ?> &semestar=<?php echo $semestar; ?> &godina=<?php echo $id_ak_god; ?> ">ispiši sa studija</a>)</p> <?php $q230 = myquery("select id, naziv from akademska_godina where id={$id_ak_god}+1"); if (mysql_num_rows($q230) > 0) { $nova_ak_god = mysql_result($q230, 0, 0); $naziv_nove_ak_god = mysql_result($q230, 0, 1); } } // UPIS U SLJEDEĆU AK. GODINU // Aktivni moduli $modul_uou = $modul_kolizija = 0; foreach ($registry as $r) { if ($r[0] == "student/ugovoroucenju") { $modul_uou = 1; } if ($r[0] == "student/kolizija") { $modul_kolizija = 1; } } if ($nova_ak_god != 0) { // Ne prikazuj podatke o upisu dok se ne kreira nova ak. godina ?> <p>Upis u akademsku <b><?php echo $naziv_nove_ak_god; ?> </b> godinu:<br /> <?php // Da li je vec upisan? $q235 = myquery("select s.naziv, ss.semestar, s.id from student_studij as ss, studij as s where ss.student={$osoba} and ss.studij=s.id and ss.akademska_godina={$nova_ak_god} order by ss.semestar desc"); if (mysql_num_rows($q235) > 0) { $novi_studij = mysql_result($q235, 0, 0); $novi_semestar = mysql_result($q235, 0, 1); $novi_studij_id = mysql_result($q235, 0, 2); if ($novi_semestar <= $semestar && $novi_studij == $studij) { $nputa = $puta + 1; } else { $nputa = 1; } ?> Student je upisan na studij: <b><?php echo $novi_studij; ?> </b>, <?php echo $novi_semestar; ?> . semestar (<?php echo $nputa; ?> . put). (<a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=ispis&studij=<?php echo $novi_studij_id; ?> &semestar=<?php echo $novi_semestar; ?> &godina=<?php echo $nova_ak_god; ?> ">ispiši sa studija</a>)</p><?php } else { // Ima li uslove za upis if ($semestar == 0 && $ikad_semestar == 0) { // Upis na prvu godinu ?> Nemamo podataka da je ovaj student ikada bio upisan na fakultet.</p><?php if ($novi_studij_id) { // Podatak sa prijemnog ?> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $novi_studij_id; ?> &semestar=1&godina=<?php echo $nova_ak_god; ?> ">Upiši studenta na <?php echo $novi_studij; ?> , 1. semestar.</a></p> <?php } else { ?> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $novi_studij_id; ?> &semestar=1&godina=<?php echo $nova_ak_god; ?> ">Upiši studenta na Prvu godinu studija, 1. semestar.</a></p> <?php } } else { if ($studij == "0") { if ($ikad_semestar % 2 == 0) { $ikad_semestar--; } // Trenutno nije upisan na fakultet, ali upisacemo ga ?> <a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $ikad_studij_id; ?> &semestar=<?php echo $ikad_semestar; ?> &godina=<?php echo $nova_ak_god; ?> ">Ponovo upiši studenta na <?php echo $ikad_studij; ?> , <?php echo $ikad_semestar; ?> . semestar.</a></p> <?php } else { if ($semestar % 2 != 0) { // S neparnog na parni ide automatski ?> Student je stekao uslove za upis na "<?php echo $studij; ?> ", <?php echo $semestar + 1; ?> semestar</p> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $studij_id; ?> &semestar=<?php echo $semestar + 1; ?> &godina=<?php echo $nova_ak_god; ?> ">Upiši studenta na "<?php echo $studij; ?> ", <?php echo $semestar + 1; ?> semestar.</a></p> <?php } else { // Upis na neparni semestar - da li je student dao uslov? $ima_uslov = 0; // Tekst za ono što upisuje if ($semestar == $studij_trajanje) { $sta = "sljedeći ciklus studija"; } else { $sta = ""{$studij}", " . ($semestar + 1) . ". semestar"; } // Pokusacemo odrediti uslov na osnovu polozenih predmeta... // Od predmeta koje je slušao, koliko je pao? $q250 = myquery("select distinct pk.predmet, p.ects, pk.semestar, pk.obavezan, p.naziv from ponudakursa as pk, student_predmet as sp, predmet as p where sp.student={$osoba} and sp.predmet=pk.id and pk.semestar<={$semestar} and pk.studij={$studij_id} and pk.predmet=p.id order by pk.semestar"); $ects_pao = $predmeti_pao = $izborni_pao = $nize_godine = $ects_polozio = 0; while ($r250 = mysql_fetch_row($q250)) { $q260 = myquery("select count(*) from konacna_ocjena where student={$osoba} and predmet={$r250['0']}"); if (mysql_result($q260, 0, 0) < 1) { // Predmet se ne može prenijeti preko dvije godine if ($r250[2] < $semestar - 1) { $nize_godine++; } if ($r250[3] == 1) { // Obavezni predmeti se ne smiju pasti! $ects_pao += $r250[1]; $predmeti_pao++; } else { $izborni_pao++; // Za izborne cemo uporediti sumu ECTSova kasnije } } else { $ects_polozio += $r250[1]; } } // USLOV ZA UPIS // Prema aktuelnom zakonu može se prenijeti tačno jedan predmet, bez obzira na ECTS // No za sljedeći ciklus studija se ne može prenijeti ništa if ($semestar == $studij_trajanje && $predmeti_pao == 0 && ($ects_pao + $ects_polozio) % 60 == 0) { // Ako je student pao izborni predmet pa polozio drugi umjesto njega, vazice // ($ects_pao+$ects_polozio)%60==0 // Zato sto ects_pao = obavezni predmeti tako da ostaju samo izborni predmeti $ima_uslov = 1; } else { if ($semestar < $studij_trajanje && $predmeti_pao <= 1) { // Provjeravamo broj nepolozenih izbornih predmeta i razliku ects-ova if ($predmeti_pao == 0 && (60 - ($ects_pao + $ects_polozio) % 60 < 7 || ($ects_pao + $ects_polozio) % 60 == 0) && $nize_godine == 0) { // nema izbornog predmeta sa 7 ili više kredita $ima_uslov = 1; } else { if ($predmeti_pao == 1 && ($ects_pao + $ects_polozio) % 60 == 0 && $nize_godine == 0) { $ima_uslov = 1; } else { if ($nize_godine > 0) { $niza_godina = ($semestar - 2) / 2; $objasnjenje = "nije položen predmet sa {$niza_godina}. godine"; } else { if ($predmeti_pao == 1) { $objasnjenje = "nepoložen jedan obavezan i jedan ili više izborni predmet"; } else { $objasnjenje = "nepoloženo dva ili više izbornih predmeta"; } $objasnjenje .= ", nedostaje " . (60 - $ects_polozio % 60) . " ECTS kredita"; } } } } else { $objasnjenje = $predmeti_pao + $izborni_pao . " nepoloženih predmeta, nedostaje " . (60 - $ects_polozio % 60) . " ECTS kredita"; } } // Konačan ispis if ($ima_uslov) { ?> Student je stekao/la uslove za upis na <?php echo $sta; ?> </p> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $studij_id; ?> &semestar=<?php echo $semestar + 1; ?> &godina=<?php echo $nova_ak_god; ?> ">Upiši studenta na <?php echo $sta; ?> .</a></p> <?php } else { ?> Student <b>NIJE</b> stekao/la uslove za <?php echo $sta; ?> <br/> (<?php echo $objasnjenje; ?> )</p> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $studij_id; ?> &semestar=<?php echo $semestar - 1; ?> &godina=<?php echo $nova_ak_god; ?> ">Ponovo upiši studenta na <?php echo $studij; ?> , <?php echo $semestar - 1; ?> . semestar (<?php echo $puta + 1; ?> . put).</a></p> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $studij_id; ?> &semestar=<?php echo $semestar + 1; ?> &godina=<?php echo $nova_ak_god; ?> ">Upiši studenta na <?php echo $sta; ?> .</a></p> <?php } } } } } // if ($q235... else ... -- nije vec upisan nigdje // Ugovor o učenju if ($modul_uou == 1) { $q270 = myquery("select s.naziv, u.semestar from ugovoroucenju as u, studij as s where u.student={$osoba} and u.akademska_godina={$nova_ak_god} and u.studij=s.id order by u.semestar"); if (mysql_num_rows($q270) > 0) { $nazivstudijauu = $semestaruu = ""; while ($r270 = mysql_fetch_row($q270)) { $nazivstudijauu = $r270[0]; $semestaruu .= $r270[1] . ". "; } ?> <p>Student je popunio/la <b>Ugovor o učenju</b> za <?php echo $nazivstudijauu; ?> , <?php echo $semestaruu; ?> semestar</p> <?php } else { ?> <p>Student NIJE popunio/la <b>Ugovor o učenju</b> za sljedeću akademsku godinu.</p> <?php } } } // if (mysql_num_rows($q230 -- da li postoji ak. god. iza aktuelne? // Kolizija if ($modul_kolizija == 1) { $q280 = myquery("select count(*) from kolizija where student={$osoba} and akademska_godina={$nova_ak_god}"); $ima_koliziju = 0; if (mysql_result($q280, 0, 0) > 0) { $ima_koliziju = $nova_ak_god; } else { // Probavamo i za trenutnu $q280 = myquery("select count(*) from kolizija where student={$osoba} and akademska_godina={$id_ak_god}"); if (mysql_result($q280, 0, 0) > 0) { $ima_koliziju = $id_ak_god; } } if ($ima_koliziju) { // provjeravamo septembar $kolizija_ok = true; $qc = myquery("select distinct predmet from septembar where student={$osoba} and akademska_godina={$ima_koliziju}"); while ($rc = mysql_fetch_row($qc)) { $predmet = $rc[0]; // Da li ima ocjenu? $qd = myquery("select count(*) from konacna_ocjena where student={$osoba} and predmet={$predmet} and ocjena>=6"); if (mysql_result($qd, 0, 0) > 0) { continue; } // Da li ima septembarskog roka? $qe = myquery("select i.id, k.prolaz from ispit as i, komponenta as k where i.akademska_godina=" . ($ima_koliziju - 1) . " and (MONTH(i.datum)=8 or MONTH(i.datum)=9) and (select count(*) from ispitocjene as io where io.ispit=i.id)>0 and i.predmet={$predmet} and i.komponenta=k.id and k.naziv NOT LIKE 'Usmeni%'"); if (mysql_num_rows($qe) == 0) { continue; } // nema $polozio = false; $septembar_razlog = ""; while ($re = mysql_fetch_row($qe)) { $qf = myquery("select ocjena from ispitocjene where ispit={$re['0']} and student={$osoba}"); if (mysql_num_rows($qf) > 0 && mysql_result($qf, 0, 0) >= $re[1]) { $polozio = true; break; } } if (!$polozio) { $kolizija_ok = false; $qg = myquery("select naziv from predmet where id={$predmet}"); $paopredmet = mysql_result($qg, 0, 0); break; } } if ($kolizija_ok) { ?> <p>Student je popunio/la <b>Zahtjev za koliziju</b>. <a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=kolizija&godina=<?php echo $ima_koliziju; ?> ">Kliknite ovdje da potvrdite upis na kolizione predmete.</a></p> <?php } else { ?> <p>Student je popunio/la <b>Zahtjev za koliziju</b> koji je neispravan (nije položio/la <?php echo $paopredmet; ?> ). Potrebno ga je ponovo popuniti.</p> <?php } } } // Upis studenta na pojedinačne predmete ?> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=predmeti">Manuelni upis studenta na predmete / ispis sa predmeta.</a></p> <?php print "\n<div style=\"clear:both\"></div>\n"; } // STUDENT // NASTAVNIK // Akademska godina se promijenila :( CLEANUP $id_ak_god = $orig_iag; $q399 = myquery("select naziv from akademska_godina where id={$id_ak_god}"); $naziv_ak_god = mysql_result($q399, 0, 0); if ($korisnik_nastavnik) { ?> <br/><hr> <h3>NASTAVNIK</h3> <p><b>Podaci o izboru</b></p> <?php // Izbori $q400 = myquery("select z.naziv, UNIX_TIMESTAMP(i.datum_izbora), UNIX_TIMESTAMP(i.datum_isteka), i.oblast, i.podoblast, i.dopunski, i.druga_institucija from izbor as i, zvanje as z WHERE i.osoba={$osoba} and i.zvanje=z.id order by i.datum_isteka DESC, i.datum_izbora DESC"); if (mysql_num_rows($q400) == 0) { print "<p>Nema podataka o izboru.</p>\n"; } else { $datum_izbora = date("d. m. Y", mysql_result($q400, 0, 1)); if (mysql_result($q400, 0, 1) == 0) { $datum_izbora = "<font color=\"red\">(nepoznato)</font>"; } $datum_isteka = date("d. m. Y", mysql_result($q400, 0, 2)); if (mysql_result($q400, 0, 2) == 0) { $datum_isteka = "Neodređeno"; } $oblast = mysql_result($q400, 0, 3); if ($oblast < 1) { $oblast = "<font color=\"red\">(nepoznato)</font>"; } else { $q410 = myquery("select naziv from oblast where id={$oblast}"); if (mysql_num_rows($q410) < 1) { $oblast = "<font color=\"red\">GREŠKA</font>"; } else { $oblast = mysql_result($q410, 0, 0); } } $podoblast = mysql_result($q400, 0, 4); if ($podoblast < 1) { $podoblast = "<font color=\"red\">(nepoznato)</font>"; } else { $q420 = myquery("select naziv from podoblast where id={$podoblast}"); if (mysql_num_rows($q420) < 1) { $podoblast = "<font color=\"red\">GREŠKA</font>"; } else { $podoblast = mysql_result($q420, 0, 0); } } if (mysql_result($q400, 0, 5) == 0) { $radniodnos = "Stalni"; } else { $radniodnos = "Dopunski"; } ?> <table border="0"> <tr><td>Zvanje:</td><td><?php echo mysql_result($q400, 0, 0); ?> </td></tr> <tr><td>Datum izbora:</td><td><?php echo $datum_izbora; ?> </td></tr> <tr><td>Datum isteka:</td><td><?php echo $datum_isteka; ?> </td></tr> <tr><td>Oblast:</td><td><?php echo $oblast; ?> </td></tr> <tr><td>Podoblast:</td><td><?php echo $podoblast; ?> </td></tr> <tr><td>Radni odnos:</td><td><?php echo $radniodnos; ?> </td></tr> <?php if (mysql_result($q400, 0, 6) == 1) { print "<tr><td colspan=\"2\">Biran/a na drugoj VŠO</td></tr>\n"; } ?> </table> <?php } ?> <p><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=izbori">Izmijenite podatke o izboru ili pogledajte historijske podatke</a></p> <?php // Angažman ?> <p><b>Angažman u nastavi (akademska godina <?php echo $naziv_ak_god; ?> )</b></p> <ul> <?php $q430 = myquery("select p.id, p.naziv, angs.naziv, i.kratki_naziv from angazman as a, angazman_status as angs, predmet as p, institucija as i where a.osoba={$osoba} and a.akademska_godina={$id_ak_god} and a.predmet=p.id and a.angazman_status=angs.id and p.institucija=i.id order by angs.id, p.naziv"); if (mysql_num_rows($q430) < 1) { print "<li>Uposlenik nije angažovan niti na jednom predmetu u ovoj godini.</li>\n"; } while ($r430 = mysql_fetch_row($q430)) { print "<li><a href=\"?sta=studentska/predmeti&akcija=edit&predmet={$r430['0']}&ag={$id_ak_god}\">{$r430['1']} ({$r430['3']})</a> - {$r430['2']}</li>\n"; } // Angažman ?> </ul> <p>Angažuj nastavnika na predmetu: <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="angazuj"> <select name="predmet" class="default"><?php $q190 = myquery("select p.id, p.naziv, i.kratki_naziv from predmet as p, ponudakursa as pk, institucija as i where pk.predmet=p.id and pk.akademska_godina={$id_ak_god} and p.institucija=i.id group by p.id order by p.naziv"); while ($r190 = mysql_fetch_row($q190)) { print "<option value=\"{$r190['0']}\">{$r190['1']} ({$r190['2']})</a>\n"; } ?> </select><br/> <?php echo db_dropdown("angazman_status"); ?> <?php echo db_dropdown("akademska_godina", $id_ak_god); ?> <input type="submit" value=" Dodaj "></form></p> <?php // Prava pristupa ?> <p><b>Prava pristupa (akademska godina <?php echo $naziv_ak_god; ?> )</b></p> <ul> <?php $q180 = myquery("select p.id, p.naziv, np.nivo_pristupa, i.kratki_naziv from nastavnik_predmet as np, predmet as p, institucija as i where np.nastavnik={$osoba} and np.predmet=p.id and np.akademska_godina={$id_ak_god} and p.institucija=i.id order by np.nivo_pristupa, p.naziv"); // FIXME: moze li se ovdje izbaciti tabela ponudakursa? studij ili institucija? if (mysql_num_rows($q180) < 1) { print "<li>Nijedan</li>\n"; } while ($r180 = mysql_fetch_row($q180)) { print "<li><a href=\"?sta=studentska/predmeti&akcija=edit&predmet={$r180['0']}&ag={$id_ak_god}\">{$r180['1']} ({$r180['3']})</a>"; if ($r180[2] == "nastavnik") { print " (Nastavnik)"; } else { if ($r180[2] == "super_asistent") { print " (Super asistent)"; } } print "</li>\n"; } ?> </ul> <p>Za prava pristupa na prethodnim akademskim godinama, koristite pretragu na kartici "Predmeti"<br/></p> <?php // Dodjela prava pristupa ?> <p>Dodijeli prava za predmet: <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="daj_prava"> <select name="predmet" class="default"><?php $q190 = myquery("select p.id, p.naziv, i.kratki_naziv from predmet as p, ponudakursa as pk, institucija as i where pk.predmet=p.id and pk.akademska_godina={$id_ak_god} and p.institucija=i.id group by p.id order by p.naziv"); while ($r190 = mysql_fetch_row($q190)) { print "<option value=\"{$r190['0']}\">{$r190['1']} ({$r190['2']})</a>\n"; } ?> </select> <input type="submit" value=" Dodaj "></form></p> <?php } // PRIJEMNI $q600 = myquery("select prijemni_termin, broj_dosjea, nacin_studiranja, studij_prvi, studij_drugi, studij_treci, studij_cetvrti, izasao, rezultat from prijemni_prijava where osoba={$osoba}"); if (mysql_num_rows($q600) > 0) { ?> <br/><hr> <h3>KANDIDAT NA PRIJEMNOM ISPITU</h3> <?php while ($r600 = mysql_fetch_row($q600)) { $q610 = myquery("select ag.id, ag.naziv, UNIX_TIMESTAMP(pt.datum), pt.ciklus_studija from prijemni_termin as pt, akademska_godina as ag where pt.id={$r600['0']} and pt.akademska_godina=ag.id"); ?> <b>Za akademsku <?php echo mysql_result($q610, 0, 1); ?> godinu (<?php echo mysql_result($q610, 0, 3); ?> . ciklus studija), održan <?php echo date("d. m. Y", mysql_result($q610, 0, 2)); ?> </b> <ul><li><?php if ($r600[7] > 0) { print "{$r600['8']} bodova"; } else { print "(nije izašao/la)"; } ?> </li> <li>Broj dosjea: <?php echo $r600[1]; ?> , <?php $q615 = myquery("select naziv from nacin_studiranja where id={$r600['2']}"); if (mysql_num_rows($q615) > 0) { print mysql_result($q615, 0, 0); } else { print "nepoznato"; } for ($i = 3; $i <= 6; $i++) { if ($r600[$i] > 0) { $q620 = myquery("select kratkinaziv from studij where id=" . $r600[$i]); print ", " . mysql_result($q620, 0, 0); } } ?> </li> <?php // Link na upis prikazujemo samo za ovogodišnji prijemni $godina_prijemnog = mysql_result($q610, 0, 0); // $q630 = myquery("select id from akademska_godina where aktuelna=1"); // $nova_ak_god = mysql_result($q630,0,0)+1; // if ($godina_prijemnog==$nova_ak_god) { // Moguće je da se asistent upisuje na 3. ciklus pa je $korisnik_nastavnik==true if (!$korisnik_student) { ?> <li><a href="?sta=studentska/osobe&osoba=<?php echo $osoba; ?> &akcija=upis&studij=<?php echo $r600[3]; ?> &semestar=1&godina=<?php echo $godina_prijemnog; ?> ">Upiši kandidata na <?php $q630 = myquery("select naziv from studij where id={$r600['3']}"); if (mysql_num_rows($q630) > 0) { print """ . mysql_result($q630, 0, 0) . """; } else { print "prvu godinu studija"; } ?> , 1. semestar, u akademskoj <?php echo mysql_result($q610, 0, 1); ?> godini</a></li> <?php } ?> </ul><?php } $q640 = myquery("select ss.naziv, us.opci_uspjeh, us.kljucni_predmeti, us.dodatni_bodovi, us.ucenik_generacije from srednja_skola as ss, uspjeh_u_srednjoj as us where us.srednja_skola=ss.id and us.osoba={$osoba}"); if (mysql_num_rows($q640) > 0) { ?> <b>Uspjeh u srednjoj školi:</b> <ul> <li>Škola: <?php echo mysql_result($q640, 0, 0); ?> </li> <li>Opći uspjeh: <?php echo mysql_result($q640, 0, 1); ?> . Ključni predmeti: <?php echo mysql_result($q640, 0, 2); ?> . Dodatni bodovi: <?php echo mysql_result($q640, 0, 3); ?> . <?php if (mysql_result($q640, 0, 4) > 0) { print "Učenik generacije."; } ?> </li> </ul> <?php } } ?> </td></tr></table></center><?php // Vanjska tabela } else { $src = my_escape($_REQUEST["search"]); $limit = 20; $offset = intval($_REQUEST["offset"]); // Naucni stepeni $naucni_stepen = array(); $q99 = myquery("select id, titula from naucni_stepen"); while ($r99 = mysql_fetch_row($q99)) { $naucni_stepen[$r99[0]] = $r99[1]; } ?> <p><h3>Studentska služba - Studenti i nastavnici</h3></p> <table width="500" border="0"><tr><td align="left"> <p><b>Pretraži osobe:</b><br/> Unesite dio imena i prezimena ili broj indeksa<br/> <?php echo genform("GET"); ?> <input type="hidden" name="offset" value="0"> <?php /*resetujem offset*/ ?> <input type="text" size="50" name="search" value="<?php if ($src != "sve") { print $src; } ?> "> <input type="Submit" value=" Pretraži "></form> <a href="<?php echo genuri(); ?> &search=sve">Prikaži sve osobe</a><br/><br/> <?php if ($src) { $rezultata = 0; if ($src == "sve") { $q100 = myquery("select count(*) from osoba"); $q101 = myquery("select id, ime, prezime, brindexa, naucni_stepen from osoba order by prezime,ime limit {$offset},{$limit}"); $rezultata = mysql_result($q100, 0, 0); } else { $src = preg_replace("/\\s+/", " ", $src); $src = trim($src); $dijelovi = explode(" ", $src); $query = ""; // Probavamo traziti ime i prezime istovremeno if (count($dijelovi) == 2) { $q100 = myquery("select count(*) from osoba where ime like '%{$dijelovi['0']}%' and prezime like '%{$dijelovi['1']}%'"); $q101 = myquery("select id,ime,prezime,brindexa,naucni_stepen from osoba where ime like '%{$dijelovi['0']}%' and prezime like '%{$dijelovi['1']}%' order by prezime,ime limit {$offset},{$limit}"); if (mysql_result($q100, 0, 0) == 0) { $q100 = myquery("select count(*) from osoba where ime like '%{$dijelovi['1']}%' and prezime like '%{$dijelovi['0']}%'"); $q101 = myquery("select id,ime,prezime,brindexa,naucni_stepen from osoba where ime like '%{$dijelovi['1']}%' and prezime like '%{$dijelovi['0']}%' order by prezime,ime limit {$offset},{$limit}"); } $rezultata = mysql_result($q100, 0, 0); } // Nismo nasli ime i prezime, pokusavamo bilo koji dio if ($rezultata == 0) { foreach ($dijelovi as $dio) { if ($query != "") { $query .= "or "; } $query .= "ime like '%{$dio}%' or prezime like '%{$dio}%' or brindexa like '%{$dio}%' "; if (intval($dio) > 0) { $query .= "or id=" . intval($dio) . " "; } } $q100 = myquery("select count(*) from osoba where ({$query})"); $q101 = myquery("select id,ime,prezime,brindexa,naucni_stepen from osoba where ({$query}) order by prezime,ime limit {$offset},{$limit}"); $rezultata = mysql_result($q100, 0, 0); } // Nismo nasli nista, pokusavamo login if ($rezultata == 0) { $query = ""; foreach ($dijelovi as $dio) { if ($query != "") { $query .= "or "; } $query .= "a.login like '%{$dio}%' "; } $q100 = myquery("select count(*) from osoba as o, auth as a where ({$query}) and a.id=o.id"); $q101 = myquery("select o.id,o.ime,o.prezime,o.brindexa,o.naucni_stepen from osoba as o, auth as a where ({$query}) and a.id=o.id order by o.prezime,o.ime limit {$offset},{$limit}"); $rezultata = mysql_result($q100, 0, 0); } } if ($rezultata == 0) { print "Nema rezultata!"; } else { if ($rezultata > $limit) { print "Prikazujem rezultate " . ($offset + 1) . "-" . ($offset + 20) . " od {$rezultata}. Stranica: "; for ($i = 0; $i < $rezultata; $i += $limit) { $br = intval($i / $limit) + 1; if ($i == $offset) { print "<b>{$br}</b> "; } else { print "<a href=\"" . genuri() . "&offset={$i}\">{$br}</a> "; } } print "<br/>"; } } // else // print "$rezultata rezultata:"; print "<br/>"; print '<table width="100%" border="0">'; $i = $offset + 1; while ($r101 = mysql_fetch_row($q101)) { print "<tr "; if ($i % 2 == 0) { print "bgcolor=\"#EEEEEE\""; } print "><td>{$i}. {$r101['2']} "; if ($r101[4] > 0) { print $naucni_stepen[$r101[4]] . " "; } print $r101[1]; if (intval($r101[3]) > 0) { print " ({$r101['3']})"; } print "</td><td><a href=\"" . genuri() . "&akcija=edit&osoba={$r101['0']}\">Detalji</a></td></tr>"; $i++; } print "</table>"; } ?> <br/> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="novi"> <b>Unesite novu osobu:</b><br/> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr><td>Ime<?php if ($conf_system_auth == "ldap") { print " ili login"; } ?> :</td><td>Prezime:</td><td> </td></tr> <tr> <td><input type="text" name="ime" size="15"></td> <td><input type="text" name="prezime" size="15"></td> <td><input type="submit" value=" Dodaj "></td> </tr></table> </form> <?php ?> </td></tr></table> <?php } } } } } } } ?> </td></tr></table></center> <?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 }
echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $form . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n"; } } else { if (first_word($form) == 'video') { db_dropdown('pixie_files', "", $form, "file_type = 'Video' order by file_id desc"); if (!$ie) { echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $form . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n"; } } else { if (first_word($form) == 'audio') { db_dropdown('pixie_files', "", $form, "file_type = 'Audio' order by file_id desc"); if (!$ie) { echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $form . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n"; } } else { db_dropdown('pixie_files', "", $form, "file_id >= '0' order by file_id desc"); if (!$ie) { echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $form . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n"; } } } } } die; } $max_size = 1024 * 100; $multi_upload = new muli_files(); $file_name = $_FILES['upload']['name'][0]; $file_ext = substr(strrchr($file_name, '.'), 1); $file_ext = strtolower($file_ext); if ($file_ext == 'jpg' or $file_ext == 'gif' or $file_ext == 'png') {
function nastavnik_zadace() { global $userid, $user_siteadmin, $conf_files_path; require "lib/manip.php"; require "lib/autotest.php"; global $mass_rezultat; // za masovni unos studenata u grupe global $_lv_; // radi autogenerisanih formi // Parametri potrebni za Moodle integraciju global $conf_moodle, $conf_moodle_url, $conf_moodle_db, $conf_moodle_prefix, $conf_moodle_reuse_connection, $conf_moodle_dbhost, $conf_moodle_dbuser, $conf_moodle_dbpass; global $__lv_connection, $conf_use_mysql_utf8; // Parametri $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // Naziv predmeta $q5 = myquery("select naziv from predmet where id={$predmet}"); if (mysql_num_rows($q5) < 1) { biguglyerror("Nepoznat predmet"); zamgerlog("ilegalan predmet {$predmet}", 3); //nivo 3: greska zamgerlog2("nepoznat predmet", $predmet); return; } $predmet_naziv = mysql_result($q5, 0, 0); // Da li korisnik ima pravo ući u modul? 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 || mysql_result($q10, 0, 0) == "asistent") { zamgerlog("nastavnik/ispiti privilegije (predmet pp{$predmet})", 3); zamgerlog2("nije nastavnik na predmetu", $predmet, $ag); biguglyerror("Nemate pravo pristupa ovoj opciji"); return; } } // Dozvoljene ekstenzije $q13 = myquery("select naziv from ekstenzije"); $dozvoljene_ekstenzije = array(); while ($r13 = mysql_fetch_row($q13)) { array_push($dozvoljene_ekstenzije, $r13[0]); } // Da li predmet posjeduje komponente za zadaće? $q15 = myquery("select k.id, k.naziv from komponenta as k, tippredmeta_komponenta as tpk, akademska_godina_predmet as agp where agp.akademska_godina={$ag} and agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=4"); if (mysql_num_rows($q15) < 1) { zamgerlog("ne postoji komponenta za zadace na predmetu pp{$predmet} ag{$ag}", 3); zamgerlog2("ne postoji komponenta za zadace", $predmet, $ag); niceerror("U sistemu bodovanja za ovaj predmet nije definisana nijedna komponenta zadaće."); print "<p>Da biste nastavili, promijenite <a href=\"?sta=nastavnik/tip?predmet={$predmet}&ag={$ag}\">sistem bodovanja</a> za ovaj predmet.</p>\n"; return; } if (mysql_num_rows($q15) > 1) { niceerror("U sistemu bodovanja za ovaj predmet je definisano više od jedne komponente za zadaće."); print "<p>Ovaj modul trenutno podržava samo jednu komponentu zadaća. Ako imate potrebu za rad sa više od jedne komponente zadaća istovremeno, kontaktirajte administratora Zamgera. U suprotnom, provjerite <a href=\"?sta=nastavnik/tip?predmet={$predmet}&ag={$ag}\">sistem bodovanja</a> za ovaj predmet za slučaj da je ova situacija posljedica greške.</p>\n"; print "<p>Koristićemo komponentu označenu nazivom: <b>" . mysql_result($q15, 0, 1) . "</b></p>"; } $komponenta_za_zadace = mysql_result($q15, 0, 0); ?> <p> </p> <p><h3><?php echo $predmet_naziv; ?> - Zadaće</h3></p> <?php # Masovni unos zadaća if ($_POST['akcija'] == "massinput" && strlen($_POST['nazad']) < 1 && check_csrf_token()) { if ($_POST['fakatradi'] != 1) { $ispis = 1; } else { $ispis = 0; } // Provjera ostalih parametara $zadaca = intval($_REQUEST['_lv_column_zadaca']); $zadatak = intval($_REQUEST['zadatak']); $q20 = myquery("select naziv,zadataka,bodova,komponenta,predmet,akademska_godina from zadaca where id={$zadaca}"); if (mysql_num_rows($q20) < 1) { zamgerlog("nepostojeca zadaca {$zadaca}", 3); // 3 = greška zamgerlog2("nepostojeca zadaca", $zadaca); niceerror("Morate najprije kreirati zadaću"); print "\n<p>Koristite formular "Kreiranje zadaće" koji se nalazi na prethodnoj stranici. Ukoliko ne vidite nijednu zadaću na spisku "Postojeće zadaće", koristite dugme Refresh vašeg web preglednika.</p>\n"; return; } if (mysql_result($q20, 0, 1) < $zadatak) { zamgerlog("zadaca {$zadaca} nema {$zadatak} zadataka", 3); zamgerlog2("zadaca nema toliko zadataka", $zadaca, $zadatak); niceerror("Zadaća \"" . mysql_result($q20, 0, 0) . "\" nema {$zadatak} zadataka."); return; } $maxbodova = mysql_result($q20, 0, 2); $komponenta = mysql_result($q20, 0, 3); // Provjera spoofanja zadaće if ($predmet != mysql_result($q20, 0, 4) || $ag != mysql_result($q20, 0, 5)) { zamgerlog("zadaca z{$zadaca} nije u predmetu pp{$predmet}", 3); zamgerlog2("id zadace i predmeta se ne poklapaju", $zadaca, $predmet, $ag); niceerror("Pogresan ID zadace!"); return; } if ($ispis) { ?> Akcije koje će biti urađene:<br/><br/> <?php echo genform("POST"); ?> <input type="hidden" name="fakatradi" value="1"> <input type="hidden" name="_lv_column_zadaca" value="<?php echo $zadaca; ?> "> <table border="0" cellspacing="1" cellpadding="2"> <!-- FIXME: prebaciti stilove u CSS? --> <thead> <tr bgcolor="#999999"> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Prezime</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Ime</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Bodovi / Komentar</font></td> </tr> </thead> <tbody> <?php } $greska = mass_input($ispis); // Funkcija koja parsira podatke if (count($mass_rezultat) == 0) { niceerror("Niste unijeli ništa."); return; } foreach ($mass_rezultat['ime'] as $student => $ime) { $prezime = $mass_rezultat['prezime'][$student]; $bodova = $mass_rezultat['podatak1'][$student]; $bodova = str_replace(",", ".", $bodova); // Student neocijenjen (prazno mjesto za ocjenu) if (floatval($bodova) == 0 && strpos($bodova, "0") === FALSE) { if ($ispis) { print "Student '{$prezime} {$ime}' - nema zadaću (nije unesen broj bodova {$bodova})<br/>"; } continue; } // Bodovi moraju biti manji od maximalnih borova $bodova = floatval($bodova); if ($bodova > $maxbodova) { if ($ispis) { print "-- Studenta '{$prezime} {$ime}' ima {$bodova} bodova što je više od maksimalnih {$maxbodova}<br/>"; //$greska=1; continue; } } // Zaključak if ($ispis) { print "Student '{$prezime} {$ime}' - zadaća {$zadaca}, bodova {$bodova}<br/>"; } else { // Odredjujemo zadnji filename $q25 = myquery("select filename from zadatak where zadaca={$zadaca} and redni_broj={$zadatak} and student={$student} order by id desc limit 1"); if (mysql_num_rows($q25) > 0) { $filename = mysql_result($q25, 0, 0); } else { $filename = ''; } $status_pregledana = 5; // status 5: pregledana $q30 = myquery("insert into zadatak set zadaca={$zadaca}, redni_broj={$zadatak}, student={$student}, status={$status_pregledana}, bodova={$bodova}, vrijeme=NOW(), filename='{$filename}', userid={$userid}"); zamgerlog2("bodovanje zadace", $student, $zadaca, $zadatak, $bodova); // Treba nam ponudakursa za update komponente $q35 = myquery("select sp.predmet from student_predmet as sp, ponudakursa as pk where sp.student={$student} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); $ponudakursa = mysql_result($q35, 0, 0); update_komponente($student, $ponudakursa, $komponenta); // update statistike } } if ($ispis) { if ($greska == 0) { ?> </tbody></table> <p>Potvrdite upis ispita i bodova ili se vratite na prethodni ekran.</p> <p><input type="submit" name="nazad" value=" Nazad "> <input type="submit" value=" Potvrda"></p> </form> <?php } else { ?> </tbody></table> <p>U unesenim podacima ima grešaka. Da li ste izabrali ispravan format ("Prezime[TAB]Ime" vs. "Prezime Ime")? Vratite se nazad kako biste ovo popravili.</p> <p><input type="submit" name="nazad" value=" Nazad "></p> </form> <?php } return; } else { zamgerlog("masovno upisane zadaće na predmet pp{$predmet}, zadaća z{$zadaca}, zadatak {$zadatak}", 2); // 2 = edit ?> Bodovi iz zadaća su upisani. <script language="JavaScript"> location.href='?sta=nastavnik/zadace&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> '; </script> <?php } } // Akcija za kreiranje nove, promjenu postojeće ili brisanje zadaće if ($_POST['akcija'] == "edit" && $_POST['potvrdabrisanja'] != " Nazad " && check_csrf_token()) { $edit_zadaca = intval($_POST['zadaca']); // Prava pristupa if ($edit_zadaca > 0) { $q86 = myquery("select predmet, akademska_godina from zadaca where id={$edit_zadaca}"); if (mysql_num_rows($q86) < 1) { niceerror("Nepostojeća zadaća sa IDom {$edit_zadaca}"); zamgerlog("promjena nepostojece zadace {$edit_zadaca}", 3); zamgerlog2("nepostojeca zadaca", $edit_zadaca); return 0; } if (mysql_result($q86, 0, 0) != $predmet || mysql_result($q86, 0, 1) != $ag) { niceerror("Zadaća nije sa izabranog predmeta"); zamgerlog("promjena zadace: zadaca {$edit_zadaca} nije sa predmeta pp{$predmet}", 3); zamgerlog2("id zadace i predmeta se ne poklapaju", $edit_zadaca, $predmet, $ag); return 0; } } // Brisanje postavke zadaće (a ne čitave zadaće!) if ($_POST['dugmeobrisi'] == "Obriši") { $q100 = myquery("select postavka_zadace from zadaca where id={$edit_zadaca}"); $filepath = "{$conf_files_path}/zadace/{$predmet}-{$ag}/postavke/" . mysql_result($q100, 0, 0); unlink($filepath); $q110 = myquery("update zadaca set postavka_zadace='' where id={$edit_zadaca}"); nicemessage("Postavka zadaće obrisana"); print "<a href=\"?sta=nastavnik/zadace&predmet={$predmet}&ag={$ag}&_lv_nav_id={$edit_zadaca}\">Nazad</a>\n"; zamgerlog("obrisana postavka zadace z{$edit_zadaca}", 2); zamgerlog2("obrisana postavka zadace", $edit_zadaca); return; } // Brisanje zadaće if ($_POST['brisanje'] == " Obriši ") { if ($edit_zadaca <= 0) { return; } // Ne bi se smjelo desiti $q86 = myquery("select predmet, akademska_godina from zadaca where id={$edit_zadaca}"); if (mysql_num_rows($q86) < 1) { niceerror("Nepostojeća zadaća sa IDom {$edit_zadaca}"); zamgerlog("brisanje nepostojece zadace {$edit_zadaca}", 3); zamgerlog2("nepostojeca zadaca", $edit_zadaca); return 0; } if (mysql_result($q86, 0, 0) != $predmet || mysql_result($q86, 0, 1) != $ag) { niceerror("Zadaća nije sa izabranog predmeta"); zamgerlog("brisanje zadace: zadaca {$edit_zadaca} nije sa predmeta pp{$predmet}", 3); zamgerlog2("id zadace i predmeta se ne poklapaju", $edit_zadaca, $predmet, $ag); return 0; } if ($_POST['potvrdabrisanja'] == " Briši ") { // Brišemo srodne testove $q84 = myquery("delete from autotest_replace where zadaca={$edit_zadaca}"); $q85 = myquery("delete from autotest_rezultat where autotest in (select id from autotest where zadaca={$edit_zadaca})"); $q86 = myquery("delete from autotest where zadaca={$edit_zadaca}"); // Brišemo zadaću $q87 = myquery("delete from zadatak where zadaca={$edit_zadaca}"); $q88 = myquery("delete from zadaca where id={$edit_zadaca}"); zamgerlog("obrisana zadaca {$edit_zadaca} sa predmeta pp{$predmet}", 4); zamgerlog2("obrisana zadaca", $edit_zadaca); nicemessage("Zadaća uspješno obrisana"); ?> <script language="JavaScript"> location.href='?sta=nastavnik/zadace&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> '; </script> <?php return; } else { $q96 = myquery("select count(*) from zadatak where zadaca={$edit_zadaca}"); $broj_zadataka = mysql_result($q96, 0, 0); $q97 = myquery("select count(*) from autotest where zadaca={$edit_zadaca}"); $broj_testova = mysql_result($q97, 0, 0); print genform("POST"); ?> Brisanjem zadaće obrisaćete i sve do sada unesene ocjene i poslane zadatke! Da li ste sigurni da to želite?<br> U pitanju je <b><?php echo $broj_zadataka; ?> </b> jedinstvenih slogova u bazi!<br><br> <?php if ($broj_testova > 0) { ?> Također ćete obrisati i <b><?php echo $broj_testova; ?> </b> testova.<br><br> <?php } ?> <input type="submit" name="potvrdabrisanja" value=" Briši "> <input type="submit" name="potvrdabrisanja" value=" Nazad "> <?php return; } } // Kreiranje ili izmjena zadaće $naziv = trim(my_escape($_POST['naziv'])); $zadataka = intval($_POST['zadataka']); $bodova = floatval(str_replace(",", ".", $_POST['bodova'])); $dan = intval($_POST['day']); $mjesec = intval($_POST['month']); $godina = intval($_POST['year']); $sat = intval($_POST['sat']); $minuta = intval($_POST['minuta']); $sekunda = intval($_POST['sekunda']); if ($_POST['aktivna']) { $aktivna = 1; } else { $aktivna = 0; } if ($_POST['attachment']) { $attachment = 1; } else { $attachment = 0; } $programskijezik = intval($_POST['_lv_column_programskijezik']); if ($_POST['automatsko_testiranje']) { $automatsko_testiranje = 1; } else { $automatsko_testiranje = 0; } $postavka_file = $_FILES['postavka_zadace_file']['name']; if ($postavka_file != "") { if (!file_exists("{$conf_files_path}/zadace/{$predmet}-{$ag}/postavke")) { mkdir("{$conf_files_path}/zadace/{$predmet}-{$ag}/postavke", 0755, true); } copy($_FILES['postavka_zadace_file']['tmp_name'], "{$conf_files_path}/zadace/{$predmet}-{$ag}/postavke/{$postavka_file}"); $sql_add_postavka_file = ", postavka_zadace = '{$postavka_file}'"; } else { $sql_add_postavka_file = ""; } if (intval($_POST['attachment']) == 1 && isset($_POST['dozvoljene_eks'])) { $ekstenzije = array_unique($_POST['dozvoljene_eks']); $dozvoljene_ekstenzije_selected = implode(',', $ekstenzije); } else { $dozvoljene_ekstenzije_selected = null; } // Provjera ispravnosti if (!preg_match("/\\w/", $naziv)) { niceerror("Naziv zadaće nije dobar."); return 0; } if ($zadataka <= 0 || $bodova < 0 || $zadataka > 100 || $bodova > 100) { niceerror("Broj zadataka ili broj bodova nije dobar"); return 0; } if (!checkdate($mjesec, $dan, $godina)) { niceerror("Odabrani datum je nemoguć"); return 0; } if ($sat < 0 || $sat > 24 || $minuta < 0 || $minuta > 60 || $sekunda < 0 || $sekunda > 60) { niceerror("Vrijeme nije dobro"); return 0; } $mysqlvrijeme = time2mysql(mktime($sat, $minuta, $sekunda, $mjesec, $dan, $godina)); // Provjera duplog imena zadace $q90 = myquery("select count(*) from zadaca where naziv like '{$naziv}' and predmet={$predmet} and akademska_godina={$ag} and id!={$edit_zadaca}"); if (mysql_result($q90, 0, 0) > 0) { niceerror("Zadaća pod imenom '{$naziv}' već postoji! Izaberite neko drugo ime."); zamgerlog("zadaca sa nazivom '{$naziv}' vec postoji", 3); return 0; } // Kreiranje nove if ($edit_zadaca == 0) { // $komponenta_za_zadace određena na početku fajla $q92 = myquery("insert into zadaca set predmet={$predmet}, akademska_godina={$ag}, naziv='{$naziv}', zadataka={$zadataka}, bodova={$bodova}, rok='{$mysqlvrijeme}', aktivna={$aktivna}, attachment={$attachment}, programskijezik={$programskijezik}, automatsko_testiranje={$automatsko_testiranje}, dozvoljene_ekstenzije = '{$dozvoljene_ekstenzije_selected}', komponenta={$komponenta_za_zadace} {$sql_add_postavka_file}"); $edit_zadaca = mysql_insert_id(); if ($edit_zadaca == 0) { niceerror("Dodavanje zadaće nije uspjelo"); zamgerlog("dodavanje zadace nije uspjelo pp{$predmet}, naziv '{$naziv}'", 3); zamgerlog2("dodavanje zadace nije uspjelo", $predmet, $zadataka, $bodova, $naziv); } else { nicemessage("Kreirana nova zadaća '{$naziv}'"); zamgerlog("kreirana nova zadaca z{$edit_zadaca}", 2); zamgerlog2("kreirana nova zadaca", $edit_zadaca); } // Izmjena postojece zadace } else { // Ako se smanjuje broj zadataka, moraju se obrisati bodovi $q94 = myquery("select zadataka, komponenta from zadaca where id={$edit_zadaca}"); $oldzadataka = mysql_result($q94, 0, 0); if ($zadataka < $oldzadataka) { // Prilikom brisanja svakog zadatka updatujemo komponentu studenta $komponenta = mysql_result($q94, 0, 1); $q96 = myquery("select id,student from zadatak where zadaca={$edit_zadaca} and redni_broj>{$zadataka} and redni_broj<={$oldzadataka} order by student"); $oldstudent = 0; while ($r96 = mysql_fetch_row($q96)) { $q97 = myquery("delete from zadatak where id={$r96['0']}"); if ($oldstudent != 0 && $oldstudent != $r96[1]) { update_komponente($oldstudent, $predmet, $komponenta); } $oldstudent = $r96[1]; } if ($oldstudent != 0) { // log samo ako je bilo nesto zamgerlog("Smanjen broj zadataka u zadaci z{$edit_zadaca}", 4); zamgerlog2("smanjen broj zadataka u zadaci", $edit_zadaca); } // Brišemo i relevantne testove $q84 = myquery("delete from autotest_replace where zadaca={$edit_zadaca} and zadatak>{$zadataka}"); $q85 = myquery("delete from autotest_rezultat where autotest in (select id from autotest where zadaca={$edit_zadaca} and zadatak>{$zadataka})"); $q86 = myquery("delete from autotest where zadaca={$edit_zadaca} and zadatak>{$zadataka}"); } $q94 = myquery("update zadaca set naziv='{$naziv}', zadataka={$zadataka}, bodova={$bodova}, rok='{$mysqlvrijeme}', aktivna={$aktivna}, attachment={$attachment}, programskijezik={$programskijezik}, automatsko_testiranje={$automatsko_testiranje}, dozvoljene_ekstenzije='{$dozvoljene_ekstenzije_selected}' {$sql_add_postavka_file} where id={$edit_zadaca}"); nicemessage("Ažurirana zadaća '{$naziv}'"); zamgerlog("azurirana zadaca z{$edit_zadaca}", 2); zamgerlog2("azurirana zadaca", $edit_zadaca); } } // Akcija: AUTOTESTOVI if ($_REQUEST['akcija'] == "autotestovi") { $zadaca = intval($_REQUEST['zadaca']); $backLink = "?sta=nastavnik/zadace&predmet={$predmet}&ag={$ag}"; $linkPrefix = "{$backLink}&zadaca={$zadaca}&akcija=autotestovi"; $backLink = "<a href=\"?{$backLink}&_lv_nav_id={$zadaca}\">Nazad na popis zadaća</a>"; // Provjera spoofinga zadaće $q10 = myquery("SELECT COUNT(*) FROM zadaca WHERE id={$zadaca} AND predmet={$predmet} AND akademska_godina={$ag}"); if (mysql_result($q10, 0, 0) == 0) { nicemessage("Nepoznat ID zadaće {$zadaca}."); return; } autotest_admin($zadaca, $linkPrefix, $backLink); return; } // Spisak postojećih zadaća $_lv_["where:predmet"] = $predmet; $_lv_["where:akademska_godina"] = $ag; $_lv_["where:komponenta"] = $komponenta_za_zadace; // određena na početku fajla print "Postojeće zadaće:<br/>\n"; print db_list("zadaca"); // Kreiranje nove zadace ili izmjena postojeće $izabrana = intval($_REQUEST['_lv_nav_id']); if ($izabrana == 0) { $izabrana = intval($edit_zadaca); } if ($izabrana == 0) { ?> <p><hr/></p> <p><b>Kreiranje zadaće</b><br/> <?php $znaziv = $zaktivna = $zattachment = $zjezik = ""; $zzadataka = 0; $zbodova = 0; $tmpvrijeme = time(); } else { ?> <p><hr/></p> <p><b>Izmjena zadaće</b></p> <?php $q100 = myquery("select predmet, akademska_godina, naziv, zadataka, bodova, rok, aktivna, programskijezik, attachment, dozvoljene_ekstenzije, postavka_zadace, automatsko_testiranje from zadaca where id={$izabrana}"); if ($predmet != mysql_result($q100, 0, 0) || $ag != mysql_result($q100, 0, 1)) { niceerror("Zadaća ne pripada vašem predmetu"); zamgerlog("zadaca {$izabrana} ne pripada predmetu pp{$predmet}", 3); zamgerlog2("id zadace i predmeta se ne poklapaju", $izabrana, $predmet, $ag); return; } $znaziv = mysql_result($q100, 0, 2); $zzadataka = intval(mysql_result($q100, 0, 3)); $zbodova = floatval(mysql_result($q100, 0, 4)); $tmpvrijeme = mysql2time(mysql_result($q100, 0, 5)); if (mysql_result($q100, 0, 6) == 1) { $zaktivna = "CHECKED"; } else { $zaktivna = ""; } $zjezik = mysql_result($q100, 0, 7); if (mysql_result($q100, 0, 8) == 1) { $zattachment = "CHECKED"; } else { $zattachment = ""; } $dozvoljene_ekstenzije_selected = mysql_result($q100, 0, 9); $postavka_zadace = mysql_result($q100, 0, 10); $automatsko_testiranje = mysql_result($q100, 0, 11); } $zdan = date('d', $tmpvrijeme); $zmjesec = date('m', $tmpvrijeme); $zgodina = date('Y', $tmpvrijeme); $zsat = date('H', $tmpvrijeme); $zminuta = date('i', $tmpvrijeme); $zsekunda = date('s', $tmpvrijeme); // JavaScript za provjeru validnosti forme ?> <script language="JavaScript"> function IsNumeric(sText) { var ValidChars = "0123456789."; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber;0 } function provjera() { // var forma=document.getElementById("kreiranje_zadace"); var naziv=document.getElementById("naziv"); if (parseInt(naziv.value.length)<1) { alert("Niste unijeli naziv"); naziv.style.border=1; naziv.style.backgroundColor="#FF9999"; naziv.focus(); return false; } var zadataka=document.getElementById("zadataka"); if (!IsNumeric(zadataka.value)) { alert("Neispravan broj zadataka!"); zadataka.style.border=1; zadataka.style.backgroundColor="#FF9999"; zadataka.focus(); return false; } if (parseInt(zadataka.value)<=0) { alert("Broj zadataka u zadaći mora biti veći od nule, npr. 1"); zadataka.style.border=1; zadataka.style.backgroundColor="#FF9999"; zadataka.focus(); return false; } var bodova=document.getElementById("bodova"); if (!IsNumeric(bodova.value)) { alert("Neispravan broj bodova!"); bodova.style.border=1; bodova.style.backgroundColor="#FF9999"; bodova.focus(); return false; } if (parseFloat(bodova.value)<0) { alert("Broj bodova koje nosi zadaća mora biti veći ili jednak nuli, npr. 2 boda"); bodova.style.border=1; bodova.style.backgroundColor="#FF9999"; bodova.focus(); return false; } return true; } function onemoguci_ekstenzije(chk) { var attachment = document.getElementById("attachment"); var dozvoljene_ekstenzije = document.getElementById("dozvoljene_ekstenzije"); var jezik = document.getElementById("_lv_column_programskijezik"); if (attachment.checked) { dozvoljene_ekstenzije.style.display = ''; } else { dozvoljene_ekstenzije.style.display = 'none'; for (i = 0; i < chk.length; i++) chk[i].checked = false; } } </script> <?php // Forma za kreiranje zadaće unset($_REQUEST['aktivna']); unset($_REQUEST['attachment']); unset($_REQUEST['automatsko_testiranje']); print genform("POST", "kreiranje_zadace\" enctype=\"multipart/form-data\" onsubmit=\"return provjera();"); ?> <input type="hidden" name="akcija" value="edit"> <input type="hidden" name="zadaca" value="<?php echo $izabrana; ?> "> Naziv: <input type="text" name="naziv" id="naziv" size="30" value="<?php echo $znaziv; ?> "><br><br> Broj zadataka: <input type="text" name="zadataka" id="zadataka" size="4" value="<?php echo $zzadataka; ?> "> Max. broj bodova: <input type="text" name="bodova" id="bodova" size="3" value="<?php echo $zbodova; ?> "><br><br> Rok za slanje: <?php echo datectrl($zdan, $zmjesec, $zgodina); ?> <input type="text" name="sat" size="1" value="<?php echo $zsat; ?> "> <b>:</b> <input type="text" name="minuta" size="1" value="<?php echo $zminuta; ?> "> <b>:</b> <input type="text" name="sekunda" size="1" value="<?php echo $zsekunda; ?> "> <br><br> <input type="checkbox" name="aktivna" <?php echo $zaktivna; ?> > Aktivna <input type="checkbox" value="1" id="attachment" onclick="onemoguci_ekstenzije(this.form.dozvoljene_eks)" name="attachment" <?php echo $zattachment; ?> > Slanje zadatka u formi attachmenta<br><br> <span id="dozvoljene_ekstenzije" style="display:none" title="Oznacite željene ekstenzije"> Dozvoljene ekstenzije (Napomena: Ukoliko ne odaberete nijednu ekstenziju sve ekstenzije postaju dozvoljene): <?php $dozvoljene_ekstenzije_selected = explode(',', $dozvoljene_ekstenzije_selected); foreach ($dozvoljene_ekstenzije as $doz_ext) { ?> <input type="checkbox" name="dozvoljene_eks[]" <?php if (in_array($doz_ext, $dozvoljene_ekstenzije_selected)) { echo 'checked="checked"'; } ?> value="<?php echo $doz_ext; ?> " /> <?php echo $doz_ext; } ?> <br><br> </span> Programski jezik: <?php echo db_dropdown("programskijezik", $zjezik); ?> <br><br> <?php if ($zjezik != 0) { // Ako nije definisan programski jezik, nećemo ni nuditi automatsko testiranje... ? if ($automatsko_testiranje == 1) { $add_testiranje = "CHECKED"; } else { $add_testiranje = ""; } ?> <input type="checkbox" name="automatsko_testiranje" <?php echo $add_testiranje; ?> > Automatsko testiranje<br> <a href="?sta=nastavnik/zadace&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &zadaca=<?php echo $izabrana; ?> &akcija=autotestovi">Kliknite ovdje da definišete testove</a><br><br> <?php } ?> Postavka zadaće: <?php if ($postavka_zadace == "") { ?> <input type="file" name="postavka_zadace_file" size="45"><?php } else { ?> <a href="?sta=common/attachment&zadaca=<?php echo $izabrana; ?> &tip=postavka"><img src="images/16x16/preuzmi.png" width="16" height="16" border="0"> <?php echo $postavka_zadace; ?> </a> <input type="submit" name="dugmeobrisi" value="Obriši"> <?php } ?> <br><br> <input type="submit" value=" Pošalji "> <input type="reset" value=" Poništi "> <?php if ($izabrana > 0) { ?> <input type="submit" name="brisanje" value=" Obriši "><?php } echo "<script> onemoguci_ekstenzije('');</script>"; ?> </form> <?php /* $_lv_["label:programskijezik"] = "Programski jezik"; $_lv_["label:zadataka"] = "Broj zadataka"; $_lv_["label:bodova"] = "Max. broj bodova"; $_lv_["label:attachment"] = "Slanje zadatka u formi attachmenta"; $_lv_["label:rok"] = "Rok za slanje"; $_lv_["hidden:vrijemeobjave"] = 1; print db_form("zadaca");*/ // Formular za masovni unos zadaća $format = intval($_POST['format']); if (!$_POST['format']) { $q110 = myquery("select vrijednost from preference where korisnik={$userid} and preferenca='mass-input-format'"); if (mysql_num_rows($q110) > 0) { $format = mysql_result($q110, 0, 0); } else { //default vrijednost $format = 0; } } $separator = intval($_POST['separator']); if (!$_POST['separator']) { $q120 = myquery("select vrijednost from preference where korisnik={$userid} and preferenca='mass-input-separator'"); if (mysql_num_rows($q120) > 0) { $separator = mysql_result($q120, 0, 0); } else { //default vrijednost $separator = 0; } } $q130 = myquery("select count(*) from zadaca where predmet={$predmet} and akademska_godina={$ag}"); if (mysql_result($q130, 0, 0) > 0) { ?> <p><hr/></p> <p><b>Masovni unos zadaća</b><br/> <?php print genform("POST"); if (strlen($_POST['nazad']) > 1) { $izabrana = $_POST['_lv_column_zadaca']; } else { $izabrana = -1; } ?> <input type="hidden" name="fakatradi" value="0"> <input type="hidden" name="akcija" value="massinput"> <input type="hidden" name="nazad" value=""> <input type="hidden" name="brpodataka" value="1"> <input type="hidden" name="duplikati" value="0"> Izaberite zadaću: <?php echo db_dropdown("zadaca", $izabrana); ?> Izaberite zadatak: <select name="zadatak"><?php $q112 = myquery("select zadataka from zadaca where predmet={$predmet} and akademska_godina={$ag} order by zadataka desc limit 1"); for ($i = 1; $i <= mysql_result($q112, 0, 0); $i++) { print "<option value=\"{$i}\">{$i}</option>\n"; } ?> </select><br/><br/> <textarea name="massinput" cols="50" rows="10"><?php if (strlen($_POST['nazad']) > 1) { print $_POST['massinput']; } ?> </textarea><br/> <br/>Format imena i prezimena: <select name="format" class="default"> <option value="0" <?php if ($format == 0) { print "SELECTED"; } ?> >Prezime[TAB]Ime</option> <option value="1" <?php if ($format == 1) { print "SELECTED"; } ?> >Ime[TAB]Prezime</option> <option value="2" <?php if ($format == 2) { print "SELECTED"; } ?> >Prezime Ime</option> <option value="3" <?php if ($format == 3) { print "SELECTED"; } ?> >Ime Prezime</option></select> 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/> <input type="submit" value=" Dodaj "> </form></p> <?php } else { ?> <p><hr/></p> <p><b>Masovni unos zadaća NIJE MOGUĆ</b><br/> Najprije kreirajte zadaću koristeći formular iznad</p> <?php } /* // IMPORT ZADAĆA IZ MOODLA //Prikupljanje id-a moodle predmeta iz zamger baze radi poredjenja $q200 = myquery("SELECT moodle_id FROM moodle_predmet_id WHERE predmet='$predmet'"); if ($conf_moodle && mysql_num_rows($q200)>0) { $id_predmeta_value = mysql_result($q200,0,0); // Ima li zadaća u Moodlu? $moodle_con = $__lv_connection; if (!$conf_moodle_reuse_connection) { // Pravimo novu konekciju za moodle, kod iz dbconnect2() u libvedran if (!($moodle_con = mysql_connect($conf_moodle_dbhost, $conf_moodle_dbuser, $conf_moodle_dbpass))) { biguglyerror(mysql_error()); exit; } if (!mysql_select_db($conf_moodle_db, $moodle_con)) { biguglyerror(mysql_error()); exit; } if ($conf_use_mysql_utf8) { mysql_set_charset("utf8",$moodle_con); } } $q300 = mysql_query("SELECT itemname FROM $conf_moodle_db.$conf_moodle_prefix"."grade_items WHERE itemmodule='assignment' AND itemtype='mod'", $moodle_con) or die ("Greska u upitu 300: " .mysql_error()); // Ako nema, ne ispisujemo ništa if (mysql_num_rows($q300)<1) return; $za_value = mysql_fetch_array($q300); print genform("POST"); ?> <p><hr/></p> <h4>Import svih zadaća iz Moodle-a</h4> <p>Klikom na import importuju se sve zadaće za sve studente</p> <p><br/><b>Napomena:</b> Sve zadaće moraju imati ista imena kao u Moodle-u!</p> <input type="hidden" name="akcija" value="import_svih"> <? //Import svih zadaca if ($_POST['akcija'] == "import_svih" && check_csrf_token()) { //Prikupljanje imena zadaca iz Zamger baze $q210 = myquery("SELECT naziv FROM zadaca WHERE predmet='$predmet' AND akademska_godina='$ag'"); if (mysql_num_rows($q210)<1) { niceerror("Nema zadaća u zamgeru"); zamgerlog("predmet pp$predmet ne sadrzi niti jednu zadacu u zamgeru",3); return; } while ($r210 = mysql_fetch_array($q210)) { //Prikupljanje podataka iz Moodle tabele //Prikupljaju se id predmeta, ime zadace i JMBG svih studenata //Posto se pri prikupljanju zadace porede po imenu trebaju imati isti naziv u Moodle-u kao i u Zamgeru $q220 = mysql_query("SELECT c.id, gi.itemname, u.firstname, u.lastname FROM $conf_moodle_db.$conf_moodle_prefix"."grade_grades gg, $conf_moodle_db.$conf_moodle_prefix"."user u, $conf_moodle_db.$conf_moodle_prefix"."grade_items gi, $conf_moodle_db.$conf_moodle_prefix"."course c WHERE gi.itemname = '$r210[0]' AND c.id = '$id_predmeta_value' AND gg.userid=u.id AND gg.itemid=gi.id AND gi.courseid=c.id", $moodle_con) or die ("Greska u upitu 220: " .mysql_error()); if (mysql_num_rows($q220)<1) { niceerror("Nema podataka u Moodle-u"); zamgerlog("Nema podataka u Moodle-u za zadacu $r210[0]",3); return; } //Ubacivanje podataka u zamger tabelu while ($r220 = mysql_fetch_array($q220)) { //$bodovi sadrzi vrijednost zadace iz $row1 za date vrijednosti (trenutni student, trenutna zadaca i trenutni predmet) $q230 = mysql_query("SELECT gg.finalgrade FROM $conf_moodle_db.$conf_moodle_prefix"."grade_grades gg, $conf_moodle_db.$conf_moodle_prefix"."user u, $conf_moodle_db.$conf_moodle_prefix"."grade_items gi, $conf_moodle_db.$conf_moodle_prefix"."course c WHERE gi.itemname='$r220[1]' AND c.id='$r220[0]' AND u.firstname='$r220[2]' AND u.lastname='$r220[3]' AND gg.userid=u.id AND gg.itemid=gi.id AND gi.courseid=c.id", $moodle_con) or die ("Greska u upitu 230: " .mysql_error()); if (mysql_num_rows($q230)<1) { niceerror("Zadaća nema bodova u Moodle-u"); zamgerlog("Zadaca: $r210[0] nema bodova",3); return; } $bodovi_value = mysql_fetch_array($q230); //zadaca_id sadrzi id zadace trenutne vrijednosti u $row1 $q240 = myquery("SELECT z.id FROM zadaca z, moodle_predmet_id p WHERE z.naziv='$r220[1]' AND p.moodle_id='$r220[0]' AND p.predmet=z.predmet"); if (mysql_num_rows($q240)<1) { niceerror("Nema zadaća u zamgeru"); zamgerlog("Predmet $predmet ne sadrzi niti jednu zadacu u zamgeru",3); return; } $zadaca_id_value = mysql_fetch_array($q240); //$student_id vraca id studenta koji se trenutno cita iz $row1 $q250 = myquery("SELECT id FROM osoba WHERE ime='$r220[2]' AND prezime='$r220[3]'"); if (mysql_num_rows($q250)<1) { niceerror("Student ne postoji zamgeru"); zamgerlog("Student $r220[2] $r220[3] ne postoji u zamgeru",3); return; } $student_id_value = mysql_fetch_array($q250); $q260 = "INSERT INTO zadatak (zadaca, redni_broj, student, status, bodova, vrijeme, userid) VALUES ('$zadaca_id_value[0]', '1', '$student_id_value[0]', '5', '$bodovi_value[0]', 'SYSDATE()', '$userid')"; myquery($q260); //upit za dobijanje komponente za zadace $q270 = myquery ("SELECT komponenta FROM zadaca WHERE id=$zadaca_id_value[0]"); if (mysql_num_rows($q270)<1) { niceerror("Nema komponente"); zamgerlog("Nema komponenti u zamgeru",3); return; } $komponenta_value = mysql_fetch_array($q270); // Treba nam ponudakursa za update komponente $q280 = myquery("SELECT sp.predmet FROM student_predmet as sp, ponudakursa as pk WHERE sp.student='$student_id_value[0]' and sp.predmet=pk.id and pk.predmet=$predmet and pk.akademska_godina='$ag'"); $pk_value = mysql_result($q280,0,0); update_komponente($student_id_value[0],$pk_value,$komponenta_value[0]); } } nicemessage("Import uspješan"); zamgerlog("zadace su importovane iz Moodle-a", 2); } ?> <table> <tr> <td><input type="submit" name="sve_zadace" value="Import"><br/></td> </tr> </table> </form> <? // Import pojedinačnih zadaća iz Moodla print genform("POST"); ?> <h4></br>Import zadaća iz Moodle-a sa advanced upload-a</h4> <input type="hidden" name="akcija" value="import_selected"> <input type="hidden" name="moodle_zadace" value="<?=$za_value?>"> <? if ($_POST['akcija'] == "import_selected" && check_csrf_token()) { $q310 = mysql_query("SELECT u.firstname, u.lastname, gi.itemname, gi.grademax FROM $conf_moodle_db.$conf_moodle_prefix"."grade_grades gg, $conf_moodle_db.$conf_moodle_prefix"."user u, $conf_moodle_db.$conf_moodle_prefix"."grade_items gi, $conf_moodle_db.$conf_moodle_prefix"."course c WHERE gi.itemmodule='assignment' AND gi.itemtype='mod' AND c.id = '$id_predmeta_value' AND gg.userid=u.id AND gg.itemid=gi.id AND gi.courseid=c.id", $moodle_con) or die ("Greska u upitu 310: " .mysql_error()); while ($r310 = mysql_fetch_array($q310)) { $q320 = mysql_query("SELECT gg.finalgrade FROM $conf_moodle_db.$conf_moodle_prefix"."grade_grades gg, $conf_moodle_db.$conf_moodle_prefix"."user u, $conf_moodle_db.$conf_moodle_prefix"."grade_items gi, $conf_moodle_db.$conf_moodle_prefix"."course c WHERE gi.itemmodule='assignment' AND c.id='$id_predmeta_value' AND u.firstname='$r310[0]' AND u.lastname='$r310[1]' AND gg.userid=u.id AND gg.itemid=gi.id AND gi.courseid=c.id", $moodle_con) or die ("Greska u upitu 320: " .mysql_error()); if (mysql_num_rows($q320)<1) { niceerror("Zadaća nema bodova u Moodle-u"); zamgerlog("Zadaca: $r310[2] nema bodova",3); return; } $bodovi_value = mysql_fetch_array($q320); $q330 = myquery ("SELECT id FROM komponenta WHERE naziv='Zadace (ETF BSc)'"); if (mysql_num_rows($q330)<1) { niceerror("Nema komponente"); zamgerlog("Nema komponenti u zamgeru",3); return; } $komponenta_value = mysql_fetch_array($q330); $q340 = myquery("SELECT z.id FROM zadaca z, moodle_predmet_id p WHERE z.naziv='$za_value' AND p.moodle_id='$id_predmeta_value' AND p.predmet=z.predmet"); if (mysql_num_rows($q340)<1) { $q350 = myquery ("INSERT INTO zadaca (naziv, predmet, akademska_godina, zadataka, bodova, rok, aktivna, programskijezik, attachment, komponenta, vrijemeobjave) VALUES ('$row1[2]', '$predmet', '$ag', 1, '$r310[3]', 'SYSDATE()', 1, 0, 0, '$komponenta_value[0]', 'SYSDATE()')"); nicemessage("Kreirana nova zadaća '$naziv'"); zamgerlog("kreirana nova zadaca z$edit_zadaca prilikom importa iz Moodla", 2); $q340 = myquery("SELECT z.id FROM zadaca z, moodle_predmet_id p WHERE z.naziv='$za_value' AND p.moodle_id='$id_predmeta_value' AND p.predmet=z.predmet"); } $zadaca_id_value = mysql_fetch_array($q340); $q360 = myquery("SELECT id FROM osoba WHERE ime='$row1[0]' AND prezime='$row1[1]'"); if (mysql_num_rows($q360)<1) { niceerror("Student ne postoji zamgeru"); zamgerlog("Student $row1[2] $row1[3] ne postoji u zamgeru",3); return; } $student_id_value = mysql_fetch_array($q360); $q370 = "INSERT INTO zadatak (zadaca, redni_broj, student, status, bodova, vrijeme, userid) VALUES ('$zadaca_id_value[0]', '1', '$student_id_value[0]', '5', '$bodovi_value[0]', 'SYSDATE()', '$userid')"; myquery($q370); $q380 = myquery("SELECT sp.predmet FROM student_predmet as sp, ponudakursa as pk WHERE sp.student='$student_id_value[0]' and sp.predmet=pk.id and pk.predmet=$predmet and pk.akademska_godina='$ag'"); $pk_value = mysql_result($q380,0,0); update_komponente($student_id_value[0],$pk_value,$komponenta_value[0]); } nicemessage("Import uspješan"); zamgerlog("Zadace su importovane iz Moodle-a", 2); } ?> <table> <tr> <td>Izaberite zadaću: <select name="moodle_zadaca"><? foreach ($za_value as $zaneki) { print "<option value=\"$zaneki\">$zaneki</option>\n"; } ?> </select></td></tr> <tr> <td><input type="submit" name="advanced_zadace" value="Import"><br/></td> </tr> </table> </form> <? // Diskonektujemo moodle if (!$conf_moodle_reuse_connection) { mysql_close($moodle_con); } }*/ }
?> > Dijete šehida / borca / pripadnik RVI </td></tr> <tr><td> Maternji jezik:</td><td><?php echo db_dropdown("maternji_jezik", mysql_result($q400, 0, 21), " "); ?> </td></tr> <tr><td> Vozačka dozvola:</td><td><?php echo db_dropdown("vozacki_kategorija", mysql_result($q400, 0, 22), " "); ?> </td></tr> <tr><td> Način stanovanja:</td><td><?php echo db_dropdown("nacin_stanovanja", mysql_result($q400, 0, 23), " "); ?> </td></tr> <?php if ($user_student && false) { ?> <tr><td colspan="2"> </td></tr> <tr><td colspan="2" bgcolor="#999999"><font color="#FFFFFF">PODACI O PRETHODNOM CIKLUSU STUDIJA:</font></td></tr> <tr><td> Završena srednja škola:</td><td><input type="text" name="srednja_skola" value="<?php echo mysql_result($q400, 0, 12); ?> " class="default"> </td></tr>
function ShowBody() { global $edit, $s, $m, $x, $page, $page_display_name, $lang, $type; // check $edit against $x - they need to represent the same page, if not redirect. $checkid = safe_field('page_id', 'pixie_core', "page_name='{$x}'"); if (isset($edit) && $edit && $m == 'static') { if ($edit != $checkid) { echo "<div class=\"helper\"><h3>" . $lang['help'] . "</h3><p>" . $lang['unknown_edit_url'] . "</p></div>"; $cancel = TRUE; } } if (isset($cancel)) { } else { $cancel_not_set = 1; } if ($cancel_not_set == 1) { $Nams = explode('|', substr($this->Nam, 0, strlen($this->Nam) - 1)); $Type = explode('|', substr($this->Typ, 0, strlen($this->Typ) - 1)); $Leng = explode('|', substr($this->Len, 0, strlen($this->Len) - 1)); $Flag = explode('|', substr($this->Flg, 0, strlen($this->Flg) - 1)); $Fild = explode('|', substr($this->Res, 0, strlen($this->Res) - 1)); if (!$page) { $page = 1; } if (isset($s) && $s == 'settings') { if (strpos($this->tablename, 'module')) { $formtitle = $lang['advanced'] . " " . $lang['page_settings']; } else { if (strpos($this->tablename, 'dynamic')) { $formtitle = $lang['advanced'] . " " . $lang['page_settings']; } else { $formtitle = $lang['page_settings']; } } } else { if (isset($edit) && $edit) { if ($m == 'static') { $formtitle = $lang['edit'] . " {$page_display_name} " . $lang['settings_page']; } else { $formtitle = $lang['edit'] . " {$page_display_name} " . str_replace('.', "", $lang['entry']) . " (#{$edit})"; } } else { $formtitle = $lang['new_entry'] . " {$page_display_name} " . str_replace('.', "", $lang['entry']); } } if (isset($s) && $s == 'settings') { $post = "?s={$s}&x={$x}"; } else { if ($m == 'static' && isset($edit)) { $post = "?s={$s}&m={$m}&x={$x}&edit={$edit}&page={$page}"; } else { $post = "?s={$s}&m={$m}&x={$x}&page={$page}"; } } echo "<form accept-charset=\"UTF-8\" action=\"{$post}\" method=\"post\" id=\"form_addedit\" class=\"form\">\n"; echo "\t\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<legend>{$formtitle}</legend>\n"; echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"table_name\" value=\"{$this->tablename}\" maxlength=\"80\" />\n"; for ($j = 0; $j < count($Nams); $j++) { // clears out the form as some of the fields populate if (!isset($edit) or !$edit) { $Fild[$j] = ""; } // if comments are disabled then hide the field if ($Nams[$j] == 'comments' && !public_page_exists('comments')) { echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"no\" maxlength=\"" . $Leng[$j] . "\" />\n"; $j++; } if (!in_array($Nams[$j], $this->exclude)) { //fields populated and output depending on type etc. //$searchfor = "_".first_word($Nams[$j]); if ($Leng[$j] < 40) { $ln = $Leng[$j]; } else { if ($Leng[$j] <= 400) { $ln = 50; } } $nullf = explode(" ", $Flag[$j]); if ($nullf[0] == 'not_null') { // label required fields if (isset($lang['form_' . $Nams[$j]])) { if ($Nams[$j] != 'page_name' or $type == 'static' or !isset($edit) or !$edit) { /* Prevents the editing of page_name which does not work in modules and dynamic pages */ $displayname = $lang['form_' . $Nams[$j]] . " <span class=\"form_required\">" . $lang['form_required'] . "</span>"; } else { $displayname = " <span style=\"display:none\" class=\"form_required\">" . $lang['form_required'] . "</span>"; } } else { $displayname = simplify($Nams[$j]) . " <span class=\"form_required\">" . $lang['form_required'] . "</span>"; } } else { if (isset($lang['form_' . $Nams[$j]]) && $lang['form_' . $Nams[$j]]) { $displayname = $lang['form_' . $Nams[$j]] . " <span class=\"form_optional\">" . $lang['form_optional'] . "</span>"; } else { $displayname = simplify($Nams[$j]) . " <span class=\"form_optional\">" . $lang['form_optional'] . "</span>"; } } // check language file for any form help if (isset($lang['form_help_' . $Nams[$j]]) && $lang['form_help_' . $Nams[$j]]) { if ($Nams[$j] != 'page_name' or $type == 'static' or !isset($edit) or !$edit) { /* Prevents the editing of page_name which does not work in modules and dynamic pages */ $form_help = "<span class=\"form_help\">" . $lang['form_help_' . $Nams[$j]] . "</span>"; } else { $form_help = "<span style=\"display:none\" class=\"form_help\">" . $lang['form_help_' . $Nams[$j]] . "</span>"; } } else { $form_help = ""; } if ($GLOBALS['rich_text_editor'] == 1) { $containsphp = strlen(stristr(utf8_decode($Fild[$j]), '<?php')) > 0; if ($containsphp) { $form_help .= " <span class=\"alert\">" . $lang['form_php_warning'] . '</span>'; } } echo "\t\t\t\t\t\t\t<div class=\"form_row\">\n\t\t\t\t\t\t\t\t<div class=\"form_label\">\n\t\t\t\t\t<label for=\"{$Nams[$j]}\">" . $displayname . "</label>{$form_help}</div>\n"; //$Type[$j] $Leng[$j] $Flag[$j] for field info //echo "$Nams[$j] - $Type[$j] - $Leng[$j] - $Flag[$j]"; // see form field properties if ($Type[$j] == 'timestamp' && !isset($edit) && !$edit) { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n"; if (isset($date)) { date_dropdown($date); } else { $date = NULL; date_dropdown($date); } echo "\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if ($Type[$j] == 'timestamp' && isset($edit) && $edit) { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n"; date_dropdown($Fild[$j]); echo "\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; //} else if ($Type[$j] == "blob") { // echo "\t\t\t\t\t\t\t\t<div class=\"form_item_textarea\">\n\t\t\t\t\t\t\t\t<textarea name=\"$Nams[$j]\" class=\"form_item_textarea_no_ckeditor\">$Fild[$j]</textarea>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if ($Type[$j] == 'longtext' or $Leng[$j] > 800 or $Type[$j] == 'blob') { if ($GLOBALS['rich_text_editor'] == 1) { if (!$containsphp) { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_textarea_ckeditor\">\n\t\t\t\t\t\t\t\t\t\t<textarea name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" cols=\"50\" class=\"ck-textarea\" rows=\"10\">" . htmlentities($Fild[$j], ENT_QUOTES, 'UTF-8') . "</textarea>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n"; // id=\"$Nams[$j]\" } else { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_textarea\">\n\t\t\t\t\t\t\t\t<textarea name=\"{$Nams[$j]}\" class=\"form_item_textarea_no_ckeditor\">" . htmlspecialchars($Fild[$j], ENT_QUOTES, 'UTF-8') . "</textarea>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; // id=\"$Nams[$j]\" } } else { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_textarea\">\n\t\t\t\t\t\t\t\t<textarea name=\"{$Nams[$j]}\" class=\"form_item_textarea_no_ckeditor\">" . htmlspecialchars($Fild[$j], ENT_QUOTES, 'UTF-8') . "</textarea>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; // id=\"$Nams[$j]\" } } else { if ($Type[$j] == "set'yes','no'" or $Flag[$j] == 'not_null set') { if ($Fild[$j] == 'no') { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_radio\">\n\t\t\t\t\t\t\t\tYes<input type=\"radio\" name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" class=\"form_radio\" value=\"yes\" />\n\t \t\t\t\t\t\t \tNo<input checked=\"checked\" type=\"radio\" name=\"{$Nams[$j]}\" class=\"form_radio\" value=\"{$Fild[$j]}\" />\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t</div>\n"; } else { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_radio\">\n\t\t\t\t\t\t\t\tYes<input checked=\"checked\" type=\"radio\" name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" class=\"form_radio\" value=\"yes\" />\n\t \t\t\t\t\t\t \tNo<input type=\"radio\" name=\"{$Nams[$j]}\" class=\"form_radio\" value=\"no\"/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } } else { if (first_word($Nams[$j]) == 'image') { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop image_preview\">\n"; db_dropdown('pixie_files', $Fild[$j], $Nams[$j], "file_type = 'Image' order by file_id desc"); echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $Nams[$j] . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if (first_word($Nams[$j]) == 'document') { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n"; db_dropdown('pixie_files', $Fild[$j], $Nams[$j], "file_type = 'Other' order by file_id desc"); echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $Nams[$j] . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if (first_word($Nams[$j]) == 'video') { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n"; db_dropdown('pixie_files', $Fild[$j], $Nams[$j], "file_type = 'Video' order by file_id desc"); echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $Nams[$j] . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if (first_word($Nams[$j]) == 'audio') { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n"; db_dropdown('pixie_files', $Fild[$j], $Nams[$j], "file_type = 'Audio' order by file_id desc"); echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $Nams[$j] . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if (first_word($Nams[$j]) == 'file') { echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n"; db_dropdown('pixie_files', $Fild[$j], $Nams[$j], "file_id >= '0' order by file_id desc"); echo "\n\t\t\t\t\t\t\t\t<span class=\"more_upload\">or <a href=\"#\" onclick=\"upswitch('" . $Nams[$j] . "'); return false;\" title=\"" . $lang['upload'] . "\">" . strtolower($lang['upload']) . "...</a></span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if ($Nams[$j] == 'tags') { $tableid = 0; $condition = $tableid . " >= '0'"; form_tag($this->tablename, $condition); echo "\t\t\t\t\t\t\t\t<div class=\"form_item\">\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form_text\" name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" value=\"{$Fild[$j]}\" size=\""; if (isset($ln)) { echo $ln; } else { $ln = 25; echo $ln; } echo "\" maxlength=\"" . $Leng[$j] . "\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if ($Nams[$j] == 'page_blocks') { form_blocks(); echo "\t\t\t\t\t\t\t\t<div class=\"form_item\">\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form_text\" name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" value=\"{$Fild[$j]}\" size=\""; if (isset($ln)) { echo $ln; } else { $ln = 25; echo $ln; } echo "\" maxlength=\"" . $Leng[$j] . "\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if ($Nams[$j] == 'privs') { if ($Fild[$j] == 2) { $adminclass = "selected=\"selected\""; $everyoneclass = NULL; } else { $everyoneclass = "selected=\"selected\""; $adminclass = NULL; } echo "\t\t\t\t\t\t\t\t<div class=\"form_item_drop\">\n\t\t\t\t\t\t\t\t\t<select class=\"form_select\" name=\"{$Nams[$j]}\" name=\"{$Nams[$j]}\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"2\" {$adminclass}>Administrators only</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"1\" {$everyoneclass}>Administrators & Clients</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t \t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n"; } else { if ($Nams[$j] != 'page_name' or $type == 'static' or !isset($edit) or !$edit) { /* Prevents the editing of page_name which does not work in modules and dynamic pages */ echo "\t\t\t\t\t\t\t\t<div class=\"form_item\">\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form_text\" name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" value=\"" . htmlspecialchars($Fild[$j], ENT_QUOTES, 'UTF-8') . "\" size=\""; if (isset($ln)) { echo $ln; } else { $ln = 25; echo $ln; } echo "\" maxlength=\"" . $Leng[$j] . "\" />\n\t\t\t\t\t\t\t\t</div>"; } else { echo "\t\t\t\t\t\t\t\t<div style=\"display:none\" class=\"form_item\">\n\t\t\t\t\t\t\t\t<input style=\"display:none\" type=\"text\" class=\"form_text\" name=\"{$Nams[$j]}\" id=\"{$Nams[$j]}\" value=\"" . htmlspecialchars($Fild[$j], ENT_QUOTES, 'UTF-8') . "\" size=\""; if (isset($ln)) { echo $ln; } else { $ln = 25; echo $ln; } echo "\" maxlength=\"" . $Leng[$j] . "\" />\n\t\t\t\t\t\t\t\t</div>"; } echo "\n\t\t\t\t\t\t\t</div>\n"; } } } } } } } } } } } } //other field types still to come: File uploads...? //hidden fields populated } else { if ($Nams[$j] == 'page_id' && isset($s) && $s == 'publish' && $m == 'dynamic') { $page_id = get_page_id($x); echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"{$page_id}\" maxlength=\"" . $Leng[$j] . "\" />\n"; } else { if (last_word($Nams[$j]) == 'id') { echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"{$Fild[$j]}\" maxlength=\"" . $Leng[$j] . "\" />\n"; } else { if ($Nams[$j] == 'author') { if (isset($edit) && $edit) { $output = $Fild[$j]; } else { if (!isset($GLOBALS['pixie_user'])) { $GLOBALS['pixie_user'] = NULL; } $output = $GLOBALS['pixie_user']; } echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"" . $output . "\" maxlength=\"" . $Leng[$j] . "\" />\n"; } else { if ($Type[$j] == "timestamp") { echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"" . returnSQLtimestamp(time()) . "\" maxlength=\"" . $Leng[$j] . "\" />\n"; } else { if ($Nams[$j] == 'page_type') { if ($type) { $output = $type; } else { if (isset($edit)) { $output = safe_field('page_type', 'pixie_core', "page_id='{$edit}'"); } } echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"" . $output . "\" maxlength=\"" . $Leng[$j] . "\" />\n"; } else { if ($Nams[$j] == 'publish' && !$edit) { echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"yes\" maxlength=\"0\" />\n"; } else { if ($Nams[$j] == 'page_content') { // do nothing } else { if ($Nams[$j] == 'admin') { // do nothing } else { echo "\t\t\t\t\t\t\t<input type=\"hidden\" class=\"form_text\" name=\"{$Nams[$j]}\" value=\"{$Fild[$j]}\" maxlength=\"" . $Leng[$j] . "\" />\n"; } } } } } } } } } } if (isset($edit) && $edit) { echo "\t\t\t\t\t\t\t<div class=\"form_row_button\">\n\t\t\t\t\t\t\t\t<input type=\"submit\" name=\"submit_edit\" class=\"form_submit\" value=\"" . $lang['form_button_update'] . "\" />\n\t\t\t\t\t\t\t</div>\n"; } else { if (isset($go) && $go == 'new') { // do a save draft and save button button?? - when everything can be saved as a draft and is autosaved using AJAX } else { echo "\t\t\t\t\t\t\t<div class=\"form_row_button\" id=\"form_button\">\n\t\t\t\t\t\t\t\t<input type=\"submit\" name=\"submit_new\" class=\"form_submit\" value=\"" . $lang['form_button_save'] . "\" />\n\t\t\t\t\t\t\t</div>\n"; } } if ($m != 'static') { echo "\t\t\t\t\t\t\t<div class=\"form_row_button\">\n\t\t\t\t\t\t\t\t<span class=\"form_button_cancel\"><a href=\"?s={$s}&m={$m}&x={$x}\" title=\"" . $lang['form_button_cancel'] . "\">" . $lang['form_button_cancel'] . "</a></span>\n\t\t\t\t\t\t\t</div>\n"; } echo "\t\t\t\t\t\t\t<div class=\"safclear\"></div>\n\t\t\t\t\t\t</fieldset>\n"; echo "\t\t\t\t\t</form>"; } }
function nastavnik_kvizovi() { global $userid, $user_siteadmin; global $_lv_; // Parametri $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // Naziv predmeta $q5 = myquery("select naziv from predmet where id={$predmet}"); if (mysql_num_rows($q5) < 1) { biguglyerror("Nepoznat predmet"); zamgerlog("ilegalan predmet {$predmet}", 3); //nivo 3: greska zamgerlog2("nepoznat predmet", $predmet); return; } $predmet_naziv = mysql_result($q5, 0, 0); // Da li korisnik ima pravo ući u modul? 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 || mysql_result($q10, 0, 0) == "asistent") { 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; ?> - Kvizovi</h3></p> <p>Napomena: Ovaj modul je još uvijek u fazi razvoja i nije dovoljno testiran. Ne preporučujemo njegovo korištenje.</p> <?php // Akcija - editovanje pitanja if ($_REQUEST['akcija'] == "pitanja") { $kviz = intval($_REQUEST['kviz']); $q200 = myquery("select naziv, predmet, akademska_godina from kviz where id={$kviz}"); if (mysql_num_rows($q200) < 1) { niceerror("Nepostojeći kviz {$kviz}"); zamgerlog("editovanje pitanja: nepostojeci kviz {$kviz}", 3); zamgerlog2("nepostojeci kviz (editovanje pitanja)", $kviz); return; } if (mysql_result($q200, 0, 1) != $predmet || mysql_result($q200, 0, 2) != $ag) { niceerror("Kviz nije sa ovog predmeta"); zamgerlog("editovanje pitanja: kviz {$kviz} nije sa predmeta pp{$predmet} ag{$ag}", 3); zamgerlog2("id kviza i predmeta se ne poklapaju (editovanje pitanja)", $predmet, $ag, $kviz); return; } $naziv_kviza = mysql_result($q200, 0, 0); // Subakcije if ($_REQUEST['subakcija'] == "potvrda_novo" && check_csrf_token()) { $tekst = my_escape($_REQUEST['tekst']); $bodova = floatval(str_replace(',', '.', $_REQUEST['bodova'])); if ($_REQUEST['vidljivo']) { $vidljivo = 1; } else { $vidljivo = 0; } $tip = my_escape($_REQUEST['tip']); $q300 = myquery("insert into kviz_pitanje set kviz={$kviz}, tip='{$tip}', tekst='{$tekst}', bodova={$bodova}, vidljivo={$vidljivo}"); $pitanje = mysql_insert_id(); // Ako je korisnik unosio odgovore prije kreiranja pitanja, njihov id pitanja je 0 $q315 = myquery("update kviz_odgovor set kviz_pitanje={$pitanje} where kviz_pitanje=0"); nicemessage("Pitanje uspješno dodano"); zamgerlog2("dodano pitanje na kviz", $pitanje); ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=izmijeni&pitanje=<?php echo $pitanje; ?> '; </script> <?php return; } if ($_REQUEST['subakcija'] == "potvrda_izmjene" && check_csrf_token()) { $pitanje = intval($_REQUEST['pitanje']); $tekst = my_escape($_REQUEST['tekst']); $bodova = floatval(str_replace(',', '.', $_REQUEST['bodova'])); if ($_REQUEST['vidljivo']) { $vidljivo = 1; } else { $vidljivo = 0; } $tip = my_escape($_REQUEST['tip']); $q320 = myquery("select kviz from kviz_pitanje where id={$pitanje}"); if (mysql_num_rows($q320) == 0) { niceerror("Pitanje je obrisano!"); zamgerlog("potvrda editovanja pitanja: pitanje {$pitanje} ne postoji", 3); zamgerlog2("pitanje na kvizu ne postoji (potvrda editovanja)", $pitanje); return; } if (mysql_result($q320, 0, 0) != $kviz) { niceerror("Pitanje nije sa ovog kviza"); zamgerlog("potvrda editovanja pitanja: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3); zamgerlog2("id pitanja i kviza se ne poklapaju (potvrda editovanja)", $pitanje, $kviz); return; } $q330 = myquery("update kviz_pitanje set tekst='{$tekst}', tip='{$tip}', bodova={$bodova}, vidljivo={$vidljivo} where id={$pitanje}"); nicemessage("Pitanje uspješno izmijenjeno"); zamgerlog2("izmijenjeno pitanje na kvizu", $pitanje); ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=izmijeni&pitanje=<?php echo $pitanje; ?> '; </script> <?php return; } if ($_REQUEST['subakcija'] == "obrisi") { // brisanje pitanja - ovdje ce nam trebati potvrda! $pitanje = intval($_REQUEST['pitanje']); $q320 = myquery("select kviz from kviz_pitanje where id={$pitanje}"); if (mysql_num_rows($q320) == 0) { niceerror("Pitanje je već obrisano!"); zamgerlog("potvrda brisanja pitanja: pitanje {$pitanje} ne postoji", 3); zamgerlog2("pitanje ne postoji (potvrda brisanja)", $pitanje); return; } if (mysql_result($q320, 0, 0) != $kviz) { niceerror("Pitanje nije sa ovog kviza"); zamgerlog("potvrda brisanja pitanja: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3); zamgerlog2("id pitanja i kviza se ne poklapaju (potvrda brisanja)", $pitanje, $kviz); return; } $q335 = myquery("delete from kviz_odgovor where kviz_pitanje={$pitanje}"); $q336 = myquery("delete from kviz_pitanje where id={$pitanje}"); nicemessage("Pitanje uspješno obrisano"); zamgerlog2("obrisano pitanje sa kviza", $kviz, $pitanje); ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja'; </script> <?php return; } if ($_REQUEST['subakcija'] == "dodaj_odgovor" && check_csrf_token()) { $pitanje = intval($_REQUEST['pitanje']); $tekst = my_escape($_REQUEST['tekst']); if ($_REQUEST['tacan']) { $tacan = 1; } else { $tacan = 0; } if ($pitanje > 0) { $q320 = myquery("select kviz from kviz_pitanje where id={$pitanje}"); if (mysql_num_rows($q320) == 0 || mysql_result($q320, 0, 0) != $kviz) { niceerror("Pitanje nije sa ovog kviza"); zamgerlog("dodavanje odgovora: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3); zamgerlog2("id pitanja i kviza se ne poklapaju (dodavanje odgovora)", $pitanje, $kviz); return; } } $q340 = myquery("insert into kviz_odgovor set kviz_pitanje={$pitanje}, tekst='{$tekst}', tacan={$tacan}"); nicemessage("Odgovor uspješno dodan"); zamgerlog2("dodan odgovor na pitanje", mysql_insert_id()); if ($pitanje > 0) { ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=izmijeni&pitanje=<?php echo $pitanje; ?> '; </script> <?php } else { ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja'; </script> <?php } return; } if ($_REQUEST['subakcija'] == "obrisi_odgovor") { // && check_csrf_token()) { $odgovor = intval($_REQUEST['odgovor']); $q350 = myquery("select kp.kviz, kp.id from kviz_pitanje as kp, kviz_odgovor as ko where ko.id={$odgovor} and ko.kviz_pitanje=kp.id"); if (mysql_num_rows($q350) == 0) { // Moguće da je odgovor dat prije pitanja $q355 = myquery("select kviz_pitanje from kviz_odgovor where id={$odgovor}"); if (mysql_num_rows($q355) == 0) { niceerror("Odgovor je već obrisan!"); zamgerlog("brisanje odgovora: odgovor {$odgovor} ne postoji", 3); zamgerlog2("odgovor ne postoji (brisanje odgovora)", $odgovor); return; } } else { if (mysql_result($q350, 0, 0) != $kviz) { niceerror("Odgovor ne postoji ili pitanje nije sa ovog kviza"); zamgerlog("brisanje odgovora: odgovor {$odgovor} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3); zamgerlog2("id odgovora i kviza se ne poklapaju (brisanje odgovora)", $odgovor, $kviz); return; } } $q360 = myquery("delete from kviz_odgovor where id={$odgovor}"); nicemessage("Odgovor uspješno obrisan"); $dodaj = ""; if (mysql_num_rows($q350) != 0) { $dodaj = "&subakcija=izmijeni&pitanje=" . mysql_result($q350, 0, 1); } zamgerlog2("obrisan odgovor sa kviza", $odgovor, $kviz); ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja<?php echo $dodaj; ?> '; </script> <?php return; } if ($_REQUEST['subakcija'] == "toggle_tacnost") { // && check_csrf_token()) { $odgovor = intval($_REQUEST['odgovor']); $q370 = myquery("select kp.kviz, kp.id, ko.tacan from kviz_pitanje as kp, kviz_odgovor as ko where ko.id={$odgovor} and ko.kviz_pitanje=kp.id"); if (mysql_num_rows($q370) == 0 || mysql_result($q370, 0, 0) != $kviz) { niceerror("Odgovor ne postoji ili pitanje nije sa ovog kviza"); zamgerlog("toggle tacnost: odgovor {$odgovor} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3); zamgerlog2("id odgovora i kviza se ne poklapaju (toggle tacnosti)", $odgovor, $kviz); return; } if (mysql_result($q370, 0, 2) == 1) { $tacan = 0; } else { $tacan = 1; } $q380 = myquery("update kviz_odgovor set tacan={$tacan} where id={$odgovor}"); nicemessage("Odgovor proglašen za (ne)tačan"); zamgerlog2("odgovor proglasen za (ne)tacan", $odgovor, $tacan); ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=izmijeni&pitanje=<?php echo mysql_result($q370, 0, 1); ?> '; </script> <?php return; } if ($_REQUEST['subakcija'] == "kopiraj_pitanja" && check_csrf_token()) { $drugi_kviz = intval($_REQUEST['_lv_column_kviz']); $q740 = myquery("SELECT naziv FROM kviz WHERE id={$drugi_kviz}"); // Dozvoljavamo kopiranje sa kviza sa drugog predmeta!? if (mysql_num_rows($q740) == 0) { niceerror("Nepoznat kviz"); zamgerlog2("nepoznat ID kviza", $drugi_kviz); return; } $q700 = myquery("SELECT id, tip, tekst, bodova, vidljivo FROM kviz_pitanje WHERE kviz={$drugi_kviz}"); while ($r700 = mysql_fetch_row($q700)) { $staro_pitanje = $r700[0]; $tekst = mysql_real_escape_string($r700[2]); $q710 = myquery("INSERT INTO kviz_pitanje SET kviz={$kviz}, tip='{$r700['1']}', tekst='{$tekst}', bodova={$r700['3']}, vidljivo={$r700['4']}"); $novo_pitanje = mysql_insert_id(); // Kreiranje odgovora na pitanje $q720 = myquery("SELECT tekst, tacan, vidljiv FROM kviz_odgovor WHERE kviz_pitanje={$staro_pitanje}"); while ($r720 = mysql_fetch_row($q720)) { $tekst = mysql_real_escape_string($r720[0]); $q730 = myquery("INSERT INTO kviz_odgovor SET kviz_pitanje={$novo_pitanje}, tekst='{$tekst}', tacan={$r720['1']}, vidljiv={$r720['2']}"); } } nicemessage("Prekopirana pitanja sa kviza"); zamgerlog2("prekopirana pitanja sa kviza", $kviz, $drugi_kviz); ?> <script language="JavaScript"> location.href='?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja'; </script> <?php return; } ?> <h3>Izmjena pitanja za kviz "<?php echo $naziv_kviza; ?> "</h3> <a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &_lv_nav_id=<?php echo $kviz; ?> ">Nazad na podešavanje parametara kviza</a><br><br> <table border="0" cellspacing="1" cellpadding="2"> <tr bgcolor="#999999"> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">R.br.</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Tekst pitanja</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Odgovori</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Bodova</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;color:white;">Vidljivo?</font></td> <td> </td> </tr> <?php $rbr = 0; $q210 = myquery("select id, tip, tekst, bodova, vidljivo from kviz_pitanje where kviz={$kviz}"); while ($r210 = mysql_fetch_row($q210)) { // Pribavljamo odgovore $odgovori = ""; $q220 = myquery("select tekst, tacan from kviz_odgovor where kviz_pitanje={$r210['0']} order by tacan desc"); if (mysql_num_rows($q220) < 1) { $odgovori = "<font color=\"red\">Nema ponuđenih odgovora</font>"; } $broj_tacnih = 0; while ($r220 = mysql_fetch_row($q220)) { $odgovori .= "'{$r220['0']}'"; if ($r220[1] == 1) { $odgovori .= " (*)"; $broj_tacnih++; } $odgovori .= ", "; } if (mysql_num_rows($q220) > 0 && $broj_tacnih == 0) { $odgovori = "<font color=\"red\">Nije ponuđen tačan odgovor</font><br>\n" . $odgovori; } else { if (mysql_num_rows($q220) > 0 && $r210[1] == 'mcma' && $broj_tacnih == 1) { $odgovori = "<font color=\"red\">Ponuđen je samo jedan tačan odgovor</font><br>\n" . $odgovori; } } $vidljivo = "NE"; if ($r210[4] == 1) { $vidljivo = "DA"; } $rbr++; ?> <tr> <td><?php echo $rbr; ?> </td> <td><?php echo $r210[2]; ?> </td> <td><?php echo $odgovori; ?> </td> <td><?php echo $r210[3]; ?> </td> <td><?php echo $vidljivo; ?> </td> <td><a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=obrisi&pitanje=<?php echo $r210[0]; ?> ">Obriši</a> * <a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=izmijeni&pitanje=<?php echo $r210[0]; ?> ">Izmijeni</a></td> </tr> <?php } print "</table>\n<br><br>\n"; if (mysql_num_rows($q210) == 0) { print genform("POST"); ?> <input type="hidden" name="subakcija" value="kopiraj_pitanja"> <p>Kopiraj pitanja sa kviza:<?php $_lv_["where:predmet"] = $predmet; $_lv_["where:akademska_godina"] = $ag; print db_dropdown("kviz"); ?> <input type="submit" value=" Kreni "> </p></form><?php } if ($_REQUEST['subakcija'] == "izmijeni") { ?> <a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja">Dodaj novo pitanje</a><br><br> <a name="izmjena"></a> <b>Izmjena pitanja</b><br> <?php $pitanje = intval($_REQUEST['pitanje']); $q230 = myquery("select kviz, tip, tekst, bodova, vidljivo from kviz_pitanje where id={$pitanje}"); if (mysql_num_rows($q230) < 1) { niceerror("Nepostojeće pitanje {$pitanje}"); zamgerlog("editovanje pitanja: nepostojece pitanje {$pitanje}", 3); zamgerlog2("nepostojece pitanje (editovanje pitanja)", $pitanje); return; } if (mysql_result($q230, 0, 0) != $kviz) { niceerror("Pitanje nije sa ovog kviza"); zamgerlog("editovanje pitanja: pitanje {$pitanje} nije sa kviza {$kviz} (pp{$predmet} ag{$ag})", 3); zamgerlog2("id pitanja i kviza se ne poklapaju (editovanje pitanja)", $pitanje, $kviz); return; } $tip = mysql_result($q230, 0, 1); $tekst = mysql_result($q230, 0, 2); $bodova = mysql_result($q230, 0, 3); if (mysql_result($q230, 0, 4) == 1) { $vidljivo = "CHECKED"; } else { $vidljivo = ""; } $subakcija = "potvrda_izmjene"; } else { print "<b>Dodajte novo pitanje</b><br>\n"; $tekst = $vidljiv = ""; $bodova = $pitanje = 0; $tip = "mcsa"; $subakcija = "potvrda_novo"; } unset($_REQUEST['subakcija']); unset($_GET['subakcija']); ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="<?php echo $subakcija; ?> "> <input type="hidden" name="pitanje" value="<?php echo $pitanje; ?> "> <table border="0"> <tr><td>Tekst pitanja:</td><td><input type="text" size="50" name="tekst" value="<?php echo $tekst; ?> "></td></tr> <tr><td>Bodova:</td><td><input type="text" size="5" name="bodova" value="<?php echo $bodova; ?> "></td></tr> <tr><td>Tip pitanja:</td><td> <select name="tip"> <option value="mcsa" <?php if ($tip == "mcsa") { print "SELECTED"; } ?> >MCSA</option> <option value="mcma" <?php if ($tip == "mcma") { print "SELECTED"; } ?> >MCMA</option> <option value="tekstualno" <?php if ($tip == "tekstualno") { print "SELECTED"; } ?> >Tekstualno</option> </select> <a href="#" onclick="javascript:window.open('legenda-pitanja.html','blah6','width=320,height=300');">Legenda tipova pitanja</a> </td></tr> <tr><td align="right"><input type="checkbox" name="vidljivo" value="1" <?php echo $vidljivo; ?> ></td><td>Pitanje vidljivo</td></tr> </table> <br>Ponuđeni odgovori:<br> <ul> <?php $q240 = myquery("select id, tekst, tacan, vidljiv from kviz_odgovor where kviz_pitanje={$pitanje}"); if (mysql_num_rows($q240) == 0) { print "<li>Do sada nije unesen nijedan odgovor</li>\n"; } while ($r240 = mysql_fetch_row($q240)) { print "<li>"; if ($r240[3] == 0) { print "<font color=\"#AAAAAA\">"; } print $r240[1]; if ($r240[2] == 1) { print " (TAČAN)"; $toggle_link = "Proglasi za netačan"; } else { $toggle_link = "Proglasi za tačan"; } if ($r240[3] == 0) { print "</font> - nevidljiv"; } ?> - <a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=obrisi_odgovor&odgovor=<?php echo $r240[0]; ?> ">Obriši</a> - <a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=toggle_tacnost&odgovor=<?php echo $r240[0]; ?> "><?php echo $toggle_link; ?> </a></li> <?php } ?> </ul> <input type="submit" value="Promjena pitanja"><br> </form> <br> Dodajte odgovor na ovo pitanje:<br> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="dodaj_odgovor"> <input type="hidden" name="pitanje" value="<?php echo $pitanje; ?> "> Tekst odgovora: <input type="text" name="tekst" size="50"><br> <input type="checkbox" name="tacan" value="1"> Tačan<br> <input type="submit" value="Dodaj"><br> </form> <?php return; } // Akcija - statistički pregled rezultata kviza if ($_REQUEST['akcija'] == "rezultati") { $kviz = intval($_REQUEST['kviz']); $q600 = myquery("select naziv, predmet, akademska_godina, broj_pitanja, prolaz_bodova from kviz where id={$kviz}"); if (mysql_num_rows($q600) < 1) { niceerror("Nepostojeći kviz {$kviz}"); zamgerlog("editovanje pitanja: nepostojeci kviz {$kviz}", 3); zamgerlog2("nepostojeci kviz (editovanje pitanja)", $kviz); return; } if (mysql_result($q600, 0, 1) != $predmet || mysql_result($q600, 0, 2) != $ag) { niceerror("Kviz nije sa ovog predmeta"); zamgerlog("editovanje pitanja: kviz {$kviz} nije sa predmeta pp{$predmet} ag{$ag}", 3); zamgerlog2("id kviza i predmeta se ne poklapaju (editovanje pitanja)", $predmet, $ag, $kviz); return; } $naziv_kviza = mysql_result($q600, 0, 0); $max_bodova = mysql_result($q600, 0, 3); $prolaz_bodova = mysql_result($q600, 0, 4); $broj_bodova = array(); $ukupno = $max_broj = $ukupno_prolaz = 0; for ($i = 0; $i <= $max_bodova; $i++) { $q620 = myquery("SELECT COUNT(*) FROM kviz_student WHERE kviz={$kviz} AND dovrsen=1 AND bodova>={$i} AND bodova<" . ($i + 1)); $broj_bodova[$i] = mysql_result($q620, 0, 0); $ukupno += $broj_bodova[$i]; if ($broj_bodova[$i] > $max_broj) { $max_broj = $broj_bodova[$i]; } if ($i >= $prolaz_bodova) { $ukupno_prolaz += $broj_bodova[$i]; } } $q630 = myquery("SELECT COUNT(*) FROM kviz_student WHERE kviz={$kviz} AND dovrsen=0"); $nedovrsenih = mysql_result($q630, 0, 0); ?> <p>Popunilo kviz: <b><?php echo $ukupno; ?> </b> studenata<br /> Nisu dovršili popunjavanje kviza: <b><?php echo $nedovrsenih; ?> </b> studenata<br /> Ostvarilo prolazne bodove: <b><?php echo $ukupno_prolaz; ?> </b> studenata (<?php echo procenat($ukupno_prolaz, $ukupno); ?> )</p> <h3><?php echo $naziv_kviza; ?> </h3> <h4>Distribucija bodova</h4> <div id="grafik"> <div style="width:300px;height:200px;margin:5px;"> <?php foreach ($broj_bodova as $bod => $broj) { if ($broj == 0) { $broj_pixela_print = 170; } else { $broj_pixela = $broj / $max_broj * 200; $broj_pixela_print = intval(200 - $broj_pixela); } if ($bod < $prolaz_bodova) { $boja = "red"; } else { $boja = "green"; } ?> <div style="width:45px; height:200px; background:<?php echo $boja; ?> ;margin-left:5px;float:left;"> <div style="width:45px;height:<?php echo $broj_pixela_print; ?> px;background:white;"> </div> <span style="color:white;font-size: 25px; text-align: center; "> <?php echo $bod; ?> </span> </div> <?php } ?> </div> <div style="width:300px;height:50px;margin:5px;"> <?php foreach ($broj_bodova as $bod => $broj) { ?> <div style="width:45px; margin-left:5px; text-align: center; float:left; "> <?php echo $broj; ?> (<?php echo procenat($broj, $ukupno); ?> ) </div> <?php } ?> </div> </div> <?php // Statistika pitanja ?> <h3>Statistika pitanja</h3> <table border="1" style="border-collapse:collapse"> <tr><th>Pitanje</th><th>Uk. odgovora</th><th>Tačnih</th></tr> <?php $q640 = myquery("SELECT id, tekst, ukupno, tacnih FROM kviz_pitanje WHERE kviz={$kviz} ORDER BY tacnih/ukupno"); while ($r640 = mysql_fetch_row($q640)) { $id_pitanja = $r640[0]; $pitanje = $r640[1]; if (strlen($pitanje) > 60) { $skr_pitanje = mb_substr($pitanje, 0, 50) . "..."; } else { $skr_pitanje = $pitanje; } $odgovora = $r640[2]; $tacnih = $r640[3]; ?> <tr> <td title="<?php echo $pitanje; ?> "> <a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja&subakcija=izmijeni&pitanje=<?php echo $id_pitanja; ?> #izmjena"><?php echo $skr_pitanje; ?> </a></td> <td><?php echo $odgovora; ?> </td> <td><?php echo $tacnih; ?> (<?php echo procenat($tacnih, $odgovora); ?> )</td> </tr> <?php } ?> </table> <?php return; } // Kopiranje kvizova sa prošlogodišnjeg predmeta if ($_REQUEST['akcija'] === "prosla_godina" && strlen($_POST['nazad']) < 1) { $old_ag = $ag - 1; // Ovo je po definiciji prošla godina $greska = false; $q499 = myquery("SELECT naziv FROM akademska_godina WHERE id={$old_ag}"); if (mysql_num_rows($q499) == 0) { niceerror("Nije pronađena prošla akademska godina."); zamgerlog("nije pronadjena akademska godina {$old_ag}"); zamgerlog2("nije pronadjena akademska godina", $old_ag); $greska = true; } if (!$greska) { $q500 = myquery("SELECT naziv FROM kviz WHERE predmet={$predmet} AND akademska_godina={$old_ag}"); if (mysql_num_rows($q500) == 0) { niceerror("Prošle godine nije bio definisan nijedan kviz"); zamgerlog("prosle godine nije bio definisan nijedan kviz {$predmet} {$old_ag}"); zamgerlog2("prosle godine nije bio definisan nijedan kviz", $predmet, $old_ag); $greska = true; } } if (!$greska && $_REQUEST['potvrda'] === "potvrdjeno" && check_csrf_token()) { $q510 = myquery("SELECT id, naziv, vrijeme_pocetak, vrijeme_kraj, ip_adrese, prolaz_bodova, broj_pitanja, trajanje_kviza, aktivan FROM kviz WHERE predmet={$predmet} AND akademska_godina={$old_ag}"); while ($r510 = mysql_fetch_row($q510)) { // Kreiranje novog kviza $stari_kviz = $r510[0]; print "<p>Kopiram kviz {$r510['1']}...</p>"; $naziv = mysql_real_escape_string($r510[1]); $q520 = myquery("INSERT INTO kviz SET naziv='{$naziv}', predmet={$predmet}, akademska_godina={$ag}, vrijeme_pocetak='{$r510['2']}', vrijeme_kraj='{$r510['3']}', ip_adrese='{$r510['4']}', prolaz_bodova={$r510['5']}, broj_pitanja={$r510['6']}, trajanje_kviza={$r510['7']}, aktivan={$r510['8']}"); $novi_kviz = mysql_insert_id(); // Kreiranje pitanja $q530 = myquery("SELECT id, tip, tekst, bodova, vidljivo FROM kviz_pitanje WHERE kviz={$stari_kviz}"); while ($r530 = mysql_fetch_row($q530)) { $staro_pitanje = $r530[0]; $tekst = mysql_real_escape_string($r530[2]); $q540 = myquery("INSERT INTO kviz_pitanje SET kviz={$novi_kviz}, tip='{$r530['1']}', tekst='{$tekst}', bodova={$r530['3']}, vidljivo={$r530['4']}"); $novo_pitanje = mysql_insert_id(); // Kreiranje odgovora na pitanje $q550 = myquery("SELECT tekst, tacan, vidljiv FROM kviz_odgovor WHERE kviz_pitanje={$staro_pitanje}"); while ($r550 = mysql_fetch_row($q550)) { $tekst = mysql_real_escape_string($r550[0]); $q560 = myquery("INSERT INTO kviz_odgovor SET kviz_pitanje={$novo_pitanje}, tekst='{$tekst}', tacan={$r550['1']}, vidljiv={$r550['2']}"); } } } nicemessage("Kopiranje završeno!"); print "<a href=\"?sta=nastavnik/kvizovi&predmet={$predmet}&ag={$ag}\">Povratak na stranicu kvizova</a>\n"; return; } else { if (!$greska) { nicemessage("Kopiram sljedeće kvizove iz akademske " . mysql_result($q499, 0, 0) . ". godine."); print "\n<ul>\n"; while ($r500 = mysql_fetch_row($q500)) { print "<li>{$r500['0']}</li>\n"; } print "</ul>\n"; print genform("POST"); ?> <input type="hidden" name="potvrda" value="potvrdjeno"> <p>Da li ste sigurni?</p> <p><input type="submit" name="nazad" value=" Nazad "> <input type="submit" value=" Potvrda"></p> </form> <?php } } return; } // Korektno brisanje kviza if ($_REQUEST['_lv_action_delete']) { $kviz = intval($_REQUEST['_lv_column_id']); $q200 = myquery("select naziv, predmet, akademska_godina from kviz where id={$kviz}"); if (mysql_num_rows($q200) < 1) { niceerror("Nepostojeći kviz {$kviz}"); zamgerlog("brisanje kviza: nepostojeci kviz {$kviz}", 3); zamgerlog2("nepostojeci kviz (brisanje kviza)", $kviz); return; } if (mysql_result($q200, 0, 1) != $predmet || mysql_result($q200, 0, 2) != $ag) { niceerror("Kviz nije sa ovog predmeta"); zamgerlog("brisanje kviza: kviz {$kviz} nije sa predmeta pp{$predmet} ag{$ag}", 3); zamgerlog2("id kviza i predmeta se ne poklapaju (brisanje kviza)", $predmet, $ag, $kviz); return; } $q400 = myquery("select id from kviz_pitanje where kviz={$kviz}"); // Brisemo odgovore while ($r400 = mysql_fetch_row($q400)) { $q410 = myquery("delete from kviz_odgovor where kviz_pitanje={$r400['0']}"); } $q420 = myquery("delete from kviz_pitanje where kviz={$kviz}"); $q430 = myquery("delete from kviz_student where kviz={$kviz}"); // db_form() će pobrisati stavku iz tabele kviz zamgerlog2("obrisan kviz", $predmet, $ag, $kviz); } // Provjeravamo da li je raspon dobro unesen if (($_REQUEST['_lv_action'] == "edit" || $_REQUEST['_lv_action'] == "add") && !$_REQUEST['_lv_action_delete']) { $ip_adresa_losa = false; if ($_REQUEST['_lv_action'] == "edit") { $id_kviza = intval($_REQUEST['_lv_column_id']); // Dodajemo logging zamgerlog("izmijenjen kviz {$id_kviza} (pp{$predmet})", 2); zamgerlog2("izmijenjen kviz", $id_kviza); } else { $labgrupa = intval($_REQUEST['_lv_column_labgrupa']); $naziv = my_escape($_REQUEST['_lv_column_naziv']); $pb = floatval($_REQUEST['_lv_column_prolaz_bodova']); $q100 = myquery("select id from kviz where predmet={$predmet} and akademska_godina={$ag} and naziv='{$naziv}' and labgrupa={$labgrupa} and prolaz_bodova={$pb}"); $id_kviza = mysql_result($q100, 0, 0); zamgerlog("dodan novi kviz {$id_kviza} (pp{$predmet})", 2); zamgerlog2("dodan kviz", $id_kviza); } $ip_adrese = $_REQUEST['_lv_column_ip_adrese']; foreach (explode(",", $ip_adrese) as $blok) { if (strstr($blok, "/")) { // blok adresa u CIDR formatu list($baza, $maska) = explode("/", $blok); if ($baza != long2ip(ip2long($baza))) { $ip_adresa_losa = true; break; } if ($maska != intval($maska)) { $ip_adresa_losa = true; break; } if ($maska < 1 || $maska > 32) { $ip_adresa_losa = true; break; } } else { if (strstr($blok, "-")) { // raspon adresa sa crticom list($pocetak, $kraj) = explode("-", $blok); if ($pocetak != long2ip(ip2long($pocetak))) { $ip_adresa_losa = true; break; } if ($kraj != long2ip(ip2long($kraj))) { $ip_adresa_losa = true; break; } } else { // pojedinačna adresa if ($blok != long2ip(ip2long($blok))) { $ip_adresa_losa = true; break; } } } } // Vraćamo se na editovanje lošeg kviza if ($ip_adresa_losa) { $_REQUEST['_lv_nav_id'] = $id_kviza; $_GET['_lv_nav_id'] = $id_kviza; $_POST['_lv_nav_id'] = $id_kviza; niceerror("Neispravan format IP adrese"); ?> <p>Raspon IP adresa treba biti u jednom od formata:<br> - CIDR format (npr. 123.45.67.89/24)<br> - raspon početak-kraj sa crticom (npr. 123.45.67.89-123.45.67.98)<br> - pojedinačna adresa<br> Takođe možete navesti više raspona ili pojedinačnih adresa razdvojenih zarezom.</p> <?php } } // Spisak postojećih kvizova $_lv_["where:predmet"] = $predmet; $_lv_["where:akademska_godina"] = $ag; $_lv_["new_link"] = "Unos novog kviza"; print "Odaberite neki od postojećih kvizova koji želite administrirati:<br/>\n"; print db_list("kviz"); $q1000 = myquery("SELECT COUNT(*) FROM kviz WHERE predmet={$predmet} AND akademska_godina={$ag}"); if (mysql_result($q1000, 0, 0) == 0) { print "<p><a href=\"?sta=nastavnik/kvizovi&predmet={$predmet}&ag={$ag}&akcija=prosla_godina\">Prekopiraj kvizove sa prošle akademske godine</a></p>\n"; } print "<hr>\n"; $kviz = intval($_REQUEST['_lv_nav_id']); if ($kviz > 0) { ?> <h3>Izmjena kviza</h3> <ul> <li><a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=pitanja">Izmijenite pitanja na kvizu</a></li> <li><a href="?sta=nastavnik/kvizovi&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> &kviz=<?php echo $kviz; ?> &akcija=rezultati">Rezultati kviza (do sada poslani odgovori)</a></li> </ul> <?php } else { ?> <h3>Kreiranje novog kviza</h3> <p>Unesite podatke o novom kvizu koji želite kreirati:</p><br> <?php } $_lv_["label:vrijeme_pocetak"] = "Početak"; $_lv_["label:vrijeme_kraj"] = "Kraj"; $_lv_["label:labgrupa"] = "Samo za studente iz grupe"; $_lv_["label:ip_adrese"] = "Ograniči na IP adrese"; $_lv_["label:prolaz_bodova"] = "Minimum bodova za prolaz"; $_lv_["label:trajanje_kviza"] = "Trajanje kviza (u sekundama)"; $_lv_["hidden:predmet"] = 1; $_lv_["hidden:akademska_godina"] = 1; print db_form("kviz", "kvizform"); // Markiramo loše polje if ($ip_adresa_losa) { ?> <script> var element = document.getElementsByName('_lv_column_ip_adrese'); element[0].style.backgroundColor = "#FF9999"; element[0].focus(); element[0].select(); </script> <?php } }