function listtreemodules($mysqli, $moduleid, $block_id, $plk, $flat = false, $explode = false) { $icons = array('formative', 'progress', 'summative', 'survey', 'osce', 'offline', 'peer_review'); $configObject = Config::get_instance(); $moduleidorig = $moduleid; $moduleid = module_utils::get_idMod($moduleid, $mysqli); $sql = "SELECT DISTINCT crypt_name, paper_type, paper_title, retired, idMod FROM properties, properties_modules WHERE idMod = ? and properties.property_id = properties_modules.property_id AND deleted IS NULL AND paper_type IN ('0','1','3','4') ORDER BY paper_type, paper_title"; $results2 = $mysqli->prepare($sql); $results2->bind_param('i', $moduleid); $results2->execute(); $results2->bind_result($crypt_name, $paper_type, $paper_title, $retired, $moduleID); $results2->store_result(); if ($results2->num_rows() > 0) { $rt = $results2->num_rows(); echo '<div>'; while ($results2->fetch()) { if (strtolower($_SESSION['_lti_context']['resource_link_title']) == strtolower($paper_title)) { $checked = ' checked'; } else { $checked = ''; } $extra = "<input type=\"radio\" name=\"paperlinkID\" id=\"paperlinkID-{$plk}\" value=\"{$plk}\"{$checked}><label for=\"paperlinkID-{$plk}\">"; $extra1 = "</label>"; echo "<div style=\"padding-left:20px\">{$extra}<img src=\"../artwork/" . $icons[$paper_type] . "_16.gif\" width=\"16\" height=\"16\" alt=\"" . $paper_type . "\" /> " . $paper_title . "{$extra1}</div>\n"; $_SESSION['postlookup'][$plk] = array($crypt_name, $moduleid); $plk++; } echo '</div>'; $block_id++; } else { // no papers } $results2->close(); return array($block_id, $plk); }
/** * Test to see if a student is on a module by name. * * @param int $tmp_userID ID of the student. * @param int $idMod Module ID for the enrolement. * @param string $session The academic year. * @param object $db $mysqli database connection. * * @return bool return true if successful. * */ static function is_user_on_module_by_name($tmp_userID, $idMod, $session, $db) { if (is_array($idMod)) { foreach ($idMod as $idmods) { $modid[] = module_utils::get_idMod($idmods, $db); } } else { $modid = module_utils::get_idMod($idMod, $db); } if ($modid === false) { return false; } return self::is_user_on_module($tmp_userID, $modid, $session, $db); }
require_once './include/errors.inc'; require_once './classes/dateutils.class.php'; require_once './classes/userutils.class.php'; require_once './classes/moduleutils.class.php'; require_once './classes/smsutils.class.php'; if (isset($_GET['moduleid'])) { // Old format $module = $_GET['moduleid']; } elseif (isset($_GET['mod'])) { // New shorter format $module = $_GET['mod']; } else { display_error($string['fatalerrormsg0'], $string['fatalerrormsg1'], true); } $session = date_utils::get_current_academic_year(); $modID = module_utils::get_idMod($module, $mysqli); // Translate module code into ID $mod_details = module_utils::get_full_details_by_ID($modID, $mysqli); if ($mod_details === false) { $msg = sprintf($string['nomodule'], $module); display_error('Module ID error', $msg, false, true); } if ($mod_details['active'] == 1 and $mod_details['selfenroll'] == 1 and isset($_POST['submit'])) { if (!$userObject->has_role('Student')) { // Add role of 'Student' if current user doesn't have it. UserUtils::add_role('Student', $userObject->get_user_ID(), $mysqli); } // Insert new module enrollment UserUtils::add_student_to_module($userObject->get_user_ID(), $modID, 1, $_POST['session'], $mysqli); } ?>
require '../classes/moduleutils.class.php'; require '../classes/paperutils.class.php'; require_once '../classes/questionutils.class.php'; function stripTrainModule($module_string) { $new_modules = array(); $old_modules = explode(',', $module_string); foreach ($old_modules as $old_module) { if ($old_module != 'TRAIN') { $new_modules[] = $old_module; } } return implode(',', $new_modules); } // get the id of the TRAIN module $trainIdMod = module_utils::get_idMod('TRAIN', $mysqli); // Clear the TRAIN team $update = $mysqli->prepare("DELETE FROM modules_staff WHERE idMod = ?"); $update->bind_param('i', $trainIdMod); $update->execute(); $update->close(); // Get all the papers on the TRAIN team $result = $mysqli->prepare("SELECT properties.property_id FROM properties, properties_modules WHERE properties.property_id = properties_modules.property_id AND idMod = ?"); $result->bind_param('i', $trainIdMod); $result->execute(); $result->store_result(); $result->bind_result($paperID); while ($result->fetch()) { Paper_utils::remove_modules(array($trainIdMod => 'TRAIN'), $paperID, $mysqli); $q_result = $mysqli->prepare("SELECT question FROM papers WHERE paper=?"); $q_result->bind_param('i', $paperID);
public function getAvailableFeedback($username, $moduleID) { $allowaccess = false; $tmp_userID = $this->getUserID($username, false); $userObject = UserObject::get_instance(); if ($userObject->has_role('SysAdmin')) { $allowaccess = true; } else { if ($userObject->has_role('Staff')) { $allowaccess = true; } else { if ($userObject->has_role('Student') and $tmp_userID == $userObject->get_user_ID()) { // Students can only list their own feedabck $allowaccess = true; } } } if ($allowaccess == false) { return ''; } if ($moduleID != '') { $idMod = module_utils::get_idMod($moduleID, $this->db); if ($idMod == false) { return "Unknown Module"; } } $paper_no = 0; $old_yearID = -1; $papers = array(); if ($moduleID == '') { $sql = "SELECT \n paper_id, \n date, \n UNIX_TIMESTAMP(date) AS is_live, \n paper_type, \n paper_title, \n start_date, \n end_date, \n properties.calendar_year, \n crypt_name, \n moduleId \n FROM feedback_release \n LEFT JOIN properties ON feedback_release.paper_id = properties.property_id \n LEFT JOIN properties_modules ON properties.property_id = properties_modules.property_id \n LEFT JOIN modules_student ON modules_student.idMod = properties_modules.idMod\n LEFT JOIN modules ON modules.id = properties_modules.idMod \n WHERE \n modules_student.userID=?"; $res = $this->db->prepare($sql); $res->bind_param('i', $tmp_userID); } else { $sql = "SELECT \n paper_id, \n date, \n UNIX_TIMESTAMP(date) AS is_live, \n paper_type, \n paper_title, \n start_date, \n end_date, \n properties.calendar_year, \n crypt_name,\n moduleId \n FROM feedback_release \n LEFT JOIN properties ON feedback_release.paper_id = properties.property_id \n LEFT JOIN properties_modules ON properties.property_id = properties_modules.property_id \n LEFT JOIN modules_student ON modules_student.idMod = properties_modules.idMod \n LEFT JOIN modules ON modules.id = properties_modules.idMod \n WHERE \n modules_student.userID=? AND \n modules_student.idMod=?"; $res = $this->db->prepare($sql); $res->bind_param('ii', $tmp_userID, $idMod); } $res->execute(); $res->store_result(); $res->bind_result($paperID, $date, $is_live, $paper_type, $paper_title, $start_date, $end_date, $calendar_year, $crypt_name, $moduleID); while ($res->fetch()) { if ($is_live < time()) { // Have they sat the paper? $log = $this->db->prepare("SELECT userID FROM log_metadata WHERE userID=? AND paperID=? LIMIT 1"); $log->bind_param('ii', $tmp_userID, $paperID); $log->execute(); $log->store_result(); $log->bind_result($log_userID); if ($log->num_rows != 1) { $log->close(); continue; } else { if ($userObject->has_role('Student')) { $papers[$paper_no]['feedback_url'] = 'https://' . $_SERVER['SERVER_NAME'] . '/mapping/user_feedback.php?id=' . $crypt_name; } else { $papers[$paper_no]['feedback_url'] = 'https://' . $_SERVER['SERVER_NAME'] . '/mapping/user_feedback.php?id=' . $crypt_name . '&userID=' . $tmp_userID; } $log->close(); } } else { $papers[$paper_no]['feedback_url'] = ''; } $papers[$paper_no]['title'] = $paper_title; $papers[$paper_no]['type'] = $this->qtypes[$paper_type]; $papers[$paper_no]['start_date'] = $start_date; $papers[$paper_no]['release_date'] = $date; $papers[$paper_no]['calendar_year'] = $calendar_year; $papers[$paper_no]['moduleID'] = $moduleID; $paper_no++; } $res->close(); return $papers; }