/** * Create Main Menu */ protected function createMainMenu() { if (Session::isAdmin()) { $link0 = array('title' => 'Admin Dashboard', 'url' => 'admin/'); $link1 = array('title' => 'Add New Articles', 'url' => 'admin/pages/addarticle.php'); $link2 = array('title' => 'Article Manager', 'url' => 'admin/pages/articlemanager.php'); $link3 = array('title' => 'User Manager', 'url' => 'admin/pages/usermanager.php'); $link4 = array('title' => 'Add New Challenge', 'url' => 'admin/pages/addchallenge.php'); $link5 = array('title' => 'Challenge Manager', 'url' => 'admin/pages/challengemanager.php'); $link6 = array('title' => 'Logout', 'url' => 'pages/logout.php'); $menu = array($link0, $link1, $link2, $link3, $link4, $link5, $link6); } elseif (Session::isTeacher()) { $link1 = array('title' => 'Admin Dashboard', 'url' => 'admin'); $link2 = array('title' => 'Article Manager', 'url' => 'admin/pages/articlemanager.php'); $link3 = array('title' => 'User Manager', 'url' => 'admin/pages/usermanager.php'); $link4 = array('title' => 'Create Class', 'url' => 'admin/pages/manageclass.php'); $link5 = array('title' => 'Add Challenge', 'url' => 'admin/pages/addchallenge.php'); $link6 = array('title' => 'Monitor Students', 'url' => 'pages/progress.php'); $link7 = array('title' => 'Logout', 'url' => 'pages/logout.php'); $menu = array($link1, $link2, $link3, $link4, $link5, $link6, $link7); } else { $link1 = array('title' => 'Progress Report', 'url' => 'pages/progress.php'); $link2 = array('title' => 'Ranking', 'url' => 'pages/ranking.php'); $link3 = array('title' => 'Logout', 'url' => 'pages/logout.php'); $menu = array($link1, $link2, $link3); } return $menu; }
public function go() { $this->setViewTemplate("rankings.tpl"); if ($this->isLoggedIn()) { $username = $this->getLoggedInUser(); if (Session::isAdmin() || Session::isTeacher()) { $classes = Classes::getAllClasses(); } else { $user = User::findByUserName($username); $classes = ClassMemberships::getMembershipsOfUserObjects($user->id); } $this->addToView('classes', $classes); } if (!isset($_GET["class"]) || $_GET["class"] == "") { $rankings = ChallengeAttempts::getUniversalRankings(); } else { $class_id = $_GET["class"]; $class = Classes::getClass($class_id); if (!$class) { $this->addErrorMessage("Not a valid class"); return $this->generateView(); } else { $rankings = ChallengeAttempts::getClasswiseRankings($class_id); } } $final = array(); $counter = 1; $rank = 1; $rankcount = 1; $prevcount = null; foreach ($rankings as $ranking) { if ($counter != 1 && $prevcount == $ranking['count']) { $rank = $rankcount; $rankcount++; } if ($counter != 1 && $prevcount != $ranking['count']) { $rankcount++; $rank = $rankcount; } $prevcount = $ranking['count']; $counter++; $temp = array('user_id' => $ranking['user_id'], 'time' => $ranking['time'], 'count' => $ranking['count'], 'username' => $ranking['username'], 'rank' => $rank); array_push($final, $temp); } $this->addToView('rankings', $final); return $this->generateView(); }
public function go() { $username = $this->getLoggedInUser(); $user = User::findByUserName($username); if (!$user) { return; } if (Session::isAdmin() || Session::isTeacher()) { $challenges = Challenge::getChallengesFrontend(); } else { $challenges = Challenge::getChallengesAssigned($user->id); } $menu = array(); foreach ($challenges as $challenge) { $link = array('id' => $challenge->id, 'title' => $challenge->title, 'url' => 'challenges/' . $challenge->pkg_name . '/index.php'); array_push($menu, $link); } return $menu; }
public function update($status) { if (!Session::isAdmin() && !Session::isTeacher()) { $username = Session::getLoggedInUser(); $url = $_SERVER['REQUEST_URI']; $url_components = explode("/", $url); $count_url_components = count($url_components); for ($i = 0; $url_components[$i] != "challenges"; $i++) { } $pkg_name = $url_components[$i + 1]; $user = User::findByUserName($username); $challenge = Challenge::getChallengeByPkgName($pkg_name); $user_id = $user->id; $challenge_id = $challenge[0]->id; if (!ChallengeAttempts::isChallengeCleared($user_id, $challenge_id)) { ChallengeAttempts::addChallengeAttempt($user_id, $challenge_id, $status); } } }
/** * Returns whether or not a logged-in Hackademic user is a teacher * * @return bool whether or not logged-in user is an admin */ protected function isTeacher() { return Session::isTeacher(); }