?> /assets/images/default_300_300.jpg" alt="<?php the_title_attribute(); ?> " class="r img-full"/> <?php } ?> </a> </div> <div class="m-t-sm m-b-lg"> <?php if (get_theme_mod('show-author')) { $user_id = $post->post_author; echo get_user_link($user_id); } ?> <div class="item-desc"> <a href="<?php the_permalink(); ?> " data-pjax title="<?php the_title_attribute(); ?> " class="text-ellipsis"><?php the_title(); ?> </a> <?php $artist = get_the_term_list($post->ID, 'download_artist', '', ', ', '');
?> " class="m-b img-full"/> <?php } ?> </div> <div class="col-sm-8"> <?php the_title('<h1 class="m-t-xs m-b-sm entry-title text-black"><span itemprop="name">', '</span></h1>'); ?> <div class="entry-meta clearfix m-b"> </div> <?php if (get_theme_mod('show-author-detail')) { $user_id = $post->post_author; echo get_user_link($user_id, 36); } ?> <div class="m-b-lg m-t-lg"> <?php if (show_play($post->ID)) { ?> <a href="javascript:;" data-id="<?php echo $post->ID; ?> " class="play-me btn btn-default btn-icon"> <i class="fa fa-play text"></i> <i class="fa fa-pause text-active"></i> </a> <?php }
function bb_ksd_submit($submit, $type = false) { global $bb_ksd_api_host; global $bb_ksd_api_port; switch ($type) { case 'ham': case 'spam': $path = '/1.1/submit-' . $type; $bb_post = bb_get_post($submit); if (!$bb_post) { return; } $user = bb_get_user($bb_post->poster_id); if (bb_is_trusted_user($user->ID)) { return; } $_submit = array('blog' => bb_get_uri(null, null, BB_URI_CONTEXT_TEXT + BB_URI_CONTEXT_AKISMET), 'user_ip' => $bb_post->poster_ip, 'permalink' => get_topic_link($bb_post->topic_id), 'comment_type' => 'forum', 'comment_author' => get_user_name($user->ID), 'comment_author_email' => bb_get_user_email($user->ID), 'comment_author_url' => get_user_link($user->ID), 'comment_content' => $bb_post->post_text, 'comment_date_gmt' => $bb_post->post_time); break; case 'hammer': case 'spammer': $path = '/1.1/submit-' . substr($type, 0, -3); $user = bb_get_user($submit); if (!$user) { return; } if (bb_is_trusted_user($user->ID)) { return; } $_submit = array('blog' => bb_get_uri(null, null, BB_URI_CONTEXT_TEXT + BB_URI_CONTEXT_AKISMET), 'permalink' => get_user_profile_link($user->ID), 'comment_type' => 'profile', 'comment_author' => get_user_name($user->ID), 'comment_author_email' => bb_get_user_email($user->ID), 'comment_author_url' => get_user_link($user->ID), 'comment_content' => $user->occ . ' ' . $user->interests, 'comment_date_gmt' => $user->user_registered); break; default: if (bb_is_trusted_user(bb_get_current_user())) { return; } $path = '/1.1/comment-check'; $_submit = array('blog' => bb_get_uri(null, null, BB_URI_CONTEXT_TEXT + BB_URI_CONTEXT_AKISMET), 'user_ip' => preg_replace('/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR']), 'user_agent' => $_SERVER['HTTP_USER_AGENT'], 'referrer' => $_SERVER['HTTP_REFERER'], 'comment_type' => isset($_POST['topic_id']) ? 'forum' : 'profile', 'comment_author' => bb_get_current_user_info('name'), 'comment_author_email' => bb_get_current_user_info('email'), 'comment_author_url' => bb_get_current_user_info('url'), 'comment_content' => $submit); if (isset($_POST['topic_id'])) { $_submit['permalink'] = get_topic_link($_POST['topic_id']); // First page } break; } $query_string = ''; foreach ($_submit as $key => $data) { $query_string .= $key . '=' . urlencode(stripslashes($data)) . '&'; } return bb_ksd_http_post($query_string, $bb_ksd_api_host, $path, $bb_ksd_api_port); }
function bb_get_current_user_info($key = '') { if (!is_string($key)) { return; } if (!($user = bb_get_current_user())) { // Not globalized return false; } switch ($key) { case '': return $user; break; case 'id': case 'ID': return (int) $user->ID; break; case 'name': return get_user_display_name($user->ID); break; case 'login': case 'user_login': return get_user_name($user->ID); break; case 'email': case 'user_email': return bb_get_user_email($user->ID); break; case 'url': case 'uri': case 'user_url': return get_user_link($user->ID); break; } }
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; ?> "> <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> </p><p><a href=\"" . genuri() . "&stardate={$stardate}\">Sljedećih {$maxlogins}</a></p>"; }
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; ?> "> <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> </p><p><a href=\"" . genuri() . "&stardate={$stardate}\">Sljedećih {$maxlogins}</a></p>"; }
function bb_li_connect() { global $wp_users_object, $li_attr; //li authorization if (!$_SESSION['oauth']['linkedin']['authorized'] === TRUE) { try_li_connect(); } $me = get_li_profile(); if (!$me) { bb_die("Linkedin Connect failed"); exit; } $li_id = trim($me->{$li_attr}['id']); //bb_die($li_id); if (!$li_id) { bb_die("LinkedIn Connect failed, no user id found."); exit; } // Check if the user has already connected before $user_id = li_get_userid_by_linkedin_id($li_id); if (!$user_id) { // User did not exist yet, lets create the local account // First order of business is to find a unused usable account name for ($i = 1;; $i++) { $user_login = strtolower(sanitize_user(li_get_user_displayname($me), true)); $user_login = str_replace(' ', '_', $user_login); $user_login = str_replace('__', '_', $user_login); if (strlen($user_login) < 2) { $user_login = "******"; } if (strlen($user_login) > 50 - strlen($i)) { $user_login = substr($user_login, 0, 50 - strlen($i)); } if ($i > 1) { $user_login .= $i; } // A very rare potential race condition exists here, if two users with the same name // happen to register at the same time. One of them would fail, and have to retry. if (bb_get_user($user_login, array('by' => 'login')) === false) { break; } } $user_nicename = $user_login; $user_email = $user_login . "@none.local"; $user_url = trim($me->{$li_attr}['public-profile-url']); $user_url = $user_url ? bb_fix_link($user_url) : ''; $user_status = 0; $user_pass = bb_generate_password(); // User may have given permission to use his/her real email. Lets use it if so. /*if (isset($me['email']) && $me['email'] != '' && is_email($me['email'])) { $user_email = trim($me['email']); if (bb_get_user($user_email, array ('by' => 'email')) !== false) { // Uh oh. A user with this email already exists. This does not work out for us. bb_die("Error: an user account with the email address '$user_email' already exists."); } }*/ $user = $wp_users_object->new_user(compact('user_login', 'user_email', 'user_url', 'user_nicename', 'user_status', 'user_pass')); if (!$user || is_wp_error($user)) { bb_die("Creating new user failed"); exit; } $user_id = $user['ID']; //bb_die($user_id); bb_update_usermeta($user_id, $bbdb->prefix . 'capabilities', array('member' => true)); bb_update_usermeta($user_id, 'linkedin_id', $li_id); bb_update_usermeta($user_id, 'prompt_email', '1'); // will prompt user for email until set false. 1=true 0=false bb_update_usermeta($user_id, 'li_avatar', trim($me->{$li_attr}['picture-url'])); // user avatar bb_update_user($user_id, $user_email, $user_url, li_get_user_displayname($me)); bb_update_usermeta($user_id, 'first_name', trim($me->{$li_attr}['first-name'])); bb_update_usermeta($user_id, 'last_name', trim($me->{$li_attr}['last-name'])); bb_update_usermeta($user_id, 'occ', trim($me->{$li_attr}['headline'])); bb_update_usermeta($user_id, 'interest', trim($me->{$li_attr}['industry'])); do_action('bb_new_user', $user_id, $user_pass); do_action('register_user', $user_id); } else { bb_update_usermeta($user_id, 'prompt_email', '1'); bb_update_usermeta($user_id, 'li_avatar', trim($me->{$li_attr}['picture-url'])); if (!bb_get_option('li_allow_useredit')) { // enforce first name, last name and display name if the users are not allowed to change them bb_update_user($user_id, bb_get_user_email($user_id), get_user_link($user_id), li_get_user_displayname($me)); bb_update_usermeta($user_id, 'first_name', trim($me->{$li_attr}['first-name'])); bb_update_usermeta($user_id, 'last_name', trim($me->{$li_attr}['last-name'])); bb_update_usermeta($user_id, 'occ', trim($me->{$li_attr}['headline'])); bb_update_usermeta($user_id, 'interest', trim($me->{$li_attr}['industry'])); } } bb_set_auth_cookie($user_id, true); do_action('bb_user_login', $user_id); $redirect_url = $_REQUEST['li_bb_connect']; if (strpos($redirect_url, bb_get_option('uri')) !== 0) { $redirect_url = bb_get_option('uri'); } bb_safe_redirect($redirect_url); exit; }
function render_user_action($dbc, $user_id, $action, $date_time = '') { echo get_user_link($dbc, $user_id) . $action . $date_time; }