示例#1
0
文件: log.php 项目: msehalic/zamger
function admin_log()
{
    global $userid;
    global $_lv_;
    // We use form generators
    $maxlogins = 20;
    $stardate = intval($_GET['stardate']);
    if ($stardate == 0) {
        $q199 = myquery("select id from log order by id desc limit 1");
        $stardate = mysql_result($q199, 0, 0) + 1;
    }
    $nivo = intval($_GET['nivo']);
    if ($nivo < 1) {
        $nivo = 2;
    }
    if ($nivo > 4) {
        $nivo = 4;
    }
    $analyze = intval($_REQUEST['analyze']);
    // Pretraga / filtriranje
    $pretraga = $_REQUEST['pretraga'];
    if ($pretraga) {
        $src = preg_replace("/\\s+/", " ", $pretraga);
        $src = trim($src);
        $dijelovi = explode(" ", $src);
        $query = "";
        $filterupita = "";
        // Probavamo traziti ime i prezime istovremeno
        if (count($dijelovi) == 2) {
            $q100 = myquery("select id from osoba where ime like '%{$dijelovi['0']}%' and prezime like '%{$dijelovi['1']}%'");
            if (mysql_num_rows($q100) == 0) {
                $q100 = myquery("select id from osoba where ime like '%{$dijelovi['1']}%' and prezime like '%{$dijelovi['0']}%'");
            }
            $rezultata = mysql_num_rows($q100);
        }
        // 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 id from osoba where ({$query})");
            $rezultata = mysql_num_rows($q100);
        }
        // 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 o.id from osoba as o, auth as a where ({$query}) and a.id=o.id");
            $rezultata = mysql_num_rows($q100);
        }
        if ($rezultata > 0) {
            while ($r100 = mysql_fetch_row($q100)) {
                if ($filterupita != "") {
                    $filterupita .= " OR ";
                }
                $filterupita .= "userid={$r100['0']} OR dogadjaj like '%u{$r100['0']}%'";
                if ($rezultata == 1) {
                    $nasaokorisnika = $r100[0];
                }
                // najčešće nađemo tačno jednog...
            }
        }
        // Probavamo predmete
        if ($rezultata == 0) {
            $q101 = myquery("select id from predmet where naziv like '%{$src}%' or kratki_naziv='{$src}'");
            if (mysql_num_rows($q101) > 0) {
                $pp = mysql_result($q101, 0, 0);
                if ($filterupita != "") {
                    $filterupita .= " OR ";
                }
                $filterupita .= "dogadjaj like '%pp{$pp}%'";
                $q102 = myquery("select pk.id from ponudakursa as pk, akademska_godina as ag where pk.predmet={$pp} and pk.akademska_godina=ag.id and ag.aktuelna=1");
                while ($r102 = mysql_fetch_row($q102)) {
                    $filterupita .= " OR dogadjaj like '%p{$r102['0']}%'";
                }
            }
        }
        // Kraj, dodajemo and
        if ($filterupita != "") {
            $filterupita = " AND ({$filterupita})";
        }
    } else {
        if ($analyze) {
            $q105 = myquery("select UNIX_TIMESTAMP(vrijeme), userid FROM log2 WHERE id={$analyze}");
            $vrijeme = mysql_result($q105, 0, 0);
            $nasaokorisnika = mysql_result($q105, 0, 1);
            $filterupita = " AND userid={$nasaokorisnika}";
            $q106 = myquery("select id from log where vrijeme=FROM_UNIXTIME({$vrijeme}) limit 1");
            $stardate = mysql_result($q106, 0, 0) + 100;
            if ($nasaokorisnika > 0) {
                $q107 = myquery("SELECT ime, prezime FROM osoba WHERE id={$nasaokorisnika}");
                $pretraga = mysql_result($q107, 0, 0) . " " . mysql_result($q107, 0, 1);
            } else {
                $pretraga = "";
            }
            $nivo = 1;
        }
    }
    // Izbor nivoa logiranja (JavaScript)
    ?>
<h3>Pregled logova</h3>
<p>Izaberite logging nivo:<br/>
<?php 
    echo genform("GET");
    ?>
<table width="100%"><tr>
<td><input type="radio" name="nivo" value="1" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 1) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_info.png" width="16" height="16" align="center"> Posjete stranicama</td>
<td><input type="radio" name="nivo" value="2" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 2) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_edit.png" width="16" height="16" align="center"> Izmjene</td>
<td><input type="radio" name="nivo" value="3" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 3) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_error.png" width="16" height="16" align="center"> Greške</td>
<td><input type="radio" name="nivo" value="4" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 4) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_audit.png" width="16" height="16" align="center"> Kritične izmjene</td>
</tr></table>
</form>
<br/><br/>

<center>
<form action="index.php" method="GET">
<input type="hidden" name="sta" value="admin/log">
<input type="hidden" name="nivo" value="<?php 
    echo $nivo;
    ?>
">
<input type="text" name="pretraga" size="40" value="<?php 
    echo $pretraga;
    ?>
">
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value=" Traži ">
</form>
</center>

<?php 
    // Skripta daj_stablo se sada nalazi u js/stablo.js, a ukljucena je u index.php
    // Funkcije koje cachiraju imena korisnika i predmeta
    function get_user_link($id)
    {
        static $users = array();
        if (!$users[$id]) {
            $q20 = myquery("select ime, prezime from osoba where id={$id}");
            if (mysql_num_rows($q20) > 0) {
                $link = "?sta=studentska/osobe&akcija=edit&osoba={$id}";
                $users[$id] = "<a href=\"{$link}\" target=\"_new\">" . mysql_result($q20, 0, 0) . " " . mysql_result($q20, 0, 1) . "</a>";
            } else {
                return $id;
            }
        }
        return $users[$id];
    }
    function get_predmet_link($id)
    {
        static $aktuelna_ag = 0;
        // Aktuelna akademska godina
        if ($aktuelna_ag == 0) {
            $q35 = myquery("select id from akademska_godina where aktuelna=1 order by id desc");
            $aktuelna_ag = mysql_result($q35, 0, 0);
        }
        static $predmeti = array();
        if (!$predmeti[$id]) {
            $q30 = myquery("select p.id, p.naziv from ponudakursa as pk, predmet as p where pk.id={$id} and pk.predmet=p.id");
            if (mysql_num_rows($q30) > 0) {
                $predmeti[$id] = "<a href=\"?sta=studentska/predmeti&akcija=edit&predmet=" . mysql_result($q30, 0, 0) . "&ag={$aktuelna_ag}\" target=\"_new\">" . mysql_result($q30, 0, 1) . "</a>";
            } else {
                return $id;
            }
        }
        return $predmeti[$id];
    }
    function get_ppredmet_link($id)
    {
        static $aktuelna_ag = 0;
        // Aktuelna akademska godina
        if ($aktuelna_ag == 0) {
            $q35 = myquery("select id from akademska_godina where aktuelna=1 order by id desc");
            $aktuelna_ag = mysql_result($q35, 0, 0);
        }
        static $predmeti = array();
        if (!$predmeti[$id]) {
            $q40 = myquery("select naziv from predmet where id={$id}");
            if (mysql_num_rows($q40) > 0) {
                $predmeti[$id] = "<a href=\"?sta=studentska/predmeti&akcija=edit&predmet={$id}&ag={$aktuelna_ag}\" target=\"_new\">" . mysql_result($q40, 0, 0) . "</a>";
            } else {
                return $id;
            }
        }
        return $predmeti[$id];
    }
    // Glavni upit i petlja
    $q10 = myquery("select id, UNIX_TIMESTAMP(vrijeme), userid, dogadjaj, nivo from log where id<{$stardate} and ((nivo>={$nivo} {$filterupita}) or dogadjaj='login') order by id desc");
    //$q10 = myquery ("select id, UNIX_TIMESTAMP(vrijeme), userid, dogadjaj, nivo from log where id<$stardate and (nivo>=$nivo $filterupita) order by id desc");
    $lastlogin = array();
    $eventshtml = array();
    $logins = 0;
    $prvidatum = $zadnjidatum = 0;
    $stardate = 1;
    while ($r10 = mysql_fetch_row($q10)) {
        if ($prvidatum == 0) {
            $prvidatum = $r10[1];
        }
        $zadnjidatum = $r10[1];
        $nicedate = " (" . date("d.m.Y. H:i:s", $r10[1]) . ")";
        $usr = $r10[2];
        // ID korisnika
        $evt = $r10[3];
        // string koji opisuje dogadjaj
        if ($rezultata == 1 && preg_match("/u{$nasaokorisnika}\\d/", $evt)) {
            continue;
        }
        // kada je ID korisnika kratak, moze se desiti da se javlja unutar eventa
        if (strlen($evt) > 100) {
            $evt = substr($evt, 0, 100);
        }
        // ne prikazuj login ako je to jedina stavka, ako je nivo veci od 1 ili ako nema pretrage
        if ($lastlogin[$usr] == 0 && ($nivo == 1 && $pretraga == "" || $evt != "login")) {
            $lastlogin[$usr] = $r10[0];
            $logins++;
            if ($logins > $maxlogins) {
                $stardate = $r10[0] + 1;
                break;
                // izlaz iz while
            }
        }
        if ($r10[4] == 1) {
            $nivoimg = "log_info";
        } else {
            if ($r10[4] == 2) {
                $nivoimg = "log_edit";
            } else {
                if ($r10[4] == 3) {
                    $nivoimg = "log_error";
                } else {
                    if ($r10[4] == 4) {
                        $nivoimg = "log_audit";
                    }
                }
            }
        }
        // Prepoznavanje određenih elemenata eventa - TAGOVA
        // Legenda:
        //   uID - korisnik
        //   ppID - predmet
        //   pID - ponudakursa
        //   gID - labgrupa
        //   cID - čas
        //   zID - zadaća
        //   iID - ispit
        //   agID - akademska godina
        //   sID - studij
        while (preg_match("/\\Wu(\\d+)/", $evt, $m)) {
            // korisnik
            $evt = str_replace("u{$m['1']}", get_user_link($m[1]), $evt);
            $zadnjikorisnik = $m[1];
            // Ovo ce omoguciti neke dodatne upite kasnije
        }
        while (preg_match("/\\Wpp(\\d+)/", $evt, $m)) {
            // predmet
            $evt = str_replace("pp{$m['1']}", get_ppredmet_link($m[1]), $evt);
        }
        while (preg_match("/\\Wp(\\d+)/", $evt, $m)) {
            // ponudakursa
            $evt = str_replace("p{$m['1']}", get_predmet_link($m[1]), $evt);
        }
        while (preg_match("/\\Wg(\\d+)/", $evt, $m)) {
            // labgrupa
            $q39 = myquery("select naziv from labgrupa where id={$m['1']}");
            if (mysql_num_rows($q39) > 0) {
                $evt = str_replace("g{$m['1']}", "<a href=\"?sta=saradnik/grupa&id={$m['1']}\" target=\"_blank\">" . mysql_result($q39, 0, 0) . "</a>", $evt);
            } else {
                $evt = str_replace("g{$m['1']}", "{$m['1']}", $evt);
            }
        }
        while (preg_match("/\\Wc(\\d+)/", $evt, $m)) {
            // cas
            $q40 = myquery("select labgrupa from cas where id={$m['1']}");
            if (mysql_num_rows($q40) > 0) {
                $link = "?sta=saradnik/grupa&id=" . mysql_result($q40, 0, 0);
                $evt = str_replace("c{$m['1']}", "<a href=\"{$link}\" target=\"_blank\">{$m['1']}</a>", $evt);
            } else {
                $evt = str_replace("c{$m['1']}", "{$m['1']}", $evt);
            }
        }
        if (preg_match("/\\Wz(\\d+)/", $evt, $m)) {
            // zadaca
            $q50 = myquery("select naziv,predmet,akademska_godina from zadaca where id={$m['1']}");
            if (mysql_num_rows($q50) > 0) {
                $naziv = mysql_result($q50, 0, 0);
                if (!preg_match("/\\w/", $naziv)) {
                    $naziv = "[Bez imena]";
                }
                $predmet = mysql_result($q50, 0, 1);
                $ag = mysql_result($q50, 0, 2);
                if (intval($usr) > 0) {
                    $q55 = myquery("select l.id from student_labgrupa as sl, labgrupa as l where sl.student={$usr} and sl.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}");
                    if (mysql_num_rows($q55) < 1 && $zadnjikorisnik > 0) {
                        $q55 = myquery("select l.id from student_labgrupa as sl, labgrupa as l where sl.student={$zadnjikorisnik} and sl.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}");
                    }
                    if (mysql_num_rows($q55) < 1) {
                        $q55 = myquery("select id from labgrupa where predmet={$predmet} and akademska_godina={$ag} and virtualna=1");
                    }
                    $link = "?sta=saradnik/grupa&id=" . mysql_result($q55, 0, 0);
                    $evt = str_replace("z{$m['1']}", "<a href=\"{$link}\" target=\"_blank\">{$naziv}</a>", $evt);
                }
            }
        }
        while (preg_match("/\\Wi(\\d+)/", $evt, $m)) {
            // ispit
            $q60 = myquery("select k.gui_naziv, i.predmet, p.naziv, i.akademska_godina from ispit as i, komponenta as k, predmet as p where i.id={$m['1']} and i.komponenta=k.id and i.predmet=p.id");
            if (mysql_num_rows($q60) > 0) {
                $naziv = mysql_result($q60, 0, 0);
                if (!preg_match("/\\w/", $naziv)) {
                    $naziv = "[Bez imena]";
                }
                $predmet = mysql_result($q60, 0, 1);
                $predmetnaziv = mysql_result($q60, 0, 2);
                $ag = mysql_result($q60, 0, 3);
                $evt = str_replace("i{$m['1']}", "<a href=\"?sta=nastavnik/ispiti&predmet={$predmet}&ag={$ag}\" target=\"_blank\">{$naziv} ({$predmetnaziv})</a>", $evt);
            } else {
                $evt = str_replace("i{$m['1']}", "{$m['1']}", $evt);
            }
        }
        while (preg_match("/\\Wag(\\d+)/", $evt, $m)) {
            // akademska godina
            $q70 = myquery("select naziv from akademska_godina where id={$m['1']}");
            if (mysql_num_rows($q70) > 0) {
                $naziv = mysql_result($q70, 0, 0);
                $evt = str_replace("ag{$m['1']}", "{$naziv}", $evt);
            } else {
                $evt = str_replace("ag{$m['1']}", "{$m['1']}", $evt);
            }
        }
        while (preg_match("/\\Ws(\\d+)/", $evt, $m)) {
            // studij
            $q80 = myquery("select naziv from studij where id={$m['1']}");
            if (mysql_num_rows($q80) > 0) {
                $naziv = mysql_result($q80, 0, 0);
                $evt = str_replace("s{$m['1']}", "{$naziv}", $evt);
            } else {
                $evt = str_replace("s{$m['1']}", "{$m['1']}", $evt);
            }
        }
        // Pošto idemo unazad, login predstavlja kraj zapisa za korisnika
        if ($evt == "login") {
            if ($lastlogin[$usr] && $lastlogin[$usr] != 0) {
                $eventshtml[$lastlogin[$usr]] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/{$nivoimg}.png\" width=\"16\" height=\"16\" align=\"center\"> login (ID: {$usr}) {$nicedate}\n" . $eventshtml[$lastlogin[$usr]];
                $lastlogin[$usr] = 0;
            }
        } else {
            if (strstr($evt, " su=")) {
                $eventshtml[$lastlogin[$usr]] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/{$nivoimg}.png\" width=\"16\" height=\"16\" align=\"center\"> SU to ID: {$usr} {$nicedate}\n" . $eventshtml[$lastlogin[$usr]];
                $lastlogin[$usr] = 0;
            } else {
                $eventshtml[$lastlogin[$usr]] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/{$nivoimg}.png\" width=\"16\" height=\"16\" align=\"center\"> " . $evt . $nicedate . "\n" . $eventshtml[$lastlogin[$usr]];
            }
        }
    }
    if ($stardate == 1) {
        $zadnjidatum = 1;
    }
    // Nije doslo do breaka...
    // Insertujem masovni unos ocjena i rezultata ispita
    if ($rezultata == 1) {
        // Konacne ocjene
        $q300 = myquery("select predmet, ocjena, UNIX_TIMESTAMP(datum) from konacna_ocjena where student={$nasaokorisnika} AND datum>=FROM_UNIXTIME({$zadnjidatum}) AND datum<=FROM_UNIXTIME({$prvidatum})");
        while ($r300 = mysql_fetch_row($q300)) {
            $predmet = $r300[0];
            $ocjena = $r300[1];
            $datum = $r300[2];
            $nicedate = " (" . date("d.m.Y. H:i:s", $datum) . ")";
            // Prvo cemo varijantu sa predmetom pa sa ponudom kursa
            $q310 = myquery("select id from log where dogadjaj='masovno upisane ocjene na predmet pp{$predmet}' and vrijeme=FROM_UNIXTIME({$datum})");
            if (mysql_num_rows($q310) > 0) {
                $eventshtml[mysql_result($q310, 0, 0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovno upisane ocjene na predmet " . get_ppredmet_link($predmet) . " (" . get_user_link($nasaokorisnika) . " dobio: {$ocjena})" . $nicedate . "\n";
            }
            $q320 = myquery("select pk.id from ponudakursa as pk, akademska_godina as ag where pk.predmet={$predmet} and pk.akademska_godina=ag.id and ag.aktuelna=1");
            while ($r320 = mysql_fetch_row($q320)) {
                $q310 = myquery("select id from log where dogadjaj='masovno upisane ocjene na predmet p{$r320['0']}' and vrijeme=FROM_UNIXTIME({$datum})");
                if (mysql_num_rows($q310) > 0) {
                    $eventshtml[mysql_result($q310, 0, 0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovno upisane ocjene na predmet " . get_ppredmet_link($predmet) . " (" . get_user_link($nasaokorisnika) . " dobio: {$ocjena})" . $nicedate . "\n";
                }
            }
        }
        // Isto ovo za ispite
        $q330 = myquery("select i.predmet, io.ocjena, UNIX_TIMESTAMP(i.vrijemeobjave) from ispit as i, ispitocjene as io where io.student={$nasaokorisnika} AND io.ispit=i.id AND i.datum>=FROM_UNIXTIME({$zadnjidatum}) AND i.datum<=FROM_UNIXTIME({$prvidatum})");
        while ($r330 = mysql_fetch_row($q330)) {
            $predmet = $r330[0];
            $ocjena = $r330[1];
            $datum = $r330[2];
            // Datum je zaokruzen :(
            // Prvo cemo varijantu sa predmetom pa sa ponudom kursa
            $q340 = myquery("select id, vrijeme from log where dogadjaj='masovni rezultati ispita za predmet pp{$predmet}' and vrijeme=FROM_UNIXTIME({$datum})");
            if (mysql_num_rows($q340) > 0) {
                $nicedate = " (" . date("d.m.Y. H:i:s", mysql_result($q340, 0, 1)) . ")";
                $eventshtml[mysql_result($q340, 0, 0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovni rezultati ispita za predmet " . get_ppredmet_link($predmet) . " (" . get_user_link($nasaokorisnika) . " dobio: {$ocjena})" . $nicedate . "\n";
            }
            $q320 = myquery("select pk.id from ponudakursa as pk, akademska_godina as ag where pk.predmet={$predmet} and pk.akademska_godina=ag.id and ag.aktuelna=1");
            while ($r320 = mysql_fetch_row($q320)) {
                $q340 = myquery("select id, vrijeme from log where dogadjaj='masovni rezultati ispita za predmet p{$r320['0']}' and vrijeme=FROM_UNIXTIME({$datum})");
                if (mysql_num_rows($q340) > 0) {
                    $nicedate = " (" . date("d.m.Y. H:i:s", mysql_result($q340, 0, 1)) . ")";
                    $eventshtml[mysql_result($q340, 0, 0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovni rezultati ispita za predmet " . get_ppredmet_link($predmet) . " (" . get_user_link($nasaokorisnika) . " dobio: {$ocjena})" . $nicedate . "\n";
                }
            }
        }
        krsort($eventshtml);
    }
    // Dodajemo zaglavlja sa [+] poljem (prebaciti iznad)
    foreach ($eventshtml as $logid => $event) {
        if (substr($event, 0, 4) != "<img") {
            // Login počinje sa <br/>
            // TODO: optimizovati upite!
            $q201 = myquery("select userid, UNIX_TIMESTAMP(vrijeme) from log where id={$logid}");
            $userid = intval(mysql_result($q201, 0, 0));
            $nicedate = " (" . date("d.m.Y. H:i:s", mysql_result($q201, 0, 1)) . ")";
            if ($userid == 0) {
                $imeprezime = "ANONIMNI PRISTUPI";
                $usrimg = "zad_bug";
            } else {
                $q202 = myquery("select ime, prezime from osoba where id={$userid}");
                $imeprezime = mysql_result($q202, 0, 0) . " " . mysql_result($q202, 0, 1);
                $q203 = myquery("select count(*) from privilegije where osoba={$userid} and privilegija='nastavnik'");
                $q204 = myquery("select count(*) from privilegije where osoba={$userid} and privilegija='studentska'");
                $q205 = myquery("select count(*) from privilegije where osoba={$userid} and privilegija='siteadmin'");
                if (mysql_result($q205, 0, 0) > 0) {
                    $usrimg = "admin";
                } else {
                    if (mysql_result($q204, 0, 0) > 0) {
                        $usrimg = "teta";
                    } else {
                        if (mysql_result($q203, 0, 0) > 0) {
                            $usrimg = "tutor";
                        } else {
                            $usrimg = "user";
                        }
                    }
                }
            }
            $link = "?sta=studentska/osobe&akcija=edit&osoba={$userid}";
            print "<img src=\"images/plus.png\" width=\"13\" height=\"13\" id=\"img-{$logid}\" onclick=\"daj_stablo('{$logid}')\">\n<img src=\"images/16x16/{$usrimg}.png\" width=\"16\" height=\"16\" align=\"center\">\n<a href=\"{$link}\">{$imeprezime}</a> {$nicedate}\n<div id=\"{$logid}\" style=\"display:none\">\n";
        }
        print "{$event}</div><br/>\n";
    }
    print "<p>&nbsp;</p><p><a href=\"" . genuri() . "&stardate={$stardate}\">Sljedećih {$maxlogins}</a></p>";
}
示例#2
0
文件: log2.php 项目: msehalic/zamger
function admin_log2()
{
    global $userid;
    global $_lv_;
    // We use form generators
    // LOG v2.0
    $maxlogins = 20;
    $stardate = intval($_GET['stardate']);
    if ($stardate == 0) {
        $q199 = myquery("select id from log order by id desc limit 1");
        $stardate = mysql_result($q199, 0, 0) + 1;
    }
    $nivo = intval($_GET['nivo']);
    if ($nivo < 1) {
        $nivo = 2;
    }
    if ($nivo > 4) {
        $nivo = 4;
    }
    // Pretraga / filtriranje
    $pretraga = $_REQUEST['pretraga'];
    if ($pretraga) {
        $src = preg_replace("/\\s+/", " ", $pretraga);
        $src = trim($src);
        $dijelovi = explode(" ", $src);
        $query = "";
        $filterupita = "";
        // Probavamo traziti ime i prezime istovremeno
        if (count($dijelovi) == 2) {
            $q100 = myquery("select id from osoba where ime like '%{$dijelovi['0']}%' and prezime like '%{$dijelovi['1']}%'");
            if (mysql_num_rows($q100) == 0) {
                $q100 = myquery("select id from osoba where ime like '%{$dijelovi['1']}%' and prezime like '%{$dijelovi['0']}%'");
            }
            $rezultata = mysql_num_rows($q100);
        }
        // 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 id from osoba where ({$query})");
            $rezultata = mysql_num_rows($q100);
        }
        // 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 o.id from osoba as o, auth as a where ({$query}) and a.id=o.id");
            $rezultata = mysql_num_rows($q100);
        }
        if ($rezultata > 0) {
            while ($r100 = mysql_fetch_row($q100)) {
                if ($filterupita != "") {
                    $filterupita .= " OR ";
                }
                $filterupita .= "userid={$r100['0']} OR dogadjaj like '%u{$r100['0']}%'";
                if ($rezultata == 1) {
                    $nasaokorisnika = $r100[0];
                }
                // najčešće nađemo tačno jednog...
            }
        }
        // Probavamo predmete
        if ($rezultata == 0) {
            $q101 = myquery("select id from predmet where naziv like '%{$src}%' or kratki_naziv='{$src}'");
            if (mysql_num_rows($q101) > 0) {
                $pp = mysql_result($q101, 0, 0);
                if ($filterupita != "") {
                    $filterupita .= " OR ";
                }
                $filterupita .= "dogadjaj like '%pp{$pp}%'";
                $q102 = myquery("select pk.id from ponudakursa as pk, akademska_godina as ag where pk.predmet={$pp} and pk.akademska_godina=ag.id and ag.aktuelna=1");
                while ($r102 = mysql_fetch_row($q102)) {
                    $filterupita .= " OR dogadjaj like '%p{$r102['0']}%'";
                }
            }
        }
        // Kraj, dodajemo and
        if ($filterupita != "") {
            $filterupita = " AND ({$filterupita})";
        }
    }
    // Izbor nivoa logiranja (JavaScript)
    ?>
<h3>Pregled logova</h3>
<p>Izaberite logging nivo:<br/>
<?php 
    echo genform("GET");
    ?>
<table width="100%"><tr>
<td><input type="radio" name="nivo" value="1" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 1) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_info.png" width="16" height="16" align="center"> Posjete stranicama</td>
<td><input type="radio" name="nivo" value="2" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 2) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_edit.png" width="16" height="16" align="center"> Izmjene</td>
<td><input type="radio" name="nivo" value="3" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 3) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_error.png" width="16" height="16" align="center"> Greške</td>
<td><input type="radio" name="nivo" value="4" onchange="document.forms[0].submit()" <?php 
    if ($nivo == 4) {
        print "CHECKED";
    }
    ?>
><img src="images/16x16/log_audit.png" width="16" height="16" align="center"> Kritične izmjene</td>
</tr></table>
</form>
<br/><br/>

<center>
<form action="index.php" method="GET">
<input type="hidden" name="sta" value="admin/log">
<input type="hidden" name="nivo" value="<?php 
    echo $nivo;
    ?>
">
<input type="text" name="pretraga" size="40" value="<?php 
    echo $pretraga;
    ?>
">
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value=" Traži ">
</form>
</center>

<?php 
    // Skripta daj_stablo se sada nalazi u js/stablo.js, a ukljucena je u index.php
    // Funkcije koje cachiraju imena korisnika i predmeta
    function get_user_link($id)
    {
        static $users = array();
        if (!$users[$id]) {
            $q20 = myquery("select ime, prezime from osoba where id={$id}");
            if (mysql_num_rows($q20) > 0) {
                $link = "?sta=studentska/osobe&akcija=edit&osoba={$id}";
                $users[$id] = "<a href=\"{$link}\" target=\"_new\">" . mysql_result($q20, 0, 0) . " " . mysql_result($q20, 0, 1) . "</a>";
            } else {
                return $id;
            }
        }
        return $users[$id];
    }
    function get_pk_link($id)
    {
        static $predmeti = array();
        if (!$predmeti[$id]) {
            $q30 = myquery("select p.id, p.naziv, pk.akademska_godina from ponudakursa as pk, predmet as p where pk.id={$id} and pk.predmet=p.id");
            if (mysql_num_rows($q30) > 0) {
                $predmeti[$id] = "<a href=\"?sta=studentska/predmeti&akcija=edit&predmet=" . mysql_result($q30, 0, 0) . "&ag=" . mysql_result($q30, 0, 2) . "\" target=\"_new\">" . mysql_result($q30, 0, 1) . "</a>";
            } else {
                return $id;
            }
        }
        return $predmeti[$id];
    }
    function get_predmet_link($id)
    {
        static $aktuelna_ag = 0;
        // Aktuelna akademska godina
        if ($aktuelna_ag == 0) {
            $q35 = myquery("select id from akademska_godina where aktuelna=1 order by id desc");
            $aktuelna_ag = mysql_result($q35, 0, 0);
        }
        static $predmeti = array();
        if (!$predmeti[$id]) {
            $q40 = myquery("select naziv from predmet where id={$id}");
            if (mysql_num_rows($q40) > 0) {
                $predmeti[$id] = "<a href=\"?sta=studentska/predmeti&akcija=edit&predmet={$id}&ag={$aktuelna_ag}\" target=\"_new\">" . mysql_result($q40, 0, 0) . "</a>";
            } else {
                return $id;
            }
        }
        return $predmeti[$id];
    }
    function get_predmet_ag_link($predmet, $ag)
    {
        static $godine = array();
        if (!$godine[$ag]) {
            $q50 = myquery("select naziv from akademska_godina where id={$ag}");
            if (mysql_num_rows($q50) > 0) {
                $godine[$ag] = mysql_result($q50, 0, 0);
            } else {
                return "{$predmet}, {$ag}";
            }
        }
        static $predmeti = array();
        if (!$predmeti[$predmet]) {
            $q40 = myquery("select naziv from predmet where id={$predmet}");
            if (mysql_num_rows($q40) > 0) {
                $predmeti[$predmet] = mysql_result($q40, 0, 0);
            } else {
                return "{$predmet}, {$ag}";
            }
        }
        return "<a href=\"?sta=studentska/predmeti&akcija=edit&predmet={$predmet}&ag={$ag}\" target=\"_new\">" . $predmeti[$predmet] . " " . $godine[$ag] . "</a>";
    }
    function get_zadaca_link($id, $usr)
    {
        $q50 = myquery("select z.naziv,z.predmet,z.akademska_godina, p.naziv from zadaca as z, predmet as p where z.id={$id} and z.predmet=p.id");
        if (mysql_num_rows($q50) > 0) {
            $naziv = mysql_result($q50, 0, 0);
            if (!preg_match("/\\w/", $naziv)) {
                $naziv = "[Bez imena]";
            }
            $predmet = mysql_result($q50, 0, 1);
            $ag = mysql_result($q50, 0, 2);
            $pnaziv = mysql_result($q50, 0, 3);
            if (intval($usr) > 0) {
                $q55 = myquery("select l.id from student_labgrupa as sl, labgrupa as l where sl.student={$usr} and sl.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag} order by virtualna");
                if (mysql_num_rows($q55) > 0) {
                    $link = "?sta=saradnik/grupa&id=" . mysql_result($q55, 0, 0);
                } else {
                    $link = "?sta=nastavnik/zadace&predmet={$predmet}&ag={$ag}";
                }
                return "<a href=\"{$link}\" target=\"_blank\">{$naziv} ({$pnaziv})</a>";
            }
        }
        return "{$id}";
    }
    function get_cas_link($id)
    {
        $q70 = myquery("select l.id, p.naziv, l.naziv from cas as c, labgrupa as l, predmet as p where c.id={$id} and c.labgrupa=l.id and l.predmet=p.id");
        if (mysql_num_rows($q70) > 0) {
            $link = "?sta=saradnik/grupa&id=" . mysql_result($q70, 0, 0);
            $tekst = mysql_result($q70, 0, 2) . " (" . mysql_result($q70, 0, 1) . ")";
            return "<a href=\"{$link}\" target=\"_blank\">{$tekst}</a>";
        }
        return "{$id}";
    }
    function get_ispit_link($id)
    {
        static $ispiti = array();
        if (!$ispiti[$id]) {
            $q60 = myquery("select p.naziv, k.gui_naziv, i.predmet, i.akademska_godina from ispit as i, predmet as p, komponenta as k where i.id={$id} and i.predmet=p.id and i.komponenta=k.id");
            if (mysql_num_rows($q60) > 0) {
                $link = "?sta=nastavnik/ispiti&predmet=" . mysql_result($q60, 0, 2) . "&ag=" . mysql_result($q60, 0, 3);
                $tekst = mysql_result($q60, 0, 1) . " (" . mysql_result($q60, 0, 0) . ")";
                $ispiti[$id] = "<a href=\"{$link}\" target=\"_blank\">{$tekst}</a>";
            } else {
                return "{$id}";
            }
        }
        return $ispiti[$id];
    }
    function get_termin($id)
    {
        static $termini = array();
        if (!$termini[$id]) {
            $q60 = myquery("select p.naziv, k.gui_naziv, i.predmet, i.akademska_godina, UNIX_TIMESTAMP(it.datumvrijeme) from ispit as i, predmet as p, komponenta as k, ispit_termin as it where it.id={$id} and it.ispit=i.id and i.predmet=p.id and i.komponenta=k.id");
            if (mysql_num_rows($q60) > 0) {
                $link = "?sta=nastavnik/ispiti&predmet=" . mysql_result($q60, 0, 2) . "&ag=" . mysql_result($q60, 0, 3);
                $tekst = mysql_result($q60, 0, 1) . ", " . date("j.n. H:i", mysql_result($q60, 0, 4)) . " (" . mysql_result($q60, 0, 0) . ")";
                $termini[$id] = "<a href=\"{$link}\" target=\"_blank\">{$tekst}</a>";
            } else {
                return "{$id}";
            }
        }
        return $termini[$id];
    }
    function get_grupa_link($id)
    {
        static $grupe = array();
        if (!$grupe[$id]) {
            $q80 = myquery("select p.naziv, l.naziv from labgrupa as l, predmet as p where l.id={$id} and l.predmet=p.id");
            if (mysql_num_rows($q80) > 0) {
                $link = "?sta=saradnik/grupa&id={$id}";
                $tekst = mysql_result($q80, 0, 1) . " (" . mysql_result($q80, 0, 0) . ")";
                $grupe[$id] = "<a href=\"{$link}\" target=\"_blank\">{$tekst}</a>";
            } else {
                return "{$id}";
            }
        }
        return $grupe[$id];
    }
    function get_komp_link($id)
    {
        static $komponente = array();
        if (!$komponente[$id]) {
            $q70 = myquery("select gui_naziv from komponenta where id={$id}");
            if (mysql_num_rows($q70) > 0) {
                $komponente[$id] = mysql_result($q70, 0, 0);
            } else {
                return "{$id}";
            }
        }
        return $komponente[$id];
    }
    function get_projekat_link($id)
    {
        static $projekti = array();
        if (!$projekti[$id]) {
            $q90 = myquery("select p.naziv, p2.naziv, p2.id, p.akademska_godina from projekat as p, predmet as p2 where p.id={$id} and p.predmet=p2.id");
            if (mysql_num_rows($q90) > 0) {
                $link = "?sta=nastavnik/projekti&predmet=" . mysql_result($q90, 0, 2) . "&ag=" . mysql_result($q90, 0, 3) . "&akcija=projektna_stranica&projekat={$id}";
                $tekst = mysql_result($q90, 0, 0) . " (" . mysql_result($q90, 0, 1) . ")";
                $projekti[$id] = "<a href=\"{$link}\" target=\"_blank\">{$tekst}</a>";
            } else {
                return "{$id}";
            }
        }
        return $projekti[$id];
    }
    function get_studij($id)
    {
        static $studiji = array();
        if (!$studiji[$id]) {
            $q100 = myquery("select naziv from studij where id={$id}");
            $studiji[$id] = mysql_result($q100, 0, 0);
        }
        return $studiji[$id];
    }
    function get_ag($id)
    {
        static $ags = array();
        if (!$ags[$id]) {
            $q110 = myquery("select naziv from akademska_godina where id={$id}");
            $ags[$id] = mysql_result($q110, 0, 0);
        }
        return $ags[$id];
    }
    function add_string($s1, $s2, $s3)
    {
        if ($s1 == "") {
            return $s3;
        }
        return $s1 . $s2 . $s3;
    }
    // Glavni upit i petlja
    $q10 = myquery("SELECT l.id, UNIX_TIMESTAMP(l.vrijeme), l.userid, lm.naziv, l.dogadjaj, ld.opis, ld.nivo, l.objekat1, l.objekat2, l.objekat3 \nFROM log2 AS l, log2_dogadjaj AS ld, log2_modul AS lm \nWHERE l.modul=lm.id AND l.dogadjaj=ld.id AND l.id<{$stardate} and ((ld.nivo>={$nivo} {$filterupita}) or ld.opis='login') \nORDER BY l.id DESC");
    $lastlogin = array();
    $eventshtml = array();
    $logins = 0;
    $prvidatum = $zadnjidatum = 0;
    $stardate = 1;
    while ($r10 = mysql_fetch_row($q10)) {
        if ($prvidatum == 0) {
            $prvidatum = $r10[1];
        }
        $zadnjidatum = $r10[1];
        $nicedate = " (" . date("d.m.Y. H:i:s", $r10[1]) . ")";
        $usr = $r10[2];
        // ID korisnika
        $modul = $r10[3];
        $evt_id = $r10[4];
        $opis = $r10[5];
        // string koji opisuje dogadjaj
        // ne prikazuj login ako je to jedina stavka, ako je nivo veci od 1 ili ako nema pretrage
        if ($lastlogin[$usr] == 0 && ($nivo == 1 && $pretraga == "" || $opis != "login")) {
            $lastlogin[$usr] = $r10[0];
            $logins++;
            if ($logins > $maxlogins) {
                $stardate = $r10[0] + 1;
                break;
                // izlaz iz while
            }
        }
        if ($r10[6] == 1) {
            $nivoimg = "log_info";
        } else {
            if ($r10[6] == 2) {
                $nivoimg = "log_edit";
            } else {
                if ($r10[6] == 3) {
                    $nivoimg = "log_error";
                } else {
                    if ($r10[6] == 4) {
                        $nivoimg = "log_audit";
                    }
                }
            }
        }
        $evt = "";
        if ($modul != "") {
            $evt .= "{$modul}: ";
        }
        $evt .= "{$opis}";
        $objekti = "";
        // Log transformacije opisa
        if (substr($opis, 0, 14) == "poslana zadaca" || substr($opis, 0, 24) == "greska pri slanju zadace" || $opis == "poslao praznu zadacu" || $opis == "ne postoji fajl za zadacu" || $opis == "zadaca nema toliko zadataka") {
            $objekti = get_zadaca_link($r10[7], $usr) . ", zadatak {$r10['8']}";
        } else {
            if ($opis == "isteklo vrijeme za slanje zadace" || $opis == "pogresan tip datoteke" || $opis == "student ne slusa predmet za zadacu" || $opis == "nije nastavnik na predmetu za zadacu" || $opis == "ogranicenje na predmet za zadacu" || $opis == "postavka ne postoji" || $opis == "obrisana postavka zadace" || $opis == "smanjen broj zadataka u zadaci" || $opis == "azurirana zadaca" || $opis == "niko nije poslao zadacu" || $opis == "kreiranje arhive zadaca nije uspjelo") {
                $objekti = get_zadaca_link($r10[7], $usr);
            } else {
                if ($opis == "ne postoji attachment" || $opis == "bodovanje zadace" || $opis == "autotestiran student") {
                    $objekti = get_user_link($r10[7]) . ", " . get_zadaca_link($r10[8], $r10[7]) . ", zadatak {$r10['9']}";
                } else {
                    if ($opis == "prisustvo azurirano") {
                        $objekti = get_user_link($r10[7]) . ", " . get_cas_link($r10[8]) . ", prisustvo: {$r10['9']}";
                    } else {
                        if ($opis == "prisustvo - nije nastavnik na predmetu" || $opis == "prisustvo - ima ogranicenje za grupu" || $opis == "registrovan cas") {
                            $objekti = get_cas_link($r10[7]);
                        } else {
                            if ($opis == "student ne slusa predmet" || $opis == "ne postoji moodle ID za predmet" || substr($opis, 0, 25) == "nije saradnik na predmetu" || $opis == "svi projekti su jos otkljucani" || $opis == "nije nastavnik na predmetu" || $opis == "predmet nema virtuelnu grupu" || $opis == "nije definisan tip predmeta" || substr($opis, 0, 22) == "dosegnut limit za broj projekata" || substr($opis, 0, 19) == "projekti zakljucani" || $opis == "nije ni na jednom projektu (odjava)" || $opis == "prekopirane labgrupe" || $opis == "izmijenjeni parametri projekata na predmetu" || $opis == "kreiran tip predmeta") {
                                $objekti = get_predmet_ag_link($r10[7], $r10[8]);
                            } else {
                                if ($opis == "ne postoji komponenta za zadace" || $opis == "promijenjen tip predmeta" || $opis == "nije definisana komponenta za prisustvo" || $opis == "nepostojeca virtualna labgrupa" || $opis == "nije ponudjen predmet") {
                                    $objekti = get_predmet_ag_link($r10[7], $r10[8]);
                                } else {
                                    if (substr($opis, 0, 17) == "obrisana labgrupa") {
                                        $objekti = "{$r10['9']}, " . get_predmet_ag_link($r10[7], $r10[8]);
                                    } else {
                                        if ($opis == "dodana ocjena" || $opis == "obrisana ocjena" || $opis == "izmjena ocjene" || $opis == "promijenjen datum ocjene" || substr($opis, 0, 27) == "student ispisan sa predmeta" || $opis == "nastavniku data prava na predmetu" || $opis == "nastavnik angazovan na predmetu" || $opis == "nastavniku oduzeta prava na predmetu" || $opis == "nastavnik deangazovan sa predmeta") {
                                            $objekti = get_user_link($r10[7]) . ", " . get_predmet_ag_link($r10[8], $r10[9]);
                                        } else {
                                            if ($opis == "nijedna zadaca nije aktivna" || $opis == "popunjena anketa" || $opis == "odabrana tema za zadacu" || $opis == "ponisten datum za izvoz") {
                                                $objekti = get_predmet_link($r10[7]);
                                            } else {
                                                if ($opis == "student ne slusa ponudukursa") {
                                                    $objekti = get_pk_link($r10[7]);
                                                } else {
                                                    if ($opis == "kreirao ponudu kursa zbog studenta" || substr($opis, 0, 25) == "student upisan na predmet") {
                                                        $objekti = get_user_link($r10[7]) . ", " . get_pk_link($r10[8]);
                                                    } else {
                                                        if ($opis == "upisan rezultat ispita" || $opis == "izbrisan rezultat ispita" || $opis == "izmjenjen rezultat ispita" || $opis == "ispit - vrijednost > max") {
                                                            $objekti = get_user_link($r10[7]) . ", " . get_ispit_link($r10[8]);
                                                        } else {
                                                            if ($opis == "promijenjen tip ispita" || $opis == "promijenjen datum ispita") {
                                                                $objekti = get_ispit_link($r10[7]);
                                                            } else {
                                                                if ($opis == "kreiran novi ispit") {
                                                                    $objekti = get_ispit_link($r10[7]) . ", " . get_predmet_ag_link($r10[8], $r10[9]);
                                                                } else {
                                                                    if ($opis == "prijavljen na termin" || $opis == "odjavljen sa termina" || $opis == "izmijenjen ispitni termin") {
                                                                        $objekti = get_termin($r10[7]);
                                                                    } else {
                                                                        if ($opis == "kreiran novi ispitni termin") {
                                                                            $objekti = get_termin($r10[7]);
                                                                            //.", ".get_predmet_ag_link($r10[8], $r10[9]); - sadržano u prethodnom linku
                                                                        } else {
                                                                            if ($opis == "izmjena bodova za fiksnu komponentu") {
                                                                                $objekti = get_user_link($r10[7]) . ", " . get_pk_link($r10[8]) . ", " . get_komp_link($r10[9]);
                                                                            } else {
                                                                                if ($opis == "nije na projektu" || $opis == "dodao link na projektu" || $opis == "uredio link na projektu" || $opis == "obrisao link na projektu" || $opis == "dodao rss feed na projektu" || $opis == "uredio rss feed na projektu" || $opis == "obrisao rss feed na projektu" || $opis == "dodao clanak na projektu" || $opis == "uredio clanak na projektu" || $opis == "obrisao clanak na projektu" || $opis == "dodao fajl na projektu" || $opis == "uredio fajl na projektu" || $opis == "obrisao fajl na projektu" || $opis == "dodao temu na projektu" || $opis == "obrisao post na projektu" || substr($opis, 0, 18) == "projekat zakljucan" || substr($opis, 0, 17) == "projekat popunjen" || $opis == "dodao projekat na predmetu" || $opis == "izmijenio projekat" || $opis == "dodao biljesku na projekat") {
                                                                                    $objekti = get_projekat_link($r10[7]);
                                                                                    //		$objekti = $r10[7];
                                                                                } else {
                                                                                    if ($opis == "student prijavljen na projekat" || $opis == "student prebacen na projekat" || $opis == "student odjavljen sa projekta") {
                                                                                        $objekti = get_user_link($r10[7]) . ", " . get_projekat_link($r10[8]);
                                                                                    } else {
                                                                                        if ($opis == "poslana poruka" || $opis == "osoba nema sliku" || $opis == "nema datoteke za sliku" || $opis == "nepoznat tip slike" || $opis == "citanje fajla za sliku nije uspjelo" || $opis == "nije studentska, a pristupa tudjem izvjestaju" || $opis == "korisnik nikada nije studirao" || $opis == "prihvacen zahtjev za promjenu podataka" || $opis == "odbijen zahtjev za promjenu podataka" || $opis == "korisnik vec postoji u bazi" || $opis == "dodan novi korisnik" || $opis == "promijenjeni licni podaci korisnika" || $opis == "postavljena slika za korisnika" || $opis == "obrisana slika za korisnika" || $opis == "proglasen za studenta") {
                                                                                            $objekti = get_user_link($r10[7]);
                                                                                        } else {
                                                                                            if ($opis == "postavljen broj indeksa" || $opis == "prihvacen zahtjev za koliziju" || $opis == "dodani podaci o izboru" || $opis == "azurirani podaci o izboru" || $opis == "promijenjen email za korisnika" || $opis == "izmjena kandidata za prijemni" || $opis == "novi kandidat za prijemni") {
                                                                                                $objekti = get_user_link($r10[7]);
                                                                                            } else {
                                                                                                if ($opis == "greska prilikom slanja fajla na zavrsni" || $opis == "dodao fajl na zavrsni" || $opis == "azuriran sazetak zavrsnog rada" || $opis == "izmijenio temu zavrsnog rada" || $opis == "dodao biljesku na zavrsni rad" || $opis == "dodana tema zavrsnog rada") {
                                                                                                    //		$objekti = get_zavrsni_link($r10[7]);
                                                                                                    $objekti = $r10[7];
                                                                                                } else {
                                                                                                    if (substr($opis, 0, 24) == "student ispisan sa grupe" || substr($opis, 0, 22) == "student upisan u grupu" || $opis == "dodan komentar na studenta" || $opis == "promijenjena grupa studenta") {
                                                                                                        $objekti = get_user_link($r10[7]) . ", " . get_grupa_link($r10[8]);
                                                                                                    } else {
                                                                                                        if ($opis == "preimenovana labgrupa" || $opis == "ima ogranicenje na labgrupu") {
                                                                                                            $objekti = get_grupa_link($r10[7]);
                                                                                                        } else {
                                                                                                            if (substr($opis, 0, 17) == "kreirana labgrupa") {
                                                                                                                $objekti = get_grupa_link($r10[7]) . ", " . get_predmet_ag_link($r10[8], $r10[9]);
                                                                                                            } else {
                                                                                                                if ($opis == "student upisan na studij" || $opis == "pokusao ispisati studenta sa studija koji ne slusa") {
                                                                                                                    $objekti = get_user_link($r10[7]) . ", " . get_studij($r10[8]) . " " . get_ag($r10[9]);
                                                                                                                } else {
                                                                                                                    // Kreiranje log zapisa
                                                                                                                    if ($r10[7] > 0) {
                                                                                                                        $objekti = add_string($objekti, ", ", $r10[7]);
                                                                                                                    }
                                                                                                                    if ($r10[8] > 0) {
                                                                                                                        $objekti = add_string($objekti, ", ", $r10[8]);
                                                                                                                    }
                                                                                                                    if ($r10[9] > 0) {
                                                                                                                        $objekti = add_string($objekti, ", ", $r10[9]);
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        $q20 = myquery("SELECT tekst FROM log2_blob WHERE log2={$r10['0']}");
        if (mysql_num_rows($q20) > 0) {
            $objekti = add_string($objekti, ", ", mysql_result($q20, 0, 0));
        }
        if ($objekti !== "") {
            $evt .= " ({$objekti})";
        }
        $analyze_link = "<a href=\"?sta=admin/log&analyze={$r10['0']}\">*</a>";
        /*
        	while (preg_match("/\Wu(\d+)/", $evt, $m)) { // korisnik
        		$evt = str_replace("u$m[1]",get_user_link($m[1]), $evt);
        		$zadnjikorisnik = $m[1]; // Ovo ce omoguciti neke dodatne upite kasnije
        	}
        	while (preg_match("/\Wpp(\d+)/", $evt, $m)) { // predmet
        		$evt = str_replace("pp$m[1]",get_ppredmet_link($m[1]),$evt);
        	}
        	while (preg_match("/\Wp(\d+)/", $evt, $m)) { // ponudakursa
        		$evt = str_replace("p$m[1]",get_predmet_link($m[1]),$evt);
        	}
        	while (preg_match("/\Wg(\d+)/", $evt, $m)) { // labgrupa
        		$q39 = myquery("select naziv from labgrupa where id=$m[1]");
        		if (mysql_num_rows($q39)>0) {
        			$evt = str_replace("g$m[1]","<a href=\"?sta=saradnik/grupa&id=$m[1]\" target=\"_blank\">".mysql_result($q39,0,0)."</a>",$evt);
        		} else {
        			$evt = str_replace("g$m[1]","$m[1]",$evt);
        		}
        	}
        	while (preg_match("/\Wc(\d+)/", $evt, $m)) { // cas
        		$q40 = myquery("select labgrupa from cas where id=$m[1]");
        		if (mysql_num_rows($q40)>0) {
        			$link="?sta=saradnik/grupa&id=".mysql_result($q40,0,0);
        			$evt = str_replace("c$m[1]","<a href=\"$link\" target=\"_blank\">$m[1]</a>",$evt);
        		} else {
        			$evt = str_replace("c$m[1]","$m[1]",$evt);
        		}
        	}
        	if (preg_match("/\Wz(\d+)/", $evt, $m)) { // zadaca
        		$q50 = myquery("select naziv,predmet,akademska_godina from zadaca where id=$m[1]");
        		if (mysql_num_rows($q50)>0) {
        			$naziv=mysql_result($q50,0,0);
        			if (!preg_match("/\w/",$naziv)) $naziv="[Bez imena]";
        			$predmet=mysql_result($q50,0,1);
        			$ag=mysql_result($q50,0,2);
        			if (intval($usr)>0) {
        				$q55 = myquery("select l.id from student_labgrupa as sl, labgrupa as l where sl.student=$usr and sl.labgrupa=l.id and l.predmet=$predmet and l.akademska_godina=$ag");
        				if (mysql_num_rows($q55)<1 && $zadnjikorisnik>0) {
        					$q55 = myquery("select l.id from student_labgrupa as sl, labgrupa as l where sl.student=$zadnjikorisnik and sl.labgrupa=l.id and l.predmet=$predmet and l.akademska_godina=$ag");
        				}
        				if (mysql_num_rows($q55)<1) {
        					$q55 = myquery("select id from labgrupa where predmet=$predmet and akademska_godina=$ag and virtualna=1");
        				}
        				$link="?sta=saradnik/grupa&id=".mysql_result($q55,0,0);
        				$evt = str_replace("z$m[1]","<a href=\"$link\" target=\"_blank\">$naziv</a>",$evt);
        			}
        		}
        	}
        	while (preg_match("/\Wi(\d+)/", $evt, $m)) { // ispit
        		$q60 = myquery("select k.gui_naziv, i.predmet, p.naziv, i.akademska_godina from ispit as i, komponenta as k, predmet as p where i.id=$m[1] and i.komponenta=k.id and i.predmet=p.id");
        		if (mysql_num_rows($q60)>0) {
        			$naziv=mysql_result($q60,0,0);
        			if (!preg_match("/\w/",$naziv)) $naziv="[Bez imena]";
        			$predmet=mysql_result($q60,0,1);
        			$predmetnaziv=mysql_result($q60,0,2);
        			$ag=mysql_result($q60,0,3);
        			$evt = str_replace("i$m[1]","<a href=\"?sta=nastavnik/ispiti&predmet=$predmet&ag=$ag\" target=\"_blank\">$naziv ($predmetnaziv)</a>",$evt);
        		} else {
        			$evt = str_replace("i$m[1]","$m[1]",$evt);
        		}
        	}
        	while (preg_match("/\Wag(\d+)/", $evt, $m)) { // akademska godina
        		$q70 = myquery("select naziv from akademska_godina where id=$m[1]");
        		if (mysql_num_rows($q70)>0) {
        			$naziv=mysql_result($q70,0,0);
        			$evt = str_replace("ag$m[1]","$naziv",$evt);
        		} else {
        			$evt = str_replace("ag$m[1]","$m[1]",$evt);
        		}
        	}
        	while (preg_match("/\Ws(\d+)/", $evt, $m)) { // studij
        		$q80 = myquery("select naziv from studij where id=$m[1]");
        		if (mysql_num_rows($q80)>0) {
        			$naziv=mysql_result($q80,0,0);
        			$evt = str_replace("s$m[1]","$naziv",$evt);
        		} else {
        			$evt = str_replace("s$m[1]","$m[1]",$evt);
        		}
        	}*/
        // Pošto idemo unazad, login predstavlja kraj zapisa za korisnika
        if ($opis == "login") {
            if ($lastlogin[$usr] && $lastlogin[$usr] != 0) {
                $eventshtml[$lastlogin[$usr]] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/{$nivoimg}.png\" width=\"16\" height=\"16\" align=\"center\"> login (ID: {$usr}) {$nicedate} {$analyze_link}\n" . $eventshtml[$lastlogin[$usr]];
                $lastlogin[$usr] = 0;
            }
        } else {
            if (strstr($evt, " su=")) {
                $eventshtml[$lastlogin[$usr]] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/{$nivoimg}.png\" width=\"16\" height=\"16\" align=\"center\"> SU to ID: {$usr} {$nicedate} {$analyze_link}\n" . $eventshtml[$lastlogin[$usr]];
                $lastlogin[$usr] = 0;
            } else {
                $eventshtml[$lastlogin[$usr]] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/{$nivoimg}.png\" width=\"16\" height=\"16\" align=\"center\"> " . $evt . $nicedate . " " . $analyze_link . "\n" . $eventshtml[$lastlogin[$usr]];
            }
        }
    }
    if ($stardate == 1) {
        $zadnjidatum = 1;
    }
    // Nije doslo do breaka...
    /*
    // Insertujem masovni unos ocjena i rezultata ispita
    if ($rezultata==1) {
    	// Konacne ocjene
    	$q300 = myquery("select predmet, ocjena, UNIX_TIMESTAMP(datum) from konacna_ocjena where student=$nasaokorisnika AND datum>=FROM_UNIXTIME($zadnjidatum) AND datum<=FROM_UNIXTIME($prvidatum)");
    	while ($r300 = mysql_fetch_row($q300)) {
    		$predmet=$r300[0];
    		$ocjena=$r300[1];
    		$datum=$r300[2];
    		$nicedate = " (".date("d.m.Y. H:i:s", $datum).")";
    
    		// Prvo cemo varijantu sa predmetom pa sa ponudom kursa
    		$q310 = myquery("select id from log where dogadjaj='masovno upisane ocjene na predmet pp$predmet' and vrijeme=FROM_UNIXTIME($datum)");
    		if (mysql_num_rows($q310)>0) {
    			$eventshtml[mysql_result($q310,0,0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovno upisane ocjene na predmet ".get_ppredmet_link($predmet)." (".get_user_link($nasaokorisnika)." dobio: $ocjena)".$nicedate."\n";
    		} 
    
    		$q320 = myquery("select pk.id from ponudakursa as pk, akademska_godina as ag where pk.predmet=$predmet and pk.akademska_godina=ag.id and ag.aktuelna=1");
    		while ($r320 = mysql_fetch_row($q320)) {
    			$q310 = myquery("select id from log where dogadjaj='masovno upisane ocjene na predmet p$r320[0]' and vrijeme=FROM_UNIXTIME($datum)");
    			if (mysql_num_rows($q310)>0) {
    				$eventshtml[mysql_result($q310,0,0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovno upisane ocjene na predmet ".get_ppredmet_link($predmet)." (".get_user_link($nasaokorisnika)." dobio: $ocjena)".$nicedate."\n";
    			}
    		}
    	}
    
    
    	// Isto ovo za ispite
    	$q330 = myquery("select i.predmet, io.ocjena, UNIX_TIMESTAMP(i.vrijemeobjave) from ispit as i, ispitocjene as io where io.student=$nasaokorisnika AND io.ispit=i.id AND i.datum>=FROM_UNIXTIME($zadnjidatum) AND i.datum<=FROM_UNIXTIME($prvidatum)");
    	while ($r330 = mysql_fetch_row($q330)) {
    		$predmet=$r330[0];
    		$ocjena=$r330[1];
    		$datum=$r330[2]; // Datum je zaokruzen :(
    
    		// Prvo cemo varijantu sa predmetom pa sa ponudom kursa
    		$q340 = myquery("select id, vrijeme from log where dogadjaj='masovni rezultati ispita za predmet pp$predmet' and vrijeme=FROM_UNIXTIME($datum)");
    		if (mysql_num_rows($q340)>0) {
    			$nicedate = " (".date("d.m.Y. H:i:s", mysql_result($q340,0,1)).")";
    			$eventshtml[mysql_result($q340,0,0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovni rezultati ispita za predmet ".get_ppredmet_link($predmet)." (".get_user_link($nasaokorisnika)." dobio: $ocjena)".$nicedate."\n";
    		}
    
    		$q320 = myquery("select pk.id from ponudakursa as pk, akademska_godina as ag where pk.predmet=$predmet and pk.akademska_godina=ag.id and ag.aktuelna=1");
    		while ($r320 = mysql_fetch_row($q320)) {
    			$q340 = myquery("select id, vrijeme from log where dogadjaj='masovni rezultati ispita za predmet p$r320[0]' and vrijeme=FROM_UNIXTIME($datum)");
    			if (mysql_num_rows($q340)>0) {
    				$nicedate = " (".date("d.m.Y. H:i:s", mysql_result($q340,0,1)).")";
    				$eventshtml[mysql_result($q340,0,0)] = "<br/><img src=\"images/fnord.gif\" width=\"37\" height=\"1\"> <img src=\"images/16x16/log_audit.png\" width=\"16\" height=\"16\" align=\"center\"> masovni rezultati ispita za predmet ".get_ppredmet_link($predmet)." (".get_user_link($nasaokorisnika)." dobio: $ocjena)".$nicedate."\n";
    			}
    		}
    	}
    	krsort($eventshtml);
    }
    */
    // Dodajemo zaglavlja sa [+] poljem (prebaciti iznad)
    foreach ($eventshtml as $logid => $event) {
        if (substr($event, 0, 4) != "<img") {
            // Login počinje sa <br/>
            // TODO: optimizovati upite!
            $q201 = myquery("select userid, UNIX_TIMESTAMP(vrijeme) from log2 where id=" . intval($logid));
            $userid = intval(mysql_result($q201, 0, 0));
            $nicedate = " (" . date("d.m.Y. H:i:s", mysql_result($q201, 0, 1)) . ")";
            if ($userid == 0) {
                $imeprezime = "ANONIMNI PRISTUPI";
                $usrimg = "zad_bug";
            } else {
                $q202 = myquery("select ime, prezime from osoba where id={$userid}");
                $imeprezime = mysql_result($q202, 0, 0) . " " . mysql_result($q202, 0, 1);
                $q203 = myquery("select count(*) from privilegije where osoba={$userid} and privilegija='nastavnik'");
                $q204 = myquery("select count(*) from privilegije where osoba={$userid} and privilegija='studentska'");
                $q205 = myquery("select count(*) from privilegije where osoba={$userid} and privilegija='siteadmin'");
                if (mysql_result($q205, 0, 0) > 0) {
                    $usrimg = "admin";
                } else {
                    if (mysql_result($q204, 0, 0) > 0) {
                        $usrimg = "teta";
                    } else {
                        if (mysql_result($q203, 0, 0) > 0) {
                            $usrimg = "tutor";
                        } else {
                            $usrimg = "user";
                        }
                    }
                }
            }
            $link = "?sta=studentska/osobe&akcija=edit&osoba={$userid}";
            print "<img src=\"images/plus.png\" width=\"13\" height=\"13\" id=\"img-{$logid}\" onclick=\"daj_stablo('{$logid}')\">\n<img src=\"images/16x16/{$usrimg}.png\" width=\"16\" height=\"16\" align=\"center\">\n<a href=\"{$link}\">{$imeprezime}</a> {$nicedate}\n<div id=\"{$logid}\" style=\"display:none\">\n";
        }
        print "{$event}</div><br/>\n";
    }
    print "<p>&nbsp;</p><p><a href=\"" . genuri() . "&stardate={$stardate}\">Sljedećih {$maxlogins}</a></p>";
}