function student_projekti() { require_once "lib/projekti.php"; //debug mod aktivan global $userid, $user_student; $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // Da li student slusa predmet? $q10 = myquery("select sp.predmet from student_predmet as sp, ponudakursa as pk where sp.student={$userid} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}"); if (mysql_num_rows($q10) < 1) { zamgerlog("student ne slusa predmet pp{$predmet}", 3); zamgerlog2("student ne slusa predmet", $predmet, $ag); biguglyerror("Niste upisani na ovaj predmet"); return; } $linkprefix = "?sta=student/projekti&predmet={$predmet}&ag={$ag}"; $akcija = $_REQUEST['akcija']; $id = intval($_REQUEST['id']); // KORISNI UPITI // Spisak svih projekata $q20 = myquery("SELECT id, naziv, opis, vrijeme FROM projekat WHERE predmet={$predmet} AND akademska_godina={$ag} ORDER BY vrijeme DESC"); $svi_projekti = array(); while ($r20 = mysql_fetch_assoc($q20)) { $svi_projekti[] = $r20; } // Broj članova po projektu $broj_studenata = array(); $q30 = myquery("select p.id, count(sp.student) FROM projekat as p, student_projekat as sp WHERE p.id=sp.projekat AND p.predmet={$predmet} AND p.akademska_godina={$ag} GROUP BY sp.projekat"); while ($r30 = mysql_fetch_row($q30)) { $broj_studenata[$r30[0]] = $r30[1]; } // Da li je student upisan u neki projekat? $clan_projekta = 0; $q40 = myquery("SELECT p.id FROM projekat as p, student_projekat as sp WHERE p.id=sp.projekat AND sp.student={$userid} AND p.predmet={$predmet} AND p.akademska_godina={$ag} LIMIT 1"); if (mysql_num_rows($q40) > 0) { $clan_projekta = mysql_result($q40, 0, 0); } // Parametri projekata na predmetu $q50 = myquery("SELECT min_timova, max_timova, min_clanova_tima, max_clanova_tima, zakljucani_projekti FROM predmet_projektni_parametri WHERE predmet='{$predmet}' AND akademska_godina='{$ag}' LIMIT 1"); if (mysql_num_rows($q50) < 1) { niceerror("Predmetni nastavnik nije podesio parametre projekata."); print "Prijavljivanje na projekte za sada nije moguće. Obratite se predmetnom nastavniku ili asistentu za dodatne informacije."; return; } $min_timova = mysql_result($q50, 0, 0); $max_timova = mysql_result($q50, 0, 1); $min_clanova_tima = mysql_result($q50, 0, 2); $max_clanova_tima = mysql_result($q50, 0, 3); $zakljucani_projekti = mysql_result($q50, 0, 4); // Da li je dostignut limit broja timova? $brtimova = 0; foreach ($svi_projekti as $projekat) { if ($broj_studenata[$projekat[id]] > 0) { $brtimova++; } } $limit_timova = false; if ($brtimova >= $max_timova) { $limit_timova = true; // No ako je student trenutno član projekta sa samo jednim članom, // istupanjem iz tima otvoriće se mogućnost kreiranja novog tima if ($clan_projekta > 0 && $broj_studenata[$clan_projekta] == 1) { $limit_timova = false; } } // Stylesheet... čemu? ?> <LINK href="css/projekti.css" rel="stylesheet" type="text/css"> <?php // Akcije if ($akcija == 'prijava') { $projekat = intval($_REQUEST['projekat']); // Da li je projekat sa ovog predmeta? $nasao = false; foreach ($svi_projekti as $proj) { if ($proj[id] == $projekat) { $nasao = true; break; } } if ($nasao == false) { niceerror("Nepoznat projekat!"); zamgerlog("prijava na projekat {$projekat} koji nije sa predmeta pp{$predmet}", 3); zamgerlog2("projekat i predmet ne odgovaraju", $projekat, $predmet); } else { if ($zakljucani_projekti) { niceerror("Zaključane su prijave na projekte."); zamgerlog("prijava na projekat {$projekat} koji je zaključan na predmetu pp{$predmet}", 3); zamgerlog2("projekat zakljucan", $projekat); } else { if ($broj_studenata[$projekat] >= $max_clanova_tima) { niceerror("Dosegnut je limit broja članova po projektu."); zamgerlog("prijava na projekat {$projekat} koji je popunjen", 3); zamgerlog2("projekat popunjen", $projekat); } else { if ($broj_studenata[$projekat] == 0 && $limit_timova) { niceerror("Dosegnut je maksimalan broj timova. Ne možete kreirati novi tim."); zamgerlog("dosegnut limit broja timova na predmetu pp{$predmet}", 3); zamgerlog2("dosegnut limit broja timova", $predmet); } else { // Upisujemo u novi projekat $q110 = myquery("INSERT INTO student_projekat SET student={$userid}, projekat={$projekat}"); nicemessage("Uspješno ste prijavljeni na projekat"); zamgerlog("student upisan na projekat {$projekat} (predmet pp{$predmet})", 2); zamgerlog2("prijavljen na projekat", $projekat); // Ispisujemo studenta sa postojećih projekata if ($clan_projekta > 0) { $q100 = myquery("DELETE FROM student_projekat WHERE student={$userid} AND projekat={$clan_projekta}"); nicemessage("Odjavljeni ste sa starog projekta"); zamgerlog("student ispisan sa projekta {$projekat} (predmet pp{$predmet})", 2); zamgerlog2("odjavljen sa starog projekta", $projekat); } } } } } print '<a href="' . $linkprefix . '">Povratak.</a>'; return; } // akcija == prijava if ($akcija == 'odjava') { $projekat = intval($_REQUEST['projekat']); // Da li je projekat sa ovog predmeta? $nasao = false; foreach ($svi_projekti as $proj) { if ($proj[id] == $projekat) { $nasao = true; break; } } if ($nasao == false) { niceerror("Nepoznat projekat!"); zamgerlog("odjava sa projekta {$projekat} koji nije sa predmeta pp{$predmet}", 3); zamgerlog2("projekat i predmet ne odgovaraju (odjava)", $projekat, $predmet); } else { if ($zakljucani_projekti) { niceerror("Zaključane su liste timova za projekte. Odustajanja nisu dozvoljena."); zamgerlog("odjava sa projekta {$projekat} koji je zakljucan na predmetu pp{$predmet}", 3); zamgerlog2("projekat zakljucan (odjava)", $projekat); } else { if ($projekat != $clan_projekta) { niceerror("Niste prijavljeni na ovaj projekat"); zamgerlog("odjava sa projekta {$projekat} na koji nije prijavljen", 3); zamgerlog2("odjava sa projekta na koji nije prijavljen", $projekat); } else { $q120 = myquery("DELETE FROM student_projekat WHERE student={$userid} AND projekat={$projekat}"); nicemessage("Uspješno ste odjavljeni sa projekta"); zamgerlog("student ispisan sa projekta {$projekat} (predmet pp{$predmet})", 2); zamgerlog2("odjavljen sa projekta", $projekat); } } } print '<a href="' . $linkprefix . '">Povratak.</a>'; return; } // akcija == odjava if ($akcija == 'projektnastranica') { require_once 'common/projektneStrane.php'; common_projektneStrane(); return; } //akcija == projektnastranica // Glavni ekran ?> <h2>Projekti</h2> <span class="notice"> Nastavnik je definisao sljedeće parametre svih projekata na ovom predmetu: <ul> <li>Broj timova: <?php if ($min_timova == $max_timova) { print "tačno {$max_timova}"; } else { print "od {$min_timova} do {$max_timova}"; } ?> </li> <li>Broj članova tima: <?php if ($min_clanova_tima == $max_clanova_tima) { print "tačno {$max_clanova_tima}"; } else { print "od {$min_clanova_tima} do {$max_clanova_tima}"; } ?> </li> </ul> Prijavite se na projekat i automatski se učlanjujete u projektni tim ili kreirate novi tim. Da biste promijenili tim, prijavite se u drugi tim. </span><br /><?php // Ispis - zakljucani projekti if ($zakljucani_projekti == 1) { ?> <span class="notice">Onemogućene su prijave u projektne timove. Otvorene su projektne stranice.</span> <?php } else { ?> <span class="noticeGreen">Moguće su prijave u projetne timove. Nastavnik još uvijek nije kompletirao prijave.</span> <?php } // Ako je upisivanje zaključano, ispisaćemo samo onaj projekat u koji je student upisan $projekti_za_ispis = array(); if ($zakljucani_projekti == 1 && $clan_projekta > 0) { foreach ($svi_projekti as $projekat) { if ($projekat[id] == $clan_projekta) { $projekti_za_ispis[] = $projekat; } } } else { $projekti_za_ispis = $svi_projekti; } // Nema projekata if (count($svi_projekti) == 0) { nicemessage("Predmetni nastavnik još uvijek nije definisao projekte na ovom predmetu. Imajte strpljenja."); } // Ispis projektnih kocki foreach ($projekti_za_ispis as $projekat) { ?> <h3><?php echo $projekat['naziv']; ?> </h3> <div class="links"> <ul class="clearfix"> <?php if ($zakljucani_projekti == 0) { if ($projekat[id] == $clan_projekta) { ?> <li class="last"><a href="<?php echo $linkprefix . "&projekat=" . $projekat[id] . "&akcija=odjava"; ?> ">Odustani od prijave na ovom projektu</a></li> <?php } else { if ($broj_studenata[$projekat[id]] >= $max_clanova_tima) { ?> <li style="color:red" class="last">Projekat je popunjen i ne prima prijave.</li> <?php } else { if ($broj_studenata[$projekat[id]] == 0 && $limit_timova) { ?> <div style="color:red; margin-top: 10px;">Limit za broj timova dostignut. Ne možete kreirati novi tim. Prijavite se na projekte u kojima ima mjesta.</div> <?php } else { if ($clan_projekta == 0) { ?> <li class="last"><a href="<?php echo $linkprefix . "&projekat=" . $projekat[id] . "&akcija=prijava"; ?> ">Prijavi se na ovaj projekat</a></li> <?php } else { ?> <li class="last"><a href="<?php echo $linkprefix . "&projekat=" . $projekat[id] . "&akcija=prijava"; ?> ">Prijavi se na ovaj projekat / Promijeni članstvo</a></li> <?php } } } } } else { // Projekti su zaključani ?> <li class="last"><a href="<?php echo $linkprefix . "&projekat=" . $projekat[id] . "&akcija=projektnastranica"; ?> ">Projektna stranica</a></li> <?php } // Ispis ostalih podataka o projektu ?> </ul> </div> <table class="projekti" border="0" cellspacing="0" cellpadding="2"> <tr> <th width="200" align="left" valign="top" scope="row">Naziv</th> <td width="490" align="left" valign="top"><?php echo $projekat['naziv']; ?> </td> </tr> <tr> <th width="200" align="left" valign="top" scope="row">Prijavljeni tim / student</th> <td width="490" align="left" valign="top"> <?php // Spisak članova projekta $q200 = myquery("select o.ime, o.prezime, o.brindexa from osoba as o, student_projekat as sp where sp.student=o.id and sp.projekat=" . $projekat[id] . " order by o.prezime, o.ime"); if (mysql_num_rows($q200) < 1) { print 'Nema prijavljenih studenata.'; } else { print "<ul>\n"; } while ($r200 = mysql_fetch_row($q200)) { ?> <li><?php echo $r200[1] . ' ' . $r200[0] . ', ' . $r200[2]; ?> </li> <?php } if (mysql_num_rows($q200) > 0) { print "</ul>\n"; } ?> </td> </tr> <tr> <th width="200" align="left" valign="top" scope="row">Opis</th> <td width="490" align="left" valign="top"><?php echo nl2br($projekat['opis']); ?> </td> </tr> </table> <?php } // foreach ($projekti_za_ispis... }
function nastavnik_projekti() { require_once 'lib/projekti.php'; global $userid, $user_nastavnik, $user_siteadmin; global $conf_files_path; $predmet = intval($_REQUEST['predmet']); $ag = intval($_REQUEST['ag']); // Da li korisnik ima pravo ući u modul? if (!$user_siteadmin) { $q10 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}"); if (mysql_num_rows($q10) < 1 || mysql_result($q10, 0, 0) == "asistent") { zamgerlog("nastavnik/projekti privilegije (predmet pp{$predmet})", 3); zamgerlog2("nije nastavnik na predmetu", $predmet, $ag); biguglyerror("Nemate pravo pristupa ovoj opciji"); return; } } $linkPrefix = "?sta=nastavnik/projekti&predmet={$predmet}&ag={$ag}"; $akcija = $_REQUEST['akcija']; $id = intval($_REQUEST['id']); ?> <LINK href="css/projekti.css" rel="stylesheet" type="text/css"> <h2>Projekti</h2> <?php // Preuzimanje projektnih parametara $q10 = myquery("SELECT min_timova, max_timova, min_clanova_tima, max_clanova_tima, zakljucani_projekti FROM predmet_projektni_parametri WHERE predmet={$predmet} AND akademska_godina={$ag}"); if (mysql_num_rows($q10) < 1) { $nema_parametara = true; } else { $nema_parametara = false; $param_min_timova = mysql_result($q10, 0, 0); $param_max_timova = mysql_result($q10, 0, 1); $param_min_clanova_tima = mysql_result($q10, 0, 2); $param_max_clanova_tima = mysql_result($q10, 0, 3); $param_zakljucan = mysql_result($q10, 0, 4); } // Glavni meni if ($akcija != 'projektna_stranica') { ?> <div class="links"> <ul class="clearfix"> <li><a href="<?php echo $linkPrefix . "&akcija=param"; ?> ">Parametri projekata</a></li> <li><a href="<?php echo $linkPrefix; ?> ">Lista projekata</a></li> <li><a href="<?php echo $linkPrefix . "&akcija=dodaj_projekat"; ?> ">Novi projekat</a></li> <li class="last"><a href="<?php echo $linkPrefix . "&akcija=dodjela_studenata"; ?> ">Dodjela projekata studentima</a></li> </ul> </div> <?php } // Default akcija - LISTA PROJEKATA if (!isset($akcija)) { ?> <h2>Lista projekata</h2> <?php // Početne informacije $q100 = myquery("SELECT id, naziv, opis FROM projekat WHERE predmet={$predmet} AND akademska_godina={$ag} ORDER BY naziv"); $broj_projekata = mysql_num_rows($q100); if ($broj_projekata > 0) { if ($param_zakljucan == 1) { ?> <span class="notice">Onemogućene su prijave u projektne timove. Otvorene su projektne stranice.</span> <?php } else { ?> <span class="noticeGreen">Studenti se još uvijek mogu prijaviti u projektne timove. Niste zaključali spiskove u parametrima prijekata.</span> <?php } $q460 = myquery("select distinct p.id from student_projekat as sp, projekat as p where sp.projekat=p.id and p.predmet={$predmet} and p.akademska_godina={$ag}"); $broj_nepraznih = mysql_num_rows($q460); if ($broj_nepraznih < $param_min_timova) { ?> <span class="notice">Trenutni broj timova sa barem jednim studentom (<?php echo $broj_nepraznih; ?> ) je ispod minimalnog broj timova koji ste definisali za ovaj predmet (<?php echo $param_min_timova; ?> ).</span> <?php } } else { ?> <span class="notice">Nema kreiranih projekata na ovom predmetu.</span> <?php } while ($r100 = mysql_fetch_row($q100)) { $id_projekta = $r100[0]; $naziv_projekta = $r100[1]; ?> <h3><?php echo $naziv_projekta; ?> </h3> <div class="links"> <ul class="clearfix" style="margin-bottom: 10px;"> <li><a href="<?php echo $linkPrefix . "&akcija=izmjena_projekta&id={$id_projekta}"; ?> ">Izmijeni projekat</a></li> <li><a href="<?php echo $linkPrefix . "&akcija=dodaj_biljesku&id={$id_projekta}"; ?> ">Dodaj bilješku</a></li> <li <?php if ($param_zakljucan == 0) { print 'class="last"'; } ?> ><a href="<?php echo $linkPrefix . "&akcija=obrisi_projekat&id={$id_projekta}"; ?> ">Obriši projekat</a></li> <?php if ($param_zakljucan == 1) { ?> <li class="last"><a href="<?php echo $linkPrefix . "&akcija=projektna_stranica&projekat={$id_projekta}"; ?> ">Projektna stranica</a></li> <?php } ?> </ul> <?php $q110 = myquery("SELECT COUNT(id) FROM osoba as o, student_projekat as sp where o.id=sp.student and sp.projekat={$id_projekta}"); $broj_clanova = mysql_result($q110, 0, 0); if ($broj_clanova < $param_min_clanova_tima) { ?> <span class="notice">Broj prijavljenih studenata (<?php echo $broj_clanova; ?> ) je ispod minimuma koji ste definisali za ovaj predmet (<?php echo $param_min_clanova_tima; ?> ).</span> <?php } ?> </div> <table class="projekti" border="0" cellspacing="0" cellpadding="2"> <tr> <th width="200" align="left" valign="top" scope="row">Naziv</th> <td width="490" align="left" valign="top"><?php echo $naziv_projekta; ?> </td> </tr> <tr> <th width="200" align="left" valign="top" scope="row">Prijavljeni studenti</th> <td width="490" align="left" valign="top"> <?php // Spisak studenata $q120 = myquery("SELECT o.id, o.prezime, o.ime, o.brindexa FROM osoba as o, student_projekat as sp WHERE sp.student=o.id and sp.projekat={$id_projekta} ORDER BY o.prezime, o.ime"); if (mysql_num_rows($q120) < 1) { print 'Nema prijavljenih studenata.'; } else { print "<ul>\n"; while ($r120 = mysql_fetch_row($q120)) { print "<li>{$r120['1']} {$r120['2']} ({$r120['3']})"; if ($param_zakljucan == 0) { print ' - (<a href="' . $linkPrefix . "&akcija=izbaci_studenta&student={$r120['0']}&projekat={$id_projekta}" . '">izbaci</a>)'; } print "</li>\n"; } print "</ul>\n"; } ?> </td> </tr> <tr> <th width="200" align="left" valign="top" scope="row">Opis</th> <td width="490" align="left" valign="top"><?php echo $r100[2]; ?> </td> </tr> </table> <?php } // while ($r100... } // if (!isset($akcija) // Akcija PARAMETRI PROJEKATA if ($akcija == 'param') { if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { // Poslana forma za promjenu $min_timova = intval($_REQUEST['min_timova']); $max_timova = intval($_REQUEST['max_timova']); $min_clanova_tima = intval($_REQUEST['min_clanova_tima']); $max_clanova_tima = intval($_REQUEST['max_clanova_tima']); $zakljucani_projekti = 0; if (isset($_REQUEST['lock'])) { $zakljucani_projekti = 1; } if ($min_timova <= 0 || $max_timova <= 0 || $min_clanova_tima <= 0 || $max_clanova_tima <= 0) { niceerror("Morate unijeti ispravne vrijednosti u sva polja"); nicemessage('<a href="javascript:history.back();">Povratak.</a>'); return; } $q200 = myquery("REPLACE predmet_projektni_parametri SET predmet={$predmet}, akademska_godina={$ag}, min_timova={$min_timova}, max_timova={$max_timova}, min_clanova_tima={$min_clanova_tima}, max_clanova_tima={$max_clanova_tima}, zakljucani_projekti={$zakljucani_projekti}"); nicemessage('Uspješno ste uredili parametre projekata.'); zamgerlog("izmijenio parametre projekata na predmetu pp{$_REQUEST['predmet']}", 2); zamgerlog2("izmijenjeni parametri projekata na predmetu", $predmet, $ag); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); return; } ?> <h2>Parametri projekata</h2> <?php echo genform("POST", "editForm"); ?> <input type="hidden" name="subakcija" value="potvrda"> <div id="formDiv"> Polja sa * su obavezna. <br /> <div class="row"> <span class="label">Zaključaj stanje projekata i timova</span> <span class="formw"><input name="lock" type="checkbox" id="lock" <?php if ($param_zakljucan == 1) { print 'checked'; } ?> /></span> <br /><br /> Ova opcija će onemogućiti prijavljivanje na projekte i pokrenuti projektne stranice. </div> <div class="row"> <span class="label">MIN timova *</span> <span class="formw"><input name="min_timova" type="text" id="min_timova" size="10" value="<?php echo $param_min_timova; ?> " /></span> </div> <div class="row"> <span class="label">MAX timova *</span> <span class="formw"><input name="max_timova" type="text" id="max_timova" size="10" value="<?php echo $param_max_timova; ?> " /></span> </div> <div class="row"> <span class="label">MIN članova tima *</span> <span class="formw"><input name="min_clanova_tima" type="text" id="min_clanova_tima" size="10" value="<?php echo $param_min_clanova_tima; ?> " /></span> </div> <div class="row"> <span class="label">MAX članova tima *</span> <span class="formw"><input name="max_clanova_tima" type="text" id="max_clanova_tima" size="10" value="<?php echo $param_max_clanova_tima; ?> " /></span> </div> <div class="row"> <span class="formw" style="margin-left:150px;"><input type="submit" id="submit" value="Potvrdi"/></span> </div> </div><!--formDiv--> </form> <?php } elseif ($akcija == 'dodaj_projekat') { if ($nema_parametara && !isset($_REQUEST['submit'])) { nicemessage("Prvo podesite parametre projekata."); nicemessage('<a href="' . $linkPrefix . '&akcija=param">Parametri projekata</a>'); return; } if ($param_zakljucan == 1) { niceerror("Zaključali ste stanje projekata na ovom predmetu. Nije moguće napraviti novi projekat."); nicemessage('<a href="' . $linkPrefix . '&akcija=param">Parametri projekata</a>'); return; } if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { // Poslana forma za dodavanje projekta $naziv = my_escape(trim($_REQUEST['naziv'])); $opis = my_escape(trim($_REQUEST['opis'])); $id = intval($_REQUEST['id']); if (empty($naziv) || empty($opis)) { niceerror('Unesite sva obavezna polja.'); nicemessage('<a href="javascript:history.back();">Povratak.</a>'); return; } // Generišemo jedinstven ID $qnesta = myquery("select id from projekat order by id desc limit 1"); if (mysql_num_rows($qnesta) < 1) { $id = 1; } else { $id = mysql_result($qnesta, 0, 0) + 1; } $q210 = myquery("INSERT INTO projekat (id, naziv, opis, predmet, akademska_godina) VALUES ({$id}, '{$naziv}', '{$opis}', '{$predmet}', '{$ag}')"); nicemessage('Novi projekat uspješno dodan.'); zamgerlog("dodao novi projekat na predmetu pp{$predmet}", 2); zamgerlog2("dodao projekat", mysql_insert_id(), $predmet, $ag); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); return; } ?> <h2>Novi projekat</h2> <?php echo genform("POST", "addForm"); ?> <input type="hidden" name="subakcija" value="potvrda"> <div id="formDiv"> Polja sa * su obavezna. <br /> <div class="row"> <span class="label">Naziv *</span> <span class="formw"><input name="naziv" type="text" id="naziv" size="70" /></span> </div> <div class="row"> <span class="label">Opis *</span> <span class="formw"><textarea name="opis" cols="60" rows="15" wrap="physical" id="opis"></textarea></span> </div> <div class="row"> <span class="formw" style="margin-left:150px;"><input type="submit" id="submit" value="Potvrdi"/></span> </div> </div><!--formDiv--> </form> <?php } elseif ($akcija == 'izmjena_projekta') { if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { // Poslana forma za izmjenu projekta $naziv = my_escape(trim($_REQUEST['naziv'])); $opis = my_escape(trim($_REQUEST['opis'])); if (empty($naziv) || empty($opis)) { niceerror('Unesite sva obavezna polja.'); nicemessage('<a href="javascript:history.back();">Povratak.</a>'); return; } $q220 = myquery("select count(*) from projekat where id={$id}"); if (mysql_result($q220, 0, 0) == 0) { niceerror("Projekat sa IDom {$id} ne postoji."); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); return; } $q230 = myquery("UPDATE projekat SET naziv='{$naziv}', opis='{$opis}' WHERE id='{$id}'"); nicemessage('Uspješno ste izmijenili projekat.'); zamgerlog("izmijenio projekat {$id} na predmetu pp{$predmet}", 2); zamgerlog2("izmijenio projekat", $id); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); return; } // Prikaz forme $q240 = myquery("SELECT naziv, opis FROM projekat WHERE id={$id}"); ?> <h1>Izmijeni projekat</h1> <?php echo genform("POST", "editForm"); ?> <input type="hidden" name="subakcija" value="potvrda"> <div id="formDiv"> Polja sa * su obavezna. <br /> <div class="row"> <span class="label">Naziv *</span> <span class="formw"><input name="naziv" type="text" id="naziv" size="70" value="<?php echo mysql_result($q10, 0, 0); ?> " /></span> </div> <div class="row"> <span class="label">Opis *</span> <span class="formw"><textarea name="opis" cols="60" rows="15" wrap="physical" id="opis"><?php echo mysql_result($q10, 0, 1); ?> </textarea></span> </div> <div class="row"> <span class="formw" style="margin-left:150px;"><input type="submit" id="submit" value="Potvrdi"/></span> </div> </div><!--formDiv--> </form> <?php } elseif ($akcija == 'dodaj_biljesku') { if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { // Poslana forma za dodavanje bilješke $biljeska = my_escape($_REQUEST['biljeska']); $q250 = myquery("UPDATE projekat SET biljeska='{$biljeska}' WHERE id={$id}"); nicemessage('Uspješno ste dodali bilješku.'); zamgerlog("dodao biljesku na projekat {$id} na predmetu pp{$predmet}", 2); zamgerlog2("dodao biljesku na projekat", $id); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); return; } // Forma za izmjenu/dodavanje bilješke $q260 = myquery("SELECT biljeska FROM projekat WHERE id={$id}"); ?> <h3>Dodaj bilješku za projekat</h3> <?php echo genform('POST', 'addNote'); ?> <input type="hidden" name="subakcija" value="potvrda"> <div class="row"> <span class="label">Bilješka:</span> <span class="formw"><textarea name="biljeska" cols="60" rows="15" wrap="physical" id="opis"><?php echo mysql_result($q260, 0, 0); ?> </textarea></span> </div> <div class="row"> <span class="formw" style="margin-left:150px;"><input type="submit" id="submit" value="Potvrdi"/></span> </div> </form> <?php } elseif ($akcija == 'obrisi_projekat') { if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { // Brisanje projekta // Brisanje fajlova $lokacijafajlova = "{$conf_files_path}/projekti/fajlovi/"; if (!rmdir_recursive($lokacijafajlova . $id)) { // Ignorišemo greške jer šta ako fajlovi nisu ni postojali?? //niceerror("Greška prilikom brisanja direktorija sa člancima!"); //zamgerlog("greška prilikom brisanja direktorija fajlovi za projekat $id", 3); //return; } // Brisanje članaka $lokacijaclanaka = "{$conf_files_path}/projekti/clanci/"; if (!rmdir_recursive($lokacijaclanaka . $id)) { // Ignorišemo greške jer šta ako fajlovi nisu ni postojali?? //niceerror("Greška prilikom brisanja direktorija sa člancima!"); //zamgerlog("greška prilikom brisanja direktorija clanci za projekat $id", 3); //return; } $q300 = myquery("DELETE FROM bl_clanak WHERE projekat={$id}"); // Brisanje linkova $q310 = myquery("DELETE FROM projekat_link WHERE projekat={$id}"); // Brisanje RSSa $q320 = myquery("DELETE FROM projekat_rss WHERE projekat={$id}"); // Brisanje foruma $q330 = myquery("DELETE FROM bb_post_text WHERE post IN (SELECT id FROM bb_post WHERE tema IN (SELECT id FROM bb_tema WHERE projekat={$id}) )"); $q340 = myquery("DELETE FROM bb_post WHERE tema IN (SELECT id FROM bb_tema WHERE projekat={$id})"); $q350 = sprintf("DELETE FROM bb_tema WHERE projekat={$id}"); // Ispis studenata sa projekta $q360 = myquery("DELETE FROM student_projekat WHERE projekat={$id}"); // Brisanje samog projekta $q370 = myquery("DELETE FROM projekat WHERE id={$id}"); nicemessage('Uspješno ste obrisali projekat.'); zamgerlog("izbrisan projekat {$id} na predmetu pp{$predmet}", 4); zamgerlog2("izbrisan projekat", $id, $predmet, $ag); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); return; } ?> Da li ste sigurni da želite obrisati ovaj projekat? Svi podaci vezani za aktivnosti na ovom projektu će biti nepovratno izgubljeni.<br /> <?php echo genform('POST'); ?> <input type="hidden" name="subakcija" value="potvrda"> <input type="submit" value="Potvrda brisanja"> <input type="button" onclick="location.replace('<?php echo $linkPrefix; ?> ');" value="Odustani"> </form> <?php } elseif ($akcija == 'projektna_stranica') { require_once 'common/projektneStrane.php'; common_projektneStrane(); } elseif ($akcija == 'dodjela_studenata') { if ($_REQUEST['subakcija'] == "dodaj" && check_csrf_token()) { // Dodavanje studenta na projekat $student = intval($_REQUEST['student']); $projekat = intval($_REQUEST['projekat']); if ($param_zakljucan) { // Ne bi se smjelo desiti niceerror("Zaključane su prijave na projekte."); nicemessage('<a href="javascript:history.back();">Povratak.</a>'); return; } // Da li je projekat popunjen? $q430 = myquery("select count(*) from student_projekat where projekat={$projekat}"); if (mysql_result($q430, 0, 0) >= $param_max_clanova_tima) { // Ne bi se smjelo desiti niceerror("Projekat je popunjen."); nicemessage('<a href="javascript:history.back();">Povratak.</a>'); return; } // Da li je student već na nekom projektu? $stari_projekat = 0; $q440 = myquery("select p.id FROM projekat as p, student_projekat as sp WHERE p.id=sp.projekat AND sp.student={$student} AND p.predmet={$predmet} AND p.akademska_godina={$ag}"); while ($r440 = mysql_fetch_row($q440)) { $stari_projekat = $r440[0]; } // Da li je prekoračen maksimalan broj nepraznih projekata? $q460 = myquery("select distinct p.id from student_projekat as sp, projekat as p where sp.projekat=p.id and p.predmet={$predmet} and p.akademska_godina={$ag}"); $broj_nepraznih = mysql_num_rows($q460); if ($broj_nepraznih >= $param_max_timova) { // No ako studenta ispisujemo iz projekta koji će postati prazan onda je sve ok $prekoracenje = true; if ($stari_projekat != 0) { $q470 = myquery("select count(*) from student_projekat where projekat={$stari_projekat}"); if (mysql_result($q470, 0, 0) == 1) { $prekoracenje = false; } } if ($prekoracenje) { niceerror("Ne mogu upisati studenta na ovaj projekat jer bi time bio prekoračen maksimalan broj timova. {$broj_nepraznih}"); print "<p>Koristite <a href='{$linkPrefix}&akcija=param'>Parametre projekata</a> da biste povećali ograničenje broja timova.</p>"; nicemessage('<a href="javascript:history.back();">Povratak.</a>'); return; } } // Potvrđujemo prijavu $q450 = myquery("delete from student_projekat where student={$student} and projekat={$stari_projekat}"); $q480 = myquery("INSERT INTO student_projekat (student, projekat) VALUES ({$student}, {$projekat})"); nicemessage('Student je uspješno prijavljen na projekat!'); if ($stari_projekat == 0) { zamgerlog("student u{$student} prijavljen na projekat {$projekat} (predmet pp{$predmet}", 2); zamgerlog2("student prijavljen na projekat", $student, $projekat); } else { zamgerlog("student u{$student} prebacen sa projekta {$stari_projekat} na {$projekat} (predmet pp{$predmet}", 2); zamgerlog2("student prebacen na projekat", $student, $projekat, 0, $stari_projekat); } nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); } $opcije = ""; ?> <!-- Ako je prvi put ucitano, dohvati predmete i dohvati sve studente na predmetu, prikazi formu. --> </br> <b>LISTA STUDENATA BEZ PROJEKTA:</b> <?php $q400 = myquery("SELECT o.id, o.ime, o.prezime, o.brindexa FROM student_predmet as sp, osoba as o, ponudakursa as pk where sp.student=o.id and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag} order by o.prezime, o.ime"); if (mysql_num_rows($q400) == 0) { nicemessage('Svim studentima je dodijeljen projekat!'); } else { $cnt = 0; while ($r400 = mysql_fetch_row($q400)) { // Odmah kreiramo i opcije za selektovanje studenta $opcije .= "<option value='{$r400['0']}'>{$r400['2']} {$r400['1']}</option>\n"; $q410 = myquery("select count(*) from student_projekat as sp, projekat as p where sp.student={$r400['0']} and sp.projekat=p.id and p.predmet={$predmet} and p.akademska_godina={$ag}"); if (mysql_result($q410, 0, 0) > 0) { continue; } $cnt = $cnt + 1; print "</br>"; print "<span id=\"noProjectStudent\">{$cnt}. {$r400['2']} {$r400['1']}</span>"; } } ?> <br><br><br> <b>DODAVANJE STUDENTA NA PROJEKAT</b><br> <span class="napomena">*Uputa:</span> Izaberite studenta, a zatim projekat i konačno kliknite Upiši!<br> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="dodaj"> Student: <select name="student"><?php echo $opcije; ?> </select><br/> Projekat: <select name="projekat"><?php $cnt2 = 0; $q420 = myquery("SELECT id, naziv FROM projekat WHERE predmet={$predmet} AND akademska_godina={$ag} ORDER BY naziv"); $rowcounter = 0; while ($r420 = mysql_fetch_row($q420)) { $cnt2 = $cnt2 + 1; ?> <option value="<?php echo $r420[0]; ?> "><?php echo $r420[1]; ?> </option> <?php } ?> </select> <br /> <input name="dodaj" type="submit" value="Upiši"/> </form> <p>Za ispisivanje studenta sa projekta, koristite listu projekata.</p> <?php } elseif ($akcija == 'izbaci_studenta') { $student = intval($_REQUEST['student']); $projekat = intval($_REQUEST['projekat']); if ($param_zakljucan == 1) { niceerror('Zaključane su prijave na projekte. Odjave nisu dozvoljene.'); return; } $q500 = myquery("select naziv from projekat where id={$projekat}"); if (mysql_num_rows($q500) < 1) { niceerror("Nepostojeći projekat {$projekat}"); return; } $naziv_projekta = mysql_result($q500, 0, 0); $q505 = myquery("select ime, prezime from osoba where id={$student}"); if (mysql_num_rows($q505) < 1) { niceerror("Nepostojeći student {$student}"); return; } $imeprezime = mysql_result($q505, 0, 0) . " " . mysql_result($q505, 0, 1); if ($_REQUEST['subakcija'] == "potvrda" && check_csrf_token()) { $q510 = myquery("select p.id FROM projekat as p, student_projekat as sp WHERE p.id=sp.projekat AND sp.student={$student} AND p.predmet={$predmet} AND p.akademska_godina={$ag}"); if (mysql_num_rows($q510) > 0) { $student_projekat = mysql_result($q510, 0, 0); if ($projekat != $student_projekat) { niceerror("Student uopšte nije prijavljen na projekat {$naziv_projekta}."); } else { $q520 = myquery("DELETE FROM student_projekat WHERE student={$student} AND projekat={$student_projekat}"); print "Student {$imeprezime} uspješno odjavljen sa projekta {$naziv_projekta}"; zamgerlog("student u{$student} odjavljen sa projekta {$projekat} (pp{$predmet})", 2); zamgerlog2("student odjavljen sa projekta", $student, $projekat); nicemessage('<a href="' . $linkPrefix . '">Povratak.</a>'); } } else { //Greska - student nije nigdje upisan niceerror("Student nije prijavljen niti na jedan projekat."); } return; } ?> <?php echo genform("POST"); ?> <input type="hidden" name="subakcija" value="potvrda"> Da li ste sigurni da želite ispisati studenta <?php echo $imeprezime; ?> sa projekta <?php echo $naziv_projekta; ?> ?<br> <input type="submit" value="Potvrda ispisa"> <input type="button" onclick="location.replace('<?php echo $linkPrefix; ?> ');" value="Odustani"> </form> <?php } }