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; }
</tr> <tr> <td>Početak zaposlenja:</td> <td> <?php echo datectrl($pocetak_dan, $pocetak_mjesec, $pocetak_godina, "pocetak"); ?> </td> </tr> <tr> <td>Kraj zaposlenja:</td> <td> <?php echo datectrl($pocetak_dan, $pocetak_mjesec, $pocetak_godina, "kraj"); ?> </td> </tr> <tr> <td>Poslodavac: <b><font color=red>*</font></b></td> <td> <input class="default" type="text" id="poslodavac" name="poslodavac" value="<?php echo $poslodavac; ?> " /> </td> </tr> <tr>
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 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); } }*/ }
function saradnik_komentar() { global $userid, $user_siteadmin; ?> <body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" bgcolor="#FFFFFF"> <?php $stud_id = intval($_REQUEST['student']); $labgrupa = intval($_REQUEST['labgrupa']); // Da li neko spoofa predmet/studenta? $q10 = myquery("select sl.labgrupa from student_labgrupa as sl where sl.student={$stud_id} and sl.labgrupa={$labgrupa}"); if (mysql_num_rows($q10) < 1) { zamgerlog("student u{$stud_id} nije u labgrupi g{$labgrupa}", 3); zamgerlog2("id studenta i labgrupe ne odgovaraju", $stud_id, $labgrupa); niceerror("Nemate pravo pristupa ovom studentu!"); return; } // Prava pristupa i odredjivanje predmeta if ($user_siteadmin) { $q20 = myquery("select predmet, akademska_godina from labgrupa where id={$labgrupa}"); if (mysql_num_rows($q20) < 1) { zamgerlog("nepoznata labgrupa (labgrupa {$labgrupa} predmet pp{$predmet})", 3); zamgerlog2("nepoznata labgrupa", $labgrupa); niceerror("Nepoznata grupa {$labgrupa}"); return; } } else { $q20 = myquery("select np.predmet, np.akademska_godina from labgrupa as l, nastavnik_predmet as np where l.id={$labgrupa} and l.predmet=np.predmet and l.akademska_godina=np.akademska_godina and np.nastavnik={$userid}"); if (mysql_num_rows($q20) < 1) { zamgerlog("nastavnik nije na predmetu (labgrupa g{$labgrupa})", 3); zamgerlog2("nije saradnik na predmetu", $predmet, $ag); niceerror("Nemate pravo pristupa ovom studentu!"); return; } } $predmet = mysql_result($q20, 0, 0); $ag = mysql_result($q20, 0, 1); // Limit... $q30 = myquery("select o.labgrupa from ogranicenje as o, labgrupa as l where o.nastavnik={$userid} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}"); if (mysql_num_rows($q30) > 0) { $nasao = 0; while ($r30 = mysql_fetch_row($q30)) { if ($r30[0] == $labgrupa) { $nasao = 1; break; } } if ($nasao == 0) { zamgerlog("ogranicenje (labgrupa g{$labgrupa} predmet pp{$predmet})", 3); zamgerlog2("ima ogranicenje na labgrupu", $labgrupa); niceerror("Nemate pravo pristupa ovom studentu!"); return; } } $q40 = myquery("select ime, prezime, brindexa from osoba where id={$stud_id}"); if ($r40 = mysql_fetch_row($q40)) { print "<h3>{$r40['0']} {$r40['1']} ({$r40['2']})</h3>\n"; } else { zamgerlog("nepostojeci student {$stud_id}", 3); zamgerlog2("nepostojeci student", $stud_id); niceerror("Nemate pravo pristupa ovom studentu!"); return; } // Odredjujem ponudukursa koju tabela komentar za sada jos uvijek koristi $q45 = myquery("select pk.id from ponudakursa as pk, student_predmet as sp where sp.student={$stud_id} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); $ponudakursa = mysql_result($q45, 0, 0); // ------------------------ // Akcije // ------------------------ if ($_POST['akcija'] == "dodaj" && check_csrf_token()) { list($h, $m, $s) = explode(":", $_POST['vrijeme']); $datum = date("Y-m-d H:i:s", mktime($h, $m, $s, $_POST['month'], $_POST['day'], $_POST['year'])); $komentar = my_escape($_POST['komentar']); $q50 = myquery("insert into komentar set student={$stud_id}, nastavnik={$userid}, labgrupa={$labgrupa}, predmet={$ponudakursa}, datum='{$datum}', komentar='{$komentar}'"); zamgerlog("dodan komentar na studenta u{$stud_id} labgrupa g{$labgrupa}", 2); zamgerlog2("dodan komentar na studenta", $stud_id, $labgrupa); } if ($_GET['akcija'] == "obrisi") { $id = intval($_GET['id']); $q60 = myquery("delete from komentar where id={$id}"); zamgerlog("obrisan komentar {$id}", 2); zamgerlog2("obrisan komentar", $id); } // Spisak komentara $q70 = myquery("select k.id, a.ime, a.prezime, UNIX_TIMESTAMP(k.datum), k.komentar from komentar as k, osoba as a where k.student={$stud_id} and k.labgrupa={$labgrupa} and k.nastavnik=a.id"); if (mysql_num_rows($q70) < 1) { print "<ul><li>Nijedan komentar nije unesen.</li></ul>\n"; } while ($r70 = mysql_fetch_row($q70)) { $datum = date("d. m. Y. H:i:s", $r70[3]); print "<p><b>{$datum} ({$r70['1']} {$r70['2']}):</b> (<a href=\"" . genuri() . "&akcija=obrisi&id={$r70['0']}\">Obriši</a>)<br/>{$r70['4']}<br/></p>\n"; } // Dodaj komentar ?> <p><hr></p> <p><b>Dodajte komentar:</b><br/> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="dodaj"> Trenutni datum i vrijeme:<br/> <?php echo datectrl(date("d"), date("m"), date("Y")); ?> <input type="text" size="10" name="vrijeme" value="<?php echo date("H:i:s"); ?> " class="default"><br/><br/> <textarea cols="35" rows="5" name="komentar"></textarea><br/> <input type="submit" value=" Pošalji " class="default"></form> </p> <?php }
function nastavnik_prijava_ispita() { require "lib/manip.php"; global $userid, $user_siteadmin; //parametri $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); $ispit = intval($_REQUEST['ispit']); $termin = intval($_REQUEST['termin']); // Funkcija dodaje nulu na početak stringa function nuliraj($v) { if ($v < 10) { $v = '0' . $v; } return $v; } // Da li korisnik ima pravo uci 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/prijava_ispita privilegije (predmet pp{$predmet}, ag{$ag})", 3); zamgerlog2("nije nastavnik na predmetu", $predmet, $ag); biguglyerror("Nemate pravo pristupa ovoj opciji"); return; } } // Provjera ispita $q20 = myquery("(select UNIX_TIMESTAMP(i.datum), k.id, k.gui_naziv from ispit as i, komponenta as k where i.id={$ispit} and i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id) union (select UNIX_TIMESTAMP(i.datum), d.id, d.naziv from ispit as i, dogadjaj as d where i.id={$ispit} and i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=d.id);"); if (mysql_num_rows($q20) < 1) { niceerror("Nepostojeći ispit"); zamgerlog("nepostojeci ispit {$ispit} ili nije sa predmeta (pp{$predmet}, ag{$ag})", 3); return; } // Podaci za ispis $finidatum = date("d. m. Y", mysql_result($q20, 0, 0)); $tipispita = mysql_result($q20, 0, 2); $q30 = myquery("select naziv from predmet where id={$predmet}"); $predmet_naziv = mysql_result($q30, 0, 0); ?> <br/> <h3><?php echo $predmet_naziv; ?> - Termini ispita</h3> <h4><?php echo $tipispita; ?> , <?php echo $finidatum; ?> </h4> <a href="?sta=izvjestaj/termini_ispita&ispit=<?php echo $ispit; ?> ">Izvještaj</a> <?php // Informativna poruka if (!$_REQUEST['akcija']) { ?> <p>Definisanjem jednog ili više termina ispita omogućujete studentima da se prijavljuju za ispit kroz Zamger koristeći modul "Prijava ispita".<br /> Korištenje ove mogućnosti nije obavezno - ukoliko samo želite unijeti rezultate, nemojte kreirati termine.</p> <p><a href="?sta=nastavnik/ispiti&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "><<< Nazad</a></p> <?php } $dan = 0; // Ovo će biti promijenjeno u slučaju izmjene // Provjera da li ispitni termin pripada ispitu if ($termin) { $q40 = myquery("SELECT count(*) FROM ispit_termin as it, ispit as i WHERE it.id={$termin} AND it.ispit=i.id AND i.id={$ispit} "); if (mysql_result($q40, 0, 0) < 1) { zamgerlog("termin ne pripada ispitu", 3); zamgerlog2("id termina i ispita se ne poklapaju", $termin, $ispit); biguglyerror("Ispitni termin ne pripada datom ispitu"); return; } } // AKCIJE // Akcija koja briše ispitni termin if ($_REQUEST['akcija'] == "obrisi") { $q70 = myquery("select count(*) from student_ispit_termin where ispit_termin={$termin}"); $broj_studenata = mysql_result($q70, 0, 0); $q80 = myquery("select UNIX_TIMESTAMP(datumvrijeme) from ispit_termin where id={$termin}"); $datumvrijeme = date("d. m. Y. h:i:s", mysql_result($q80, 0, 0)); ?> <h4>Brisanje ispitnog termina <?php echo $datumvrijeme; ?> </h4> <p>Za ovaj termin se do sada prijavilo <b><?php echo $broj_studenata; ?> </b> studenata.<br /> Da li ste sigurni da ga želite obrisati?</p> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="obrisi_potvrda"> <input type="submit" value=" Briši "> <input type="submit" name="povratak" value=" Nazad "> </form> <?php return; } // Potvrda brisanja if ($_REQUEST["akcija"] == "obrisi_potvrda" && $_REQUEST['povratak'] != " Nazad " && check_csrf_token()) { $q90 = myquery("DELETE FROM student_ispit_termin WHERE ispit_termin={$termin}"); $q95 = myquery("DELETE FROM ispit_termin WHERE id={$termin}"); zamgerlog("izbrisan ispitni termin {$termin} (pp{$predmet}, ag{$ag})", 2); zamgerlog2("izbrisan ispitni termin", $termin, $predmet, $ag); nicemessage("Termin uspješno obrisan "); } // Tabela studenata koji su se prijavili za ovaj ispitni termin if ($_REQUEST["akcija"] == "studenti") { if ($_REQUEST['subakcija'] == "dodaj_studenta" && check_csrf_token()) { $student = intval($_REQUEST['student']); $q215 = myquery("select count(*) from student_ispit_termin where student={$student} and ispit_termin={$termin}"); if (mysql_result($q215, 0, 0) > 0) { nicemessage("Student je već prijavljen na ovaj termin!"); } else { $q220 = myquery("insert into student_ispit_termin set student={$student}, ispit_termin={$termin}"); } } if ($_REQUEST['subakcija'] == "izbaci_studenta" && check_csrf_token()) { $student = intval($_REQUEST['student']); $q225 = myquery("delete from student_ispit_termin where student={$student} and ispit_termin={$termin}"); } $q200 = myquery("select UNIX_TIMESTAMP(datumvrijeme) from ispit_termin where id={$termin}"); $datumvrijeme = date("d. m. Y. H:i:s", mysql_result($q200, 0, 0)); $q200 = myquery("SELECT o.ime, o.prezime, o.brindexa, o.id FROM osoba as o, student_ispit_termin as si WHERE o.id=si.student AND si.ispit_termin={$termin} order by o.prezime, o.ime"); ?> <p><b>Tabela prijavljenih za: <?php echo $datumvrijeme; ?> </b></p> <table border="0" cellspacing="1" cellpadding="2"> <thead> <tr bgcolor="#999999"> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">R.br.</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Prezime i ime</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Broj indexa</font></td> <td> </td> </tr> </thead> <tbody> <?php $brojac = 1; while ($r200 = mysql_fetch_row($q200)) { ?> <tr> <td><?php echo $brojac; ?> </td> <td><?php echo $r200[1]; ?> <?php echo $r200[0]; ?> </td> <td><?php echo $r200[2]; ?> </td> <td><?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="studenti"> <input type="hidden" name="subakcija" value="izbaci_studenta"> <input type="hidden" name="student" value="<?php echo $r200[3]; ?> "> <input type="submit" value="Izbaci" class="default"> </form> </td> </tr> <?php $brojac++; } ?> </table> <?php if ($brojac == 1) { print '<br>Do sada se niko nije prijavio za ovaj termin.'; } ?> <?php // Dodavanje studenta na termin print genform("POST"); ?> <br> <input type="hidden" name="subakcija" value="dodaj_studenta"> Dodajte studenta na termin:<br> <select name="student"> <?php $q210 = myquery("select o.id, o.prezime, o.ime from osoba as o, student_predmet as sp, ponudakursa as pk where sp.student=o.id and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} order by o.prezime, o.ime"); while ($r210 = mysql_fetch_row($q210)) { print "<option value=\"{$r210['0']}\">{$r210['1']} {$r210['2']}</option>\n"; } ?> </select> <input type="submit" value=" Dodaj "> </form> <br><hr/><br> <?php // Omogućićemo izmjenu ovog termina $_REQUEST['akcija'] = "izmijeni"; } // U ovoj akciji se samo iz baze podataka uzimaju vrijednosti, konkretna promjena se vrsi u akciji "izmijeni_potvrda" if ($_REQUEST["akcija"] == "izmijeni") { if (!$termin) { niceerror("Nije izabran termin."); return 0; } $q100 = myquery("SELECT UNIX_TIMESTAMP(datumvrijeme), UNIX_TIMESTAMP(deadline) , maxstudenata FROM ispit_termin WHERE id={$termin}"); $t1 = mysql_result($q100, 0, 0); $dan = date('d', $t1); $mjesec = date('m', $t1); $godina = date('Y', $t1); $sat = date('H', $t1); $minuta = date('i', $t1); $sekunda = date('s', $t1); $t2 = mysql_result($q100, 0, 1); $dan1 = date('d', $t2); $mjesec1 = date('m', $t2); $godina1 = date('Y', $t2); $sat1 = date('H', $t2); $minuta1 = date('i', $t2); $sekunda1 = date('s', $t2); $limit = mysql_result($q100, 0, 2); } // Potvrda izmjene postojeceg ispitnog termina if ($_POST['akcija'] == 'izmijeni_potvrda' && check_csrf_token()) { $limit = intval($_POST['limit']); $dan = intval($_POST['day']); $mjesec = intval($_POST['month']); $godina = intval($_POST['year']); $sat = intval($_POST['sat']); $minuta = intval($_POST['minuta']); $sekunda = intval($_POST['sekunda']); $dan1 = intval($_POST['1day']); $mjesec1 = intval($_POST['1month']); $godina1 = intval($_POST['1year']); $sat1 = intval($_POST['sat1']); $minuta1 = intval($_POST['minuta1']); $sekunda1 = intval($_POST['sekunda1']); $t1 = mktime($sat, $minuta, $sekunda, $mjesec, $dan, $godina); $t2 = mktime($sat1, $minuta1, $sekunda1, $mjesec1, $dan1, $godina1); //Provjera ispravnosti if (!checkdate($mjesec, $dan, $godina)) { niceerror("Odabrani datum je nemoguć"); } else { if ($sat < 0 || $sat > 24 || $minuta < 0 || $minuta > 60 || $sekunda < 0 || $sekunda > 60) { niceerror("Odabrano vrijeme je nemoguće"); } else { if (!checkdate($mjesec1, $dan1, $godina1)) { niceerror("Odabrani datum za rok prijave je nemoguć"); } else { if ($sat1 < 0 || $sat1 > 24 || $minuta1 < 0 || $minuta1 > 60 || $sekunda1 < 0 || $sekunda1 > 60) { niceerror("Odabrano vrijeme za rok prijave je nemoguće"); } else { if ($limit <= 0) { niceerror("Maksimalni broj studenata na ispitu mora biti veći od nule"); } else { if ($t1 < $t2) { niceerror("Krajnji rok za prijavu ispita mora raniji od tačnog vremena održavanja ispita"); } else { nicemessage("Uspješno izmijenjen termin."); $q110 = myquery("UPDATE ispit_termin SET datumvrijeme=FROM_UNIXTIME('{$t1}') , maxstudenata={$limit} , deadline=FROM_UNIXTIME('{$t2}'), ispit={$ispit} WHERE id={$termin}"); zamgerlog("izmijenjen ispitni termin", 2); zamgerlog2("izmijenjen ispitni termin", $termin); } } } } } } // Radi ljepšeg ispisa, dodajemo nule $dan = nuliraj($dan); $mjesec = nuliraj($mjesec); $sat = nuliraj($sat); $minuta = nuliraj($minuta); $sekunda = nuliraj($sekunda); $dan1 = nuliraj($dan1); $mjesec1 = nuliraj($mjesec1); $sat1 = nuliraj($sat1); $minuta1 = nuliraj($minuta1); $sekunda1 = nuliraj($sekunda1); } // Dodavanje novog ispitnog termina if ($_POST['akcija'] == 'dodaj_potvrda' && check_csrf_token()) { $limit = intval($_POST['limit']); $dan = intval($_POST['day']); $mjesec = intval($_POST['month']); $godina = intval($_POST['year']); $sat = intval($_POST['sat']); $minuta = intval($_POST['minuta']); $sekunda = intval($_POST['sekunda']); $dan1 = intval($_POST['1day']); $mjesec1 = intval($_POST['1month']); $godina1 = intval($_POST['1year']); $sat1 = intval($_POST['sat1']); $minuta1 = intval($_POST['minuta1']); $sekunda1 = intval($_POST['sekunda1']); $t1 = mktime($sat, $minuta, $sekunda, $mjesec, $dan, $godina); $t2 = mktime($sat1, $minuta1, $sekunda1, $mjesec1, $dan1, $godina1); //Provjera ispravnosti if (!checkdate($mjesec, $dan, $godina)) { niceerror("Odabrani datum je nemoguć"); } else { if ($sat < 0 || $sat > 24 || $minuta < 0 || $minuta > 60 || $sekunda < 0 || $sekunda > 60) { niceerror("Odabrano vrijeme je nemoguće"); } else { if (!checkdate($mjesec1, $dan1, $godina1)) { niceerror("Odabrani datum za rok prijave je nemoguć"); } else { if ($sat1 < 0 || $sat1 > 24 || $minuta1 < 0 || $minuta1 > 60 || $sekunda1 < 0 || $sekunda1 > 60) { niceerror("Odabrano vrijeme za rok prijave je nemoguće"); } else { if ($limit <= 0) { niceerror("Maksimalni broj studenata na ispitu mora biti veći od nule"); } else { if ($t1 < $t2) { niceerror("Krajnji rok za prijavu ispita mora raniji od tačnog vremena održavanja ispita"); } else { nicemessage("Uspješno kreiran novi termin."); $q = myquery("INSERT INTO ispit_termin SET datumvrijeme=FROM_UNIXTIME('{$t1}'), maxstudenata={$limit} , ispit={$ispit} , deadline=FROM_UNIXTIME('{$t2}')"); zamgerlog2("kreiran novi ispitni termin", mysql_insert_id(), $predmet, $ag); zamgerlog("kreiran novi ispitni termin pp{$predmet}, ag{$ag}", 2); } } } } } } // Radi ljepšeg ispisa, dodajemo nule $dan = nuliraj($dan); $mjesec = nuliraj($mjesec); $sat = nuliraj($sat); $minuta = nuliraj($minuta); $sekunda = nuliraj($sekunda); $dan1 = nuliraj($dan1); $mjesec1 = nuliraj($mjesec1); $sat1 = nuliraj($sat1); $minuta1 = nuliraj($minuta1); $sekunda1 = nuliraj($sekunda1); } // GLAVNI EKRAN // Tabela objavljenih termina za predmet $q10 = myquery("SELECT id, UNIX_TIMESTAMP(datumvrijeme), UNIX_TIMESTAMP(deadline), maxstudenata FROM ispit_termin WHERE ispit={$ispit} order by datumvrijeme"); ?> <b>Objavljeni termini:</b> <br><br> <table border="0" cellspacing="1" cellpadding="2"> <thead> <tr bgcolor="#999999"> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">R.br.</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Vrijeme termina</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Rok za prijavu</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Prijavljeno</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Max.</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Opcije</font></td> </tr> </thead> <tbody> <?php $brojac = 1; $uk_prijavljeno = 0; while ($r10 = mysql_fetch_row($q10)) { $id_termina = $r10[0]; $vrijeme_termina = date("d.m.Y. H:i", date($r10[1])); $rok_prijave = date("d.m.Y. H:i", date($r10[2])); $max_studenata = $r10[3]; $q20 = myquery("select count(*) from student_ispit_termin where ispit_termin={$id_termina}"); $prijavljeno = mysql_result($q20, 0, 0); $uk_prijavljeno += $prijavljeno; ?> <tr> <td><?php echo $brojac; ?> </td> <td align="center"><?php echo $vrijeme_termina; ?> </td> <td align="center"><font color="#FF0000"><?php echo $rok_prijave; ?> </font></td> <td align="center"><?php echo $prijavljeno; ?> </td> <td align="center"><?php echo $max_studenata; ?> </td> <td align="center"> <a href="?sta=nastavnik/prijava_ispita&akcija=izmijeni&termin=<?php echo $id_termina; ?> &ispit=<?php echo $ispit; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Izmijeni</a> <a href="?sta=nastavnik/prijava_ispita&akcija=obrisi&termin=<?php echo $id_termina; ?> &ispit=<?php echo $ispit; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Obriši</a> <a href="?sta=nastavnik/prijava_ispita&akcija=studenti&termin=<?php echo $id_termina; ?> &ispit=<?php echo $ispit; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Studenti</a> <a href="?sta=izvjestaj/termini_ispita&termin=<?php echo $id_termina; ?> ">Izvještaj</a> </td> </tr> <?php $brojac++; } ?> <tr> <td colspan="3" align="right">UKUPNO: </td> <td align="center"><?php echo $uk_prijavljeno; ?> </td> <td colspan="2"> </td> </tr> </tbody></table> <?php if ($brojac == 1) { ?> <br>Nije registrovan nijedan termin za ovaj ispit<br><br><?php } ?> <br><hr /> <?php // Forma za unos novog ispitnog termina ili editovanje postojećeg if ($dan == 0) { $dan = $dan1 = date('d'); $mjesec = $mjesec1 = date('m'); $godina = $godina1 = date('Y'); $sat = $sat1 = date('H'); $minuta = $minuta1 = date('i'); $sekunda = $sekunda1 = date('s'); $limit = 0; // Ako akcija nije izmjena, brišemo vrijednost varijable termin $termin = 0; } ?> <?php echo genform("POST"); ?> <input type="hidden" name="termin" value="<?php echo $termin; ?> "> <input type="hidden" name="akcija" value="<?php if ($termin <= 0) { print 'dodaj_potvrda'; } else { print 'izmijeni_potvrda'; } ?> "> <p><b><?php if ($_REQUEST["akcija"] == "izmijeni" || $_REQUEST["akcija"] == "studenti") { print 'Izmjena termina'; } else { print 'Registrovanje novog termina'; } ?> </b> <br/><br/> Datum i vrijeme ispita:<br/> <?php echo datectrl($dan, $mjesec, $godina); ?> <input type="text" name="sat" size="2" value="<?php echo $sat; ?> "> <b>:</b> <input type="text" name="minuta" size="2" value="<?php echo $minuta; ?> "> <b>:</b> <input type="text" name="sekunda" size="2" value="<?php echo $sekunda; ?> "> <br/><br/> Krajnji rok za prijavu ispita: <br/> <?php echo datectrl($dan1, $mjesec1, $godina1, "1"); ?> <input type="text" name="sat1" size="2" value="<?php echo $sat1; ?> "> <b>:</b> <input type="text" name="minuta1" size="2" value="<?php echo $minuta1; ?> "> <b>:</b> <input type="text" name="sekunda1" size="2" value="<?php echo $sekunda1; ?> "> <br/><br/> Maksimalan broj studenata: <input type="text" size="2" name="limit" value="<?php echo $limit; ?> " class="default"> <br/><br/> <input type="submit" value="<?php if ($_REQUEST["akcija"] == "izmijeni" || $_REQUEST["akcija"] == "studenti") { print 'Izmijeni'; } else { print 'Dodaj'; } ?> " class="default"><br/><br/> <a href="?sta=nastavnik/ispiti&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> "><<< Nazad</a><br/> </form> <?php }
function nastavnik_ispiti() { global $userid, $user_siteadmin, $user_studentska, $conf_files_path; global $sadrzaj_bafera; require "lib/manip.php"; global $mass_rezultat; // za masovni unos studenata u grupe // Parametri $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); $termin = intval($_REQUEST['termin']); // Naziv predmeta $q10 = myquery("select naziv from predmet where id={$predmet}"); if (mysql_num_rows($q10) < 1) { biguglyerror("Nepoznat predmet"); zamgerlog("ilegalan predmet {$predmet}", 3); //nivo 3: greska return; } $predmet_naziv = mysql_result($q10, 0, 0); // Da li korisnik ima pravo ući u modul? if (!$user_siteadmin && !$user_studentska) { $q20 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q20) < 1 || mysql_result($q20, 0, 0) == "asistent") { zamgerlog("nastavnik/ispiti privilegije (predmet pp{$predmet})", 3); biguglyerror("Nemate pravo pristupa ovoj opciji"); return; } } // Neki korisni podaci o ispitu $ispit = intval($_REQUEST['ispit']); if ($ispit > 0) { $q30 = myquery("(select UNIX_TIMESTAMP(i.datum), k.id, k.gui_naziv, k.maxbodova from ispit as i, komponenta as k where i.id={$ispit} and i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=k.id) union (select UNIX_TIMESTAMP(i.datum), d.id, d.naziv from ispit as i, dogadjaj as d where i.id={$ispit} and i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=d.id)"); if (mysql_num_rows($q30) < 1) { niceerror("Nepostojeći ispit"); print "Moguće je da ste ga već obrisali? Ako ste koristili dugme Back vašeg browsera da biste došli na ovu stranicu, predlažemo da kliknete na link Ispiti sa lijeve strane kako biste dobili ažurnu informaciju."; zamgerlog("nepostojeci ispit {$ispit} ili nije sa predmeta (pp{$predmet}, ag{$ag})", 3); return; } } ?> <p> </p> <p><h3><?php echo $predmet_naziv; ?> - Ispiti / Događaji</h3></p> <?php // Masovni unos rezultata ispita if ($_POST['akcija'] == "massinput" && strlen($_POST['nazad']) < 1 && check_csrf_token()) { if ($ispit > 0) { $finidatum = date("d. m. Y", mysql_result($q30, 0, 0)); $tipispita = mysql_result($q30, 0, 1); $fini_naziv_ispita = mysql_result($q30, 0, 2); print "<p><b>Masovni unos ocjena za ispit {$fini_naziv_ispita}, održan {$finidatum}</b></p>"; $maxbodova = mysql_result($q30, 0, 3); } if ($_POST['fakatradi'] != 1) { $ispis = 1; } else { $ispis = 0; } if ($ispis) { ?> Akcije koje će biti urađene:<br/><br/> <?php echo genform("POST"); ?> <input type="hidden" name="fakatradi" value="1"> <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 // Dozvoljavamo kreiranje blank ispita // if (count($mass_rezultat)==0) { ... // Registrovati ispit u bazi - ovaj kod se trenutno ne koristi, ali ga neću još izbacivati if ($ispit == 0) { $naziv = my_escape($_POST['naziv']); $dan = intval($_POST['day']); $mjesec = intval($_POST['month']); $godina = intval($_POST['year']); $mdat = mktime(0, 0, 0, $mjesec, $dan, $godina); $tipispita = intval($_POST['tipispita']); // Da li je ispit vec registrovan? $q110 = myquery("select id from ispit where predmet={$predmet} and datum=FROM_UNIXTIME('{$mdat}') and komponenta={$tipispita} and akademska_godina={$ag}"); if (mysql_num_rows($q110) > 0) { $ispit = mysql_result($q110, 0, 0); if ($ispis) { print "Dodati rezultate na postojeći ispit (ID: {$ispit}):<br/>"; } $dodavanje = 1; } else { if (!$ispis) { $q120 = myquery("insert into ispit set predmet={$predmet}, akademska_godina={$ag}, datum=FROM_UNIXTIME('{$mdat}'), komponenta={$tipispita}"); $q130 = myquery("select id from ispit where predmet={$predmet} and akademska_godina={$ag} and datum=FROM_UNIXTIME('{$mdat}') and komponenta={$tipispita}"); if (mysql_num_rows($q130) < 1) { // Ovo se ne može desiti?? zamgerlog("unos ispita nije uspio (predmet pp{$predmet}, ag{$ag}, datum {$mdat}, tipispita {$tipispita})", 3); niceerror("Unos ispita nije uspio."); return; } $ispit = mysql_result($q130, 0, 0); $dodavanje = 0; } } } else { $dodavanje = 1; } // Uvijek je dodavanje // Obrada rezultata $boja1 = "#EEEEEE"; $boja2 = "#DDDDDD"; $boja = $boja1; $bojae = "#FFE3DD"; foreach ($mass_rezultat['ime'] as $student => $ime) { $prezime = $mass_rezultat['prezime'][$student]; $bodova = $mass_rezultat['podatak1'][$student]; // pretvori bodove u float uz obradu decimalnog zareza $fbodova = floatval(str_replace(",", ".", $bodova)); // samo 0 priznajemo za nula bodova, inace student nije izasao na ispit if ($fbodova == 0 && strpos($bodova, "0") === FALSE) { if ($ispis) { ?> <tr bgcolor="<?php echo $boja; ?> "> <td><?php echo $prezime; ?> </td><td><?php echo $ime; ?> </td> <td>nije izašao/la na ispit (unesena je ocjena: <?php echo $bodova; ?> )</td> </tr> <?php if ($boja == $boja1) { $boja = $boja2; } else { $boja = $boja1; } } continue; } $bodova = $fbodova; // Da li je broj bodova veći od maksimalno dozvoljenog? if ($bodova > $maxbodova) { if ($ispis) { ?> <tr bgcolor="<?php echo $bojae; ?> "> <td><?php echo $prezime; ?> </td><td><?php echo $ime; ?> </td> <td>broj bodova <?php echo $bodova; ?> je veći od maksimalnih <?php echo $maxbodova; ?> </td> </tr> <?php } $greska = 1; continue; } // Određujem ponudu kursa (provjeru je već trebao uraditi massinput ali neka je i ovdje) $q135 = 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}"); if (mysql_num_rows($q135) < 1) { if ($ispis) { ?> <tr bgcolor="<?php echo $bojae; ?> "> <td><?php echo $prezime; ?> </td><td><?php echo $ime; ?> </td> <td>nije upisan/a na predmet</td> </tr> <?php } $greska = 1; continue; // Ne smijemo dozvoliti da se ovakav podatak unese u bazu } else { // Ponudakursa nam treba za update_komponente() $ponudakursa = mysql_result($q135, 0, 0); } // Da li je ocjena za studenta vec ranije unesena? if ($dodavanje == 1) { $q140 = myquery("select ocjena from ispitocjene where ispit={$ispit} and student={$student}"); if (mysql_num_rows($q140) > 0) { if ($ispis) { $oc2 = mysql_result($q140, 0, 0); ?> <tr bgcolor="<?php echo $bojae; ?> "> <td><?php echo $prezime; ?> </td><td><?php echo $ime; ?> </td> <td>već ima rezultat <?php echo $oc2; ?> ; koristite pogled grupe za izmjenu</td> </tr> <?php } $greska = 1; continue; // Ne smijemo dozvoliti dvostruke ocjene u bazi } } // Zakljucak if ($ispis) { ?> <tr bgcolor="<?php echo $boja; ?> "> <td><?php echo $prezime; ?> </td><td><?php echo $ime; ?> </td> <td><?php echo $bodova; ?> bodova</td> </tr> <?php if ($boja == $boja1) { $boja = $boja2; } else { $boja = $boja1; } } else { $q150 = myquery("insert into ispitocjene set ispit={$ispit}, student={$student}, ocjena={$bodova}"); // Update komponenti update_komponente($student, $ponudakursa, $tipispita); } } 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 { // Generisem statičku verziju izvještaja predmet $_REQUEST['skrati'] = "da"; $_REQUEST['sakrij_imena'] = "da"; ob_start('ob_file_callback'); include "izvjestaj/predmet.php"; //ovdje ga ukljucujem eval("izvjestaj_predmet();"); ob_end_clean(); if (!file_exists("{$conf_files_path}/izvjestaj_predmet")) { mkdir("{$conf_files_path}/izvjestaj_predmet", 0777, true); } $filename = $conf_files_path . "/izvjestaj_predmet/{$predmet}-{$ag}-" . date("dmY") . ".html"; file_put_contents($filename, $sadrzaj_bafera); zamgerlog("masovni rezultati ispita za predmet pp{$predmet}", 4); ?> Rezultati ispita su upisani. <script language="JavaScript"> location.href='?sta=nastavnik/ispiti&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> '; </script> <?php } } if ($_POST['akcija'] == "massinput" && $_POST['nazad'] == " Nazad ") { // Redirektujemo na akciju masovni_unos $_REQUEST['akcija'] = 'masovni_unos'; } // Brisanje ispita if ($_REQUEST['akcija'] == "brisanje" && $ispit > 0 && $_REQUEST['potvrdabrisanja'] != " Nazad ") { $q200 = myquery("select count(*) from ispitocjene where ispit={$ispit}"); $brojstudenata = mysql_result($q200, 0, 0); if ($_REQUEST['potvrdabrisanja'] == " Briši " && check_csrf_token()) { $komponenta = mysql_result($q30, 0, 1); zamgerlog("obrisan ispit {$ispit} (pp{$predmet}, ag{$ag})", 4); // 4 - audit print "<p>Brisanje u toku. Molimo budite strpljivi, ova akcija može potrajati nekoliko minuta.</p>\n\n\n\n"; $q210 = myquery("select io.student, pk.id from ispitocjene as io, student_predmet as sp, ponudakursa as pk where io.ispit={$ispit} and io.student=sp.student and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); $brojac = 1; while ($r210 = mysql_fetch_row($q210)) { $student = $r210[0]; $ponudakursa = $r210[1]; print "Ažuriram bodove za studenta {$brojac} od {$brojstudenata}<br />\n\n"; $q220 = myquery("delete from ispitocjene where ispit={$ispit} and student={$student}"); update_komponente($student, $ponudakursa, $komponenta); $brojac++; } print "Brišem termine za prijavu ispita i prijave<br />\n\n"; $q230 = myquery("select id from ispit_termin where ispit={$ispit}"); while ($r230 = mysql_fetch_row($q230)) { $termin = $r230[0]; $q240 = myquery("delete from student_ispit_termin where ispit_termin={$termin}"); $q250 = myquery("delete from ispit_termin where id={$termin}"); } $q260 = myquery("delete from ispit where id={$ispit}"); nicemessage("Svi podaci su ažurirani."); print "<a href=\"?sta=nastavnik/ispiti&predmet={$predmet}&ag={$ag}\">Nazad</a>\n"; return; } else { $finidatum = date("d. m. Y", mysql_result($q30, 0, 0)); $tipispita = mysql_result($q30, 0, 2); $q270 = myquery("select count(*) from student_ispit_termin as sit, ispit_termin as it where it.ispit={$ispit} and sit.ispit_termin=it.id"); $brojprijava = mysql_result($q270, 0, 0); print genform("POST"); ?> <h2>Zatražili ste brisanje ispita "<?php echo $tipispita; ?> " održanog <?php echo $finidatum; ?> </h2> <p><font color="red"><b>Brisanje ispita je vrlo destruktivna akcija!</b></font></p> <p>Brisanjem ispita potpuno ćete promijeniti bodovanje svih studenata na predmetu. Ova operacija se ne može vratiti! Da li ste sigurni da to želite?<br /><br /> Na odabranom ispitu su registrovani rezultati za <b><?php echo $brojstudenata; ?> studenata</b>.<br /><br /> <?php if ($brojprijava > 0) { ?> Za polaganje ovog ispita je prijavljeno <b><?php echo $brojprijava; ?> studenata</b>.<br /><br /><?php } ?> <input type="submit" name="potvrdabrisanja" value=" Briši "> <input type="submit" name="potvrdabrisanja" value=" Nazad "> <?php return; } } // Promjena ispita if ($_REQUEST['akcija'] == "promjena" && $ispit > 0 && $_REQUEST['potvrdapromjene'] != " Nazad ") { $komponenta = mysql_result($q30, 0, 1); $q300 = myquery("select count(*) from ispitocjene where ispit={$ispit}"); $brojstudenata = mysql_result($q300, 0, 0); if ($_REQUEST['potvrdapromjene'] == " Promijeni " && check_csrf_token()) { $dan = intval($_POST['day']); $mjesec = intval($_POST['month']); $godina = intval($_POST['year']); $mdat = mktime(0, 0, 0, $mjesec, $dan, $godina); if ($komponenta != $_POST['tipispita']) { zamgerlog("promijenjen tip ispita {$ispit} (pp{$predmet}, ag{$ag})", 4); // 4 - audit $nova_komponenta = intval($_POST['tipispita']); print "<p>Ažuriranje u toku. Molimo budite strpljivi, ova akcija može potrajati nekoliko minuta.</p>\n\n\n\n"; $q310 = myquery("update ispit set komponenta={$nova_komponenta} where id={$ispit}"); $q320 = myquery("select io.student, pk.id from ispitocjene as io, student_predmet as sp, ponudakursa as pk where io.ispit={$ispit} and io.student=sp.student and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); $brojac = 1; while ($r320 = mysql_result($q320)) { $student = $r320[0]; $ponudakursa = $r320[1]; print "Ažuriram bodove za studenta {$brojac} od {$brojstudenata}<br />\n\n"; update_komponente($student, $ponudakursa, $komponenta); update_komponente($student, $ponudakursa, $nova_komponenta); $brojac++; } } if ($mdat != mysql_result($q30, 0, 0)) { zamgerlog("promijenjen datum ispita {$ispit} (pp{$predmet}, ag{$ag})", 4); // 4 - audit $q330 = myquery("update ispit set datum=FROM_UNIXTIME('{$mdat}') where id={$ispit}"); print "<p>Ažuriram datum ispita.</p>\n"; } nicemessage("Svi podaci su ažurirani."); print "<a href=\"?sta=nastavnik/ispiti&predmet={$predmet}&ag={$ag}\">Nazad</a>\n"; return; } else { $finidatum = date("d. m. Y", mysql_result($q30, 0, 0)); $dan = date("d", mysql_result($q30, 0, 0)); $mjesec = date("m", mysql_result($q30, 0, 0)); $godina = date("Y", mysql_result($q30, 0, 0)); $tipispita = mysql_result($q30, 0, 2); print genform("POST"); ?> <h2>Zatražili ste promjenu podataka ispita/događaja "<?php echo $tipispita; ?> " održanog <?php echo $finidatum; ?> </h2> <p>Na odabranom ispitu su registrovani rezultati za <b><?php echo $brojstudenata; ?> studenata</b>.<br><br> <p>Datum ispita/događaja: <?php echo datectrl($dan, $mjesec, $godina); ?> </p> <p>Tip ispita/događaja: <select name="tipispita" class="default"><?php $q340 = myquery("(select k.id,k.gui_naziv from tippredmeta_komponenta as tpk, komponenta as k, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and (k.tipkomponente=1 or k.tipkomponente=2) order by k.id) union (select id,naziv from dogadjaj order by id)"); while ($r340 = mysql_fetch_row($q340)) { print '<option value="' . $r340[0] . '"'; if ($komponenta == $r340[0]) { print ' SELECTED'; } print '>' . $r340[1] . '</option>' . "\n"; } ?> </select><br /> <font color="red">Promjenom tipa ispita mijenjate bodovanje za sve studente! Ova operacija može potrajati malo duže.</font></p> <input type="submit" name="potvrdapromjene" value=" Promijeni "> <input type="submit" name="potvrdapromjene" value=" Nazad "> <?php return; } } // Masovni unos rezultata ispita if ($_REQUEST['akcija'] == "masovni_unos") { $finidatum = date("d. m. Y", mysql_result($q30, 0, 0)); $tipispita = mysql_result($q30, 0, 2); // Korisničke preference za masovni unos $format = intval($_POST['format']); if (!$_POST['format']) { $q400 = myquery("select vrijednost from preference where korisnik={$userid} and preferenca='mass-input-format'"); if (mysql_num_rows($q400) > 0) { $format = mysql_result($q400, 0, 0); } else { //default vrijednost $format = 0; } } $separator = intval($_POST['separator']); if (!$_POST['separator']) { $q410 = myquery("select vrijednost from preference where korisnik={$userid} and preferenca='mass-input-separator'"); if (mysql_num_rows($q410) > 0) { $separator = mysql_result($q410, 0, 0); } else { //default vrijednost $separator = 0; } } ?> <h4>Masovni unos ocjena za ispit <?php echo $tipispita; ?> , održan <?php echo $finidatum; ?> </h4> <?php echo genform("POST"); ?> <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"> <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><a href="?sta=nastavnik/ispiti&predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Nazad na tabelu ispita</a></p> <?php return; } // Kreiranje novog ispita if ($_REQUEST['akcija'] == "novi_ispit") { $naziv = my_escape($_POST['naziv']); $dan = intval($_POST['day']); $mjesec = intval($_POST['month']); $godina = intval($_POST['year']); $mdat = mktime(0, 0, 0, $mjesec, $dan, $godina); $tipispita = intval($_POST['tipispita']); // Da li je ispit vec registrovan? $q450 = myquery("select id from ispit where predmet={$predmet} and datum=FROM_UNIXTIME('{$mdat}') and komponenta={$tipispita} and akademska_godina={$ag}"); if (mysql_num_rows($q450) > 0) { nicemessage("Ispit/događaj već postoji."); } else { $q460 = myquery("insert into ispit set predmet={$predmet}, akademska_godina={$ag}, datum=FROM_UNIXTIME('{$mdat}'), komponenta={$tipispita}"); nicemessage("Ispit/događaj uspješno kreiran."); zamgerlog("kreiran novi ispit/događaj (predmet pp{$predmet}, ag{$ag})", 4); // 4 - audit } } // Unos novog tipa ispita ili događaja (u tabelu dogadjaj) if ($_REQUEST['akcija'] == "novi_dogadjaj") { $naziv = my_escape($_POST['naziv']); $ime = strval($_POST['ime']); // Da li je događaj vec registrovan? $q520 = myquery("select id from dogadjaj where naziv='{$_POST['ime']}'"); if (mysql_num_rows($q520) > 0) { nicemessage("Događaj već postoji."); } elseif ($ime == "") { nicemessage("Polje za unos novog događaja je prazno!"); } elseif ($ime == "Zadace" || $ime == "I parcijalni" || $ime == "II parcijalni" || $ime == "Integralni" || $ime == "Usmeni" || $ime == "Prisustvo") { nicemessage("Događaj već postoji u obliku ispita."); } else { $q540 = myquery("insert into dogadjaj set naziv='{$_POST['ime']}'"); $q550 = myquery("select id from dogadjaj"); $temp2 = mysql_num_rows($q550); nicemessage("Događaj uspješno kreiran."); zamgerlog("kreiran novi događaj (predmet pp{$ime}, ag{$ag})", 4); // 4 - audit } } // GLAVNI EKRAN // Tabela unesenih ispita $q500 = myquery("(select i.id,UNIX_TIMESTAMP(i.datum),k.gui_naziv,0 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) union (select i.id,UNIX_TIMESTAMP(i.datum),d.naziv,1 from ispit as i, dogadjaj as d where i.predmet={$predmet} and i.akademska_godina={$ag} and i.komponenta=d.id)"); ?> <br> <table border="0" cellspacing="1" cellpadding="2"> <thead> <tr bgcolor="#999999"> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Tip ispita/događaja</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Datum ispita/događaja</font></td> <td><font style="font-family:DejaVu Sans,Verdana,Arial,sans-serif;font-size:11px;font-weight:bold;color:white;">Opcije</font></td> </tr> </thead> <tbody> <?php $brojac = 1; if (mysql_num_rows($q500) < 1) { print "Nije unesen nijedan ispit."; } while ($r500 = mysql_fetch_row($q500)) { if ($r500[3] == 0) { ?> <tr> <td align="left"><?php echo $r500[2]; ?> </td> <td align="left"><?php echo date("d.m.Y.", date($r500[1])); ?> </td> <td align="left"> <a href="?sta=nastavnik/ispiti&akcija=masovni_unos&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Masovni unos rezultata</a> * <a href="?sta=nastavnik/ispiti&akcija=promjena&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Promjena</a> * <a href="?sta=nastavnik/ispiti&akcija=brisanje&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Brisanje</a> * <a href="?sta=nastavnik/prijava_ispita&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Termini</a> * <a href="?sta=izvjestaj/ispit&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> ">Izvještaj</a> </td> </tr> <?php } else { ?> <tr> <td align="left"><?php echo $r500[2]; ?> </td> <td align="left"><?php echo date("d.m.Y.", date($r500[1])); ?> </td> <td align="left"> <a href="?sta=nastavnik/ispiti&akcija=promjena&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Promjena</a> * <a href="?sta=nastavnik/ispiti&akcija=brisanje&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Brisanje</a> * <a href="?sta=nastavnik/prijava_ispita&ispit=<?php echo $r500[0]; ?> &predmet=<?php echo $predmet; ?> &ag=<?php echo $ag; ?> ">Termini</a> </td> </tr> <?php } $brojac++; } ?> </tbody></table><br> <p>Ako želite da unosite rezultate ispita jedan po jedan u tabelu studenata, koristite <a href="?sta=saradnik/intro">Spisak predmeta i grupa</a></p> <?php // Forma za kreiranje ispita ?> <p> </p> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="novi_ispit"> <p><b>Dodaj novi ispit/događaj</b></p> <!--br/>Naziv ispita: <input type="text" name="naziv" size="20"> --> <p>Tip ispita/događaja: <select name="tipispita" class="default"><?php $tipispita = intval($_POST['tipispita']); $q510 = myquery("(select k.id,k.gui_naziv from tippredmeta_komponenta as tpk,komponenta as k, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and (k.tipkomponente=1 or k.tipkomponente=2) order by k.id) union (select id, naziv from dogadjaj order by id)"); while ($r510 = mysql_fetch_row($q510)) { print '<option value="' . $r510[0] . '"'; if ($tipispita == $r510[0]) { print ' SELECTED'; } print '>' . $r510[1] . '</option>' . "\n"; } ?> </select> Datum: <?php $day = intval($_POST['day']); $month = intval($_POST['month']); $year = intval($_POST['year']); if ($day > 0) { print datectrl($day, $month, $year); } else { print datectrl(date('d'), date('m'), date('Y')); } ?> <br/><br/> <input type="submit" value=" Dodaj "> <br/><br/><br/> </form></p> <?php // Forma za unos novih događaja ?> <p> </p> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="novi_dogadjaj"> <p><b>Kreiraj novi tip događaja:</b></p> Naziv: <input name="ime" type="text" > <br /><br /> <input name="submitaj" type="submit" value="Spasi"> </form></p> <?php }
function studentska_anketa() { global $userid, $user_siteadmin, $user_studentska, $conf_site_url; global $_lv_; // Potrebno za genform() iz libvedran // Provjera privilegija if (!$user_studentska && !$user_siteadmin) { zamgerlog("nije studentska", 3); // 3: error zamgerlog2("nije studentska"); // 3: error biguglyerror("Pristup nije dozvoljen."); return; } // JavaScript ?> <script type="text/javascript"> function setVal(){ document.getElementById('tekst_novo_pitanje').value = pitanje_array[document.getElementById('pitanja').selectedIndex]; document.getElementById('tip_novo_pitanja').selectedIndex = tip_array[document.getElementById('pitanja').selectedIndex]; } var pitanje_array = new Array(); var tip_array = new Array(); var par=1; function switch_poredjenje(){ if (par==1){ document.getElementById('poredjenje_1').style.display = ''; par=0; } else { document.getElementById('poredjenje_1').style.display = 'none'; par=1; } } var help=1; function switch_izvjestaj(){ if (help==1) { document.getElementById('semestralni').style.display = ''; help=0; } else { document.getElementById('semestralni').style.display = 'none'; help=1; } } var help2=1; function switch_izvjestaj2() { if (help2==1) { document.getElementById('po_smjerovima').style.display = ''; help2=0; } else { document.getElementById('po_smjerovima').style.display = 'none'; help2=1; } } </script> <?php // Određujemo akciju $akcija = $_REQUEST['akcija']; $anketa = intval($_REQUEST['anketa']); $id = intval($_REQUEST['anketa']); // Deaktivacija ankete if ($_REQUEST['akcija'] == "deaktivacija") { $q500 = myquery("update anketa_anketa set aktivna=0 where id={$id}"); $q510 = myquery("update anketa_predmet set aktivna=0 where anketa={$id}"); zamgerlog("deaktivirana anketa {$id}", 4); // nivo 4 = audit zamgerlog2("deaktivirana anketa", $id); } // Aktivacija ankete if ($_REQUEST['akcija'] == "aktivacija") { // Prvo sve ankete postavimo na neaktivne $q520 = myquery("update anketa_anketa set aktivna=0"); $q530 = myquery("update anketa_predmet set aktivna=0 where anketa={$id}"); // ...a zatim datu postavimo kao aktivnu jer u datom trenutku samo jedna anketa može biti aktivna. // Automatski postavljamo i to da vise nije moguće editovati pitanja date ankete pošto je postala aktivna $q540 = myquery("update anketa_anketa set aktivna=1, editable=0 where id={$id}"); $q550 = myquery("update anketa_predmet set aktivna=1 where anketa={$id}"); print "<center><span style='color:#009900'>Anketa je postavljena kao aktivna!</span></center>"; zamgerlog("aktivirana anketa {$id}", 4); zamgerlog2("aktivirana anketa", $id); } // Promjena podataka o anketi if ($akcija == "podaci") { if ($_POST['subakcija'] == "potvrda" && check_csrf_token()) { $naziv = my_escape($_REQUEST['naziv']); $opis = my_escape($_REQUEST['opis']); $dan = intval($_POST['1day']); $mjesec = intval($_POST['1month']); $godina = intval($_POST['1year']); $sat = intval($_POST['sat1']); $minuta = intval($_POST['minuta1']); $sekunda = intval($_POST['sekunda1']); $dan2 = intval($_POST['2day']); $mjesec2 = intval($_POST['2month']); $godina2 = intval($_POST['2year']); $sat2 = intval($_POST['sat2']); $minuta2 = intval($_POST['minuta2']); $sekunda2 = intval($_POST['sekunda2']); if (!checkdate($mjesec, $dan, $godina)) { niceerror("Odabrani datum je nemoguć"); return 0; } if (!checkdate($mjesec2, $dan2, $godina2)) { 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; } $mysqlvrijeme1 = time2mysql(mktime($sat, $minuta, $sekunda, $mjesec, $dan, $godina)); $mysqlvrijeme2 = time2mysql(mktime($sat2, $minuta2, $sekunda2, $mjesec2, $dan2, $godina2)); $q560 = myquery("update anketa_anketa set naziv='{$naziv}', datum_otvaranja='{$mysqlvrijeme1}', datum_zatvaranja='{$mysqlvrijeme2}', opis='{$opis}' where id={$anketa}"); zamgerlog("promijenjeni podaci za anketu {$anketa}", 2); zamgerlog2("promijenjeni podaci za anketu", $anketa); ?> <script language="JavaScript"> location.href='?sta=studentska/anketa&anketa=<?php echo $anketa; ?> &akcija=edit'; </script> <?php return; } print "<a href='?sta=studentska/anketa&akcija=edit&anketa={$anketa}'>Povratak nazad</a>"; $q580 = myquery("select id,UNIX_TIMESTAMP(datum_otvaranja),UNIX_TIMESTAMP(datum_zatvaranja),naziv,opis from anketa_anketa where id={$id}"); $datum_otvaranja = mysql_result($q580, 0, 1); $datum_zatvaranja = mysql_result($q580, 0, 2); $naziv = mysql_result($q580, 0, 3); ?> <center> <h2> <?php echo $naziv; ?> - izmjena podataka </h2> <?php $odan = date('d', $datum_otvaranja); $omjesec = date('m', $datum_otvaranja); $ogodina = date('Y', $datum_otvaranja); $osat = date('H', $datum_otvaranja); $ominuta = date('i', $datum_otvaranja); $osekunda = date('s', $datum_otvaranja); $zdan = date('d', $datum_zatvaranja); $zmjesec = date('m', $datum_zatvaranja); $zgodina = date('Y', $datum_zatvaranja); $zsat = date('H', $datum_zatvaranja); $zminuta = date('i', $datum_zatvaranja); $zsekunda = date('s', $datum_zatvaranja); ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="potvrda"> <table border="0" width="600"> <tr> <td valign="top" align="right" > Naziv: </td> <td valign="top"> <b><input type="text" name="naziv" value="<?php echo $naziv; ?> " class="default"></b><br/> </td> </tr> <tr> <td valign="top" align="right"> Datum otvaranja: </td> <td valign="top"> <b> <?php echo datectrl($odan, $omjesec, $ogodina, "1"); ?> <input type="text" name="sat1" size="1" value="<?php echo $osat; ?> "> <b>:</b> <input type="text" name="minuta1" size="1" value="<?php echo $ominuta; ?> "> <b>:</b> <input type="text" name="sekunda1" size="1" value="<?php echo $osekunda; ?> "> <br></b><br/> </td> </tr> <tr> <td valign="top" align="right"> Datum zatvaranja: </td> <td valign="top"> <b><b><?php echo datectrl($zdan, $zmjesec, $zgodina, "2"); ?> <input type="text" name="sat2" size="1" value="<?php echo $zsat; ?> "> <b>:</b> <input type="text" name="minuta2" size="1" value="<?php echo $zminuta; ?> "> <b>:</b> <input type="text" name="sekunda2" size="1" value="<?php echo $zsekunda; ?> "> <br></b><br/> </td> </tr> <tr> <td valign="top" align="right"> Opis: </td> <td valign="top"> <b><b><textarea name="opis" cols="50" rows="15" class="default"><?php echo mysql_result($q580, 0, 4); ?> </textarea></b><br/> </td> </tr> </table> <p> <input type="Submit" value=" Izmijeni "></form> </p> </center> <?php } else { if ($_POST['akcija'] == "novi" && check_csrf_token()) { // TODO dodati provjeru naziva $ak_godina = intval($_POST['akademska_godina']); $naziv = my_escape(substr($_POST['naziv'], 0, 100)); $prethodna_anketa = intval($_POST['prethodna_anketa']); print "Nova anketa je kreirana. Molimo sačekajte.<br/><br/>"; $q393 = myquery("insert into anketa_anketa set naziv='{$naziv}', datum_otvaranja=NOW(), datum_zatvaranja=NOW(), opis='', aktivna=0, editable=1, akademska_godina={$ak_godina}"); $anketa = mysql_insert_id(); $r394 = myquery("insert into anketa_predmet set anketa={$anketa}, predmet=NULL, akademska_godina={$ak_godina}, aktivna=0"); // FIXME Ovim je kreirana anketa za sve predmete... zamgerlog("kreirana nova anketa '{$naziv}' sa id-om {$anketa}", 4); zamgerlog2("kreirana nova anketa", $anketa); // Da li ćemo prekopirati pitanja od prošlogodišnje ankete ? if ($prethodna_anketa != 0) { // Ubaci pitanja od izabrane ankete za ponavljanje $q377 = myquery("insert into anketa_pitanje (anketa,tip_pitanja,tekst) select {$anketa},tip_pitanja,tekst from anketa_pitanje where anketa={$prethodna_anketa}"); } ?> <script language="JavaScript"> location.href='<?php echo genuri(); ?> &akcija=edit&anketa=<?php echo $anketa; ?> '; </script> <?php } else { if ($_REQUEST['akcija'] == "edit") { print "<a href='?sta=studentska/anketa'>Povratak nazad</a>"; // Subakcija koja se izvrsava kada se edituje neko od pitanja if ($_POST['subakcija'] == "edit_pitanje" && check_csrf_token()) { $pitanje = intval($_REQUEST['column_id']); if (isset($_REQUEST['obrisi'])) { $q800 = myquery("delete from anketa_pitanje where id={$pitanje}"); print " <center> <span style='color:#009900'> Pitanje uspješno obrisano! </span> </center>"; zamgerlog("obrisano pitanje na anketi {$anketa}", 2); zamgerlog2("obrisano pitanje na anketi", $anketa); } else { $tekst_pitanja = $_REQUEST['tekst_pitanja']; $tip_pitanja = $_REQUEST['tip_pitanja']; $q810 = myquery("update anketa_pitanje set tip_pitanja={$tip_pitanja}, tekst='{$tekst_pitanja}' where id={$pitanje}"); print " <center> <span style='color:#009900'> Pitanje uspješno izmjenjeno! </span> </center>"; zamgerlog("izmijenjeno pitanje na anketi {$anketa}", 2); zamgerlog2("izmijenjeno pitanje na anketi", $anketa); } } // subakcija koja se izvrsava kada se dodaje novo pitanje if ($_POST['subakcija'] == "novo_pitanje" && check_csrf_token()) { $tekst_pitanja = my_escape($_REQUEST['tekst_novo_pitanje']); $tip_pitanja = intval($_REQUEST['tip_novo_pitanja']); $q891 = myquery("select id from anketa_pitanje ORDER BY id desc limit 1"); $id_pitanja = mysql_result($q891, 0, 0) + 1; $q800 = myquery("insert into anketa_pitanje (anketa,tip_pitanja,tekst) values ({$anketa},{$tip_pitanja},'{$tekst_pitanja}')"); print " <center> <span style='color:#009900'> Pitanje uspješno dodano! </span> </center>"; zamgerlog("dodano pitanje na anketi {$anketa}", 2); zamgerlog2("dodano pitanje na anketi", $anketa); } // Osnovni podaci $id_ankete = intval($_REQUEST['anketa']); $q201 = myquery("select datum_otvaranja,datum_zatvaranja,naziv,opis,editable,akademska_godina from anketa_anketa where id={$id_ankete}"); $datum_otvaranja = mysql_result($q201, 0, 0); $datum_zatvaranja = mysql_result($q201, 0, 1); $naziv = mysql_result($q201, 0, 2); $opis = mysql_result($q201, 0, 3); $editable = mysql_result($q201, 0, 4); $ak_godina_ankete = mysql_result($q201, 0, 5); // broj pitanja $q203 = myquery("SELECT count(*) FROM anketa_pitanje WHERE anketa={$id_ankete}"); $broj_pitanja = mysql_result($q203, 0, 0); //kupimo pitanja $q202 = myquery("SELECT p.id, p.tekst,t.tip FROM anketa_pitanje p,anketa_tip_pitanja t WHERE p.tip_pitanja = t.id and p.anketa = {$id_ankete} order by p.id"); // id aktelne akademske godine $q010 = myquery("select id,naziv from akademska_godina where aktuelna=1"); $aktuelna_ak_god = mysql_result($q010, 0, 0); $q125 = myquery("select naziv from akademska_godina where id={$ak_godina_ankete}"); $naziv_ak_godina_ankete = mysql_result($q125, 0, 0); ?> <center> <table border="0" width="600" > <tr> <td valign="top" colspan="2" align="center"> <h2><?php echo $naziv; ?> za godinu <?php echo $naziv_ak_godina_ankete; ?> </h2> </td> </tr> <?php if ($ak_godina_ankete == $aktuelna_ak_god) { ?> <tr> <td valign="top" align="right" > Naziv: </td> <td valign="top"> <b><?php echo $naziv; ?> </b><br/> </td> </tr> <tr> <td valign="top" align="right"> Datum otvaranja: </td> <td valign="top"> <b><?php echo $datum_otvaranja; ?> </b><br/> </td> </tr> <tr> <td valign="top" align="right"> Datum zatvaranja: </td> <td valign="top"> <b><?php echo $datum_zatvaranja; ?> </b><br/> </td> </tr> <tr> <td valign="top" align="right"> Opis: </td> <td valign="top"> <b><?php echo $opis; ?> </b><br/></td> </tr> <tr> <td valign="top" align="right"> </td> <td valign="top"> <br /> <a href="?sta=izvjestaj/anketa_sumarno&anketa=<?php echo $id_ankete; ?> ">Sumarni izvještaj za anketu</a><br/></td> </tr> <tr> <td valign="top" colspan="2" align="center"> <hr/></td> </tr> <tr> <td valign="top" colspan="2" align="center"> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="podaci"> <input type="button" value=" Pregled " onclick="javascript:window.open('<?php echo $conf_site_url; ?> /index.php?sta=public/anketa&akcija=preview&anketa=<?php echo $id_ankete; ?> ');"> <input type="Submit" value=" Izmijeni "></form> </td> </tr> </table> <?php } else { print "</table>"; } // podaci o pitanjima koja pripadaju toj anketi function dropdown_anketa($tip) { $q283 = myquery("SELECT id, tip from anketa_tip_pitanja"); if ($tip == 1) { $lista = "<select id='tip_novo_pitanja' name='tip_novo_pitanja'>"; } else { $lista = "<select name='tip_pitanja'>"; } while ($r283 = mysql_fetch_row($q283)) { $lista .= "<option value='{$r283['0']}'"; if ($r283[1] == $tip) { $lista .= " selected"; } $lista .= ">{$r283['1']}</option>"; } $lista .= "</select>"; return $lista; } ?> <br/> <table width="800" border="0"> <tr bgcolor='#00AAFF'> <td><strong>Tekst pitanja</strong></td> <td><strong>Tip pitanja</strong></td> <?php // Da li se mogu dodavati nova pitanja ili mijenjati postojeća if ($editable == 0) { print "</tr>"; $i = 1; while ($r202 = mysql_fetch_row($q202)) { ?> <tr> <td colspan='2'><hr/></td> </tr> <tr <?php if ($i % 2 == 0) { print "bgcolor=\"#EEEEEE\""; } ?> > <td><?php echo $i; ?> . <?php echo $r202[1]; ?> </td> <td width='150'><?php echo $r202[2]; ?> </td> </tr> <?php $i++; } } else { print "<td> </td></tr>"; $i = 1; while ($r202 = mysql_fetch_row($q202)) { print genform("POST"); ?> <tr> <td colspan='3'> <hr/> </td> </tr> <input type='hidden' name='subakcija' value='edit_pitanje'> <tr <?php if ($i % 2 == 0) { print "bgcolor=\"#EEEEEE\""; } ?> > <input type='hidden' name='column_id' value='<?php echo $r202[0]; ?> '> <td><input name ='tekst_pitanja' size='100' value='<?php echo $r202[1]; ?> '/> </td> <td><?php echo dropdown_anketa($r202[2]); ?> </td> <td><input type='submit' value='Pošalji '><input type='submit' name='obrisi' value=' Obriši '></td> </tr> </form> <?php $i++; } $q284 = myquery("SELECT id, tekst, tip_pitanja FROM anketa_pitanje"); $lista_pitanja = "<select id = 'pitanja' name='pitanja' onChange=\"javascript:setVal();\">"; $Counter = 0; /* while ($r283=mysql_fetch_row($q284)) { $lista_pitanja.="<option value='$r283[0]'>$r283[1]</option>"; $lista_pitanja.="<script>pitanje_array[$Counter]='$r283[1]'; tip_array[$Counter]=$r283[2]-1; </script>"; $Counter++; }*/ $lista_pitanja .= "</select>"; ?> <tr><td colspan='3'><hr/><br> </td> </tr> <tr><td colspan='3'>Dodajte novo pitanje: </td> </tr> <tr><td colspan='3'>Odaberite postojeće pitanje za izmjenu: </td> </tr> <tr><td colspan='3'><?php echo $lista_pitanja; ?> </td> </tr> <tr><td colspan='3'>Novo pitanje: </td> </tr> <form name='' action="<?php echo genuri(); ?> &akcija=edit&anketa=<?php echo $anketa; ?> " method='POST'> <input type='hidden' name='subakcija' value='novo_pitanje'> <tr > <td>Tekst: <input name='tekst_novo_pitanje' id = 'tekst_novo_pitanje' size='100' /> </td> <td> Tip: <?php echo dropdown_anketa(1); ?> </td> <td><input type='submit' value=' Dodaj '><input type='reset' value='Poništi'></td> </tr> </form> <?php } print "</table>"; ?> </center> <?php } else { $q10 = myquery("select id,naziv from akademska_godina where aktuelna=1"); $ag = mysql_result($q10, 0, 0); ?> <center> <table width="600" border="0"> <tr><td align="left"> <p><h3>Studentska služba - Anketa</h3></p> <div class="anketa_naslov"> <p><h4>Aktuelna akademska godina</h4></p> </div> <?php // Gledamo da li je za ovu akademsku godinu kreirana ijedna anketa $q199 = myquery("select id,naziv,opis,aktivna from anketa_anketa where akademska_godina={$ag}"); if (mysql_num_rows($q199) == 0) { print "Za ovu akademsku godinu nije kreirana nijedna anketa"; } else { ?> <table width="100%" border="0"><?php while ($anketa_row = mysql_fetch_row($q199)) { ?> <tr><td width='50%'><?php echo $anketa_row[1]; ?> </td> <td><?php if ($anketa_row[3] == 0) { print "<a href='" . genuri() . "&akcija=aktivacija&anketa={$anketa_row['0']}'>Aktiviraj</a>"; } else { print "<a href='" . genuri() . "&akcija=deaktivacija&anketa={$anketa_row['0']}'>Deaktiviraj</a>"; } ?> </td> <td><a href="<?php echo genuri(); ?> &akcija=edit&anketa=<?php echo $anketa_row[0]; ?> ">Detalji</a></td></tr> <?php } print "</table>"; } // Forma za kreiranje ankete // Spisak anketa od prošlih godina, radi ponavljanja pitanja $q199b = myquery("select a.id, a.naziv, ak.naziv from anketa_anketa a, akademska_godina ak where a.akademska_godina = ak.id order by a.akademska_godina desc"); ?> <hr> <?php echo genform("POST"); ?> <input type="hidden" name="akcija" value="novi"> <input type="hidden" name="akademska_godina" value="<?php echo $ag; ?> "> <p><br><b>Nova anketa</b><br/><br/> Naziv ankete:<br/> <input type="text" name="naziv" size="50"> <input type="submit" value=" Dodaj "> <br />Ponovi pitanja od: <select title="Ponovi pitanja od" name="prethodna_anketa" id="prethodna_anketa"> <option value='0'> Bez ponavljanja </option> <?php while ($r199b = mysql_fetch_row($q199b)) { print "<option value='{$r199b['0']}'> {$r199b['1']} ({$r199b['2']})</option>"; } ?> </select> </form> <?php // Spisak anketa u prethodnim akademskim godinama ?> <hr /> <div class="anketa_naslov"> <p><h4>Prethodne akademske godine</h4></p> </div> <?php $q200 = myquery("select a.id, a.datum_otvaranja, a.datum_zatvaranja, a.naziv, a.opis, a.aktivna, ak.naziv from anketa_anketa a, akademska_godina ak where a.akademska_godina = ak.id and akademska_godina!={$ag}"); print '<table width="100%" border="0">'; if (mysql_num_rows($q200) == 0) { ?> <tr><td>Prethodnih akademskih godina nije bila definisana nijedna anketa</td></tr><?php } else { while ($r200 = mysql_fetch_row($q200)) { ?> <tr> <td width="50%"><?php echo $r200[3]; ?> (<?php echo $r200[6]; ?> )</td> <td><a href="<?php echo genuri(); ?> &akcija=edit&anketa=<?php echo $r200[0]; ?> ">Detalji</a></td> </tr> <?php } } ?> </table> <!-- ------------------------------- REZULTATI --------------------------------------------------> <hr /> <div class="anketa_naslov"> <p><h4>Rezultati ankete </h4></p> </div> <a onclick="switch_poredjenje()" style="cursor:pointer">Sumarni izvještaji</a> <div id="poredjenje_1" style="display:none" class="izvjestaji"> <ul> <li> <a onclick="switch_izvjestaj()" style="cursor:pointer"> Semestralni izvještaj </a> </li> <div id="semestralni" style="display:none"> <form method="GET" action="index.php"> <input type="hidden" name="sta" value="izvjestaj/anketa_semestralni"> <table width="450" align="center"> <tr> <td width="200">Odaberite akademsku godinu:</td> <td> <select name="akademska_godina"> <?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] == $ag) { print " selected"; } ?> ><?php echo $r295[1]; ?> </option> <?php } ?> </select><br/> </td> </tr> <tr> <td>Odaberite studij:</td> <td> <select name="studij" id="studij"> <option value="-1">--- Prva godina studija ---</option> <?php $q295 = myquery("select s.id, s.naziv, ts.trajanje from studij as s, tipstudija as ts where s.tipstudija=ts.id and s.moguc_upis=1 order by s.tipstudija, s.naziv"); $maxsemestara = 0; while ($r295 = mysql_fetch_row($q295)) { ?> <option value="<?php echo $r295[0]; ?> "><?php echo $r295[1]; ?> </option> <?php if ($r295[2] > $maxsemestara) { $maxsemestara = $r295[2]; } } ?> </select><br/> </td> </tr> <tr> <td> Odaberite semestar:</td> <td> <div id="pgs"> <select name="semestar" id="semestar"> <?php for ($sem = 1; $sem <= $maxsemestara; $sem++) { ?> <option value="<?php echo $sem; ?> "> <?php echo $sem; ?> </option> <?php } ?> </select> </div> </td> </tr> <tr> <td colspan="2"> <input type="hidden" name="akcija" value="semestralni"> <input size="100px" type="submit" value="Kreiraj izvještaj"> </td> </tr> </table> </form> </div> <li> <a onclick="switch_izvjestaj2()" style="cursor:pointer"> Izvještaj po smjerovima</a> </li> <div id="po_smjerovima" style="display:none"> <form method="post" action="?sta=izvjestaj/anketa_semestralni"> <table width="450" align="center" > <tr> <td width="200"> Odaberite akademsku godinu: </td> <td align="left"> <select name="akademska_godina"> <?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] == $ag) { print " selected"; } ?> ><?php echo $r295[1]; ?> </option> <?php } ?> </select><br/> </td> </tr> <tr> <td>Odaberite semestar:</td> <td> <div id="semestar"> <select name="semestar" id="semestar"> <option value="1"> Zimski</option> <option value="2"> Ljetni</option> <option value="3"> Cijela godina </option> </select> </div> </td> </tr> <tr> <td colspan="2"> <input type="hidden" name="akcija" value="po_smjerovima"> <input size="100px" type="submit" value="Kreiraj izvjestaj"> </td> </tr> </table> </form> </div> </ul> </div> <hr /> <?php $src = my_escape($_REQUEST["search"]); $limit = 20; $offset = intval($_REQUEST["offset"]); $ak_god = intval($_REQUEST["akademska_godina"]); 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>Pregled izvjestaja po predmetu :<br/> <small>Za prikaz svih predmeta na akademskoj godini, ostavite polje za pretragu prazno.</small> </br> <?php echo genform("GET"); ?> <input type="hidden" name="offset" value="0"> <?php /*resetujem offset*/ ?> <select name="akademska_godina"> <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=" Pretrazi "> </form> <br/> <?php if ($ak_god > 0 && $src != "") { $q300 = myquery("select count( distinct predmet) from ponudakursa as pk, predmet as p where pk.akademska_godina={$ak_god} and \r\n\t\t\t\t\t\tp.naziv like '%{$src}%' and pk.predmet=p.id "); } else { if ($ak_god > 0) { $q300 = myquery("select count(distinct predmet) from ponudakursa where akademska_godina={$ak_god}"); } else { if ($src != "") { $q300 = myquery("select sum(br) from (select count(distinct predmet) as br from ponudakursa as pk, predmet as p where pk.predmet=p.id and p.naziv like \r\n\t\t\t\t\t\t'%{$src}%' GROUP BY pk.akademska_godina) as tb1"); } else { $q300 = myquery("select sum(br) from (select count(distinct predmet) as br from ponudakursa GROUP BY akademska_godina ) as tb1"); } } } $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=\"?sta=studentska/anketa&offset={$i}&_lv_column_akademska_godina={$ak_god}\">{$br}</a> "; } } print "<br/>"; } if ($ak_god > 0 && $src != "") { $q301 = myquery("select p.id, p.naziv, ag.naziv, i.kratki_naziv, ag.id 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}%' and pk.predmet=p.id and p.institucija=i.id GROUP BY p.id, ag.id order by ag.naziv desc, p.naziv limit {$offset},{$limit}"); } else { if ($ak_god > 0) { $q301 = myquery("select p.id, p.naziv, ag.naziv, i.kratki_naziv, ag.id 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 GROUP BY p.id, ag.id order by ag.naziv desc, p.naziv limit {$offset},{$limit}"); } else { if ($src != "") { $q301 = myquery("select p.id, p.naziv, ag.naziv, i.kratki_naziv, ag.id from predmet as p, ponudakursa as pk, akademska_godina as ag, institucija as i where pk.akademska_godina=ag.id and p.naziv like '%{$src}%' and pk.predmet=p.id and p.institucija=i.id GROUP BY p.id, ag.id order by ag.naziv desc, p.naziv limit {$offset},{$limit}"); } else { $q301 = myquery("select p.id, p.naziv, ag.naziv, i.kratki_naziv, ag.id from predmet as p, ponudakursa as pk, akademska_godina as ag, institucija as i where pk.akademska_godina=ag.id and pk.predmet=p.id and p.institucija=i.id GROUP BY p.id, ag.id order by ag.naziv desc,p.naziv limit {$offset},{$limit}"); } } } print '<table width="100%" border="0">'; $i = $offset + 1; while ($r301 = mysql_fetch_row($q301)) { if ($ak_god > 0) { if ($r301[5] == 1 || $r301[5] == 2) { print "<tr><td>{$i}. {$r301['1']} (PGS)</td>\n"; } else { print "<tr><td>{$i}. {$r301['1']} ({$r301['3']})</td>\n"; } } else { if ($r301[5] == 1 || $r301[5] == 2) { print "<tr><td>{$i}. {$r301['1']} (PGS) - {$r301['2']}</td>\n"; } else { print "<tr><td>{$i}. {$r301['1']} ({$r301['3']}) - {$r301['2']}</td>\n"; } } print "<td align='right'><a href= '?sta=izvjestaj/anketa&predmet={$r301['0']}&ag={$r301['4']}&rank=da'>Izvjestaj rank</a></td>\n"; print "<td align='right' ><a href='?sta=izvjestaj/anketa&predmet={$r301['0']}&ag={$r301['4']}&komentar=da'>Izvjestaj komentari</a></td>\n"; $i++; } print "</table>"; } ?> <br/> </table> </td> </tr> </table> </center> <?php } } } }