Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
 /**
  * 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;
 }