/** * Load link information for a different link than current * * Make sure not to cross Context silos. */ public static function loadLinkInfo($link_id) { global $CFG, $PDOX, $CONTEXT; $cacheloc = 'lti_link'; $row = Cache::check($cacheloc, $link_id); if ($row != false) { return $row; } $stmt = $PDOX->queryDie("SELECT title FROM {$CFG->dbprefix}lti_link\n WHERE link_id = :LID AND context_id = :CID", array(":LID" => $link_id, ":CID" => $CONTEXT->id)); $row = $stmt->fetch(\PDO::FETCH_ASSOC); Cache::set($cacheloc, $link_id, $row); return $row; }
function loadLinkInfo($link_id) { global $CFG, $PDOX; $LTI = LTIX::requireData(LTIX::CONTEXT); $cacheloc = 'lti_link'; $row = Cache::check($cacheloc, $link_id); if ($row != false) { return $row; } $stmt = $PDOX->queryDie("SELECT title FROM {$CFG->dbprefix}lti_link\n WHERE link_id = :LID AND context_id = :CID", array(":LID" => $link_id, ":CID" => $LTI['context_id'])); $row = $stmt->fetch(PDO::FETCH_ASSOC); Cache::set($cacheloc, $link_id, $row); return $row; }
function loadMyGradeCount($LTI, $assn_id) { global $CFG, $PDOX; $cacheloc = 'peer_grade'; $cachekey = $assn_id + "::" + $LTI['user_id']; $grade_count = Cache::check($cacheloc, $cachekey); if ($grade_count != false) { return $grade_count; } $stmt = $PDOX->queryDie("SELECT COUNT(grade_id) AS grade_count\n FROM {$CFG->dbprefix}peer_submit AS S\n JOIN {$CFG->dbprefix}peer_grade AS G\n ON S.submit_id = G.submit_id\n WHERE S.assn_id = :AID AND G.user_id = :UID", array(':AID' => $assn_id, ':UID' => $LTI['user_id'])); $row = $stmt->fetch(PDO::FETCH_ASSOC); if ($row !== false) { $grade_count = $row['grade_count'] + 0; } Cache::set($cacheloc, $cachekey, $grade_count); return $grade_count; }
/** * Load a user's info from the user_id * * We make sure that the user is a member of the current * context so as not to slide across silos. */ public static function loadUserInfoBypass($user_id) { global $CFG, $PDOX, $CONTEXT; $cacheloc = 'lti_user'; $row = Cache::check($cacheloc, $user_id); if ($row != false) { return $row; } $stmt = $PDOX->queryDie("SELECT displayname, email, user_key FROM {$CFG->dbprefix}lti_user AS U\n JOIN {$CFG->dbprefix}lti_membership AS M\n ON U.user_id = M.user_id AND M.context_id = :CID\n WHERE U.user_id = :UID", array(":UID" => $user_id, ":CID" => $CONTEXT->id)); $row = $stmt->fetch(\PDO::FETCH_ASSOC); if (strlen($row['displayname']) < 1 && strlen($row['user_key']) > 0) { $row['displayname'] = 'user_key:' . substr($row['user_key'], 0, 25); } Cache::set($cacheloc, $user_id, $row); return $row; }