Exemplo n.º 1
0
function recordtestdata($limit = false)
{
    global $isreview, $questions, $bestquestions, $bestscores, $bestattempts, $bestseeds, $bestlastanswers, $scores, $attempts, $seeds, $lastanswers, $testid, $testsettings, $sessiondata, $reattempting, $timesontask, $lti_sourcedid, $qi, $noraw, $rawscores, $bestrawscores, $firstrawscores;
    if ($noraw) {
        $bestscorelist = implode(',', $bestscores);
    } else {
        $bestscorelist = implode(',', $bestscores) . ';' . implode(',', $bestrawscores) . ';' . implode(',', $firstrawscores);
    }
    $bestattemptslist = implode(',', $bestattempts);
    $bestseedslist = implode(',', $bestseeds);
    $bestlastanswers = str_replace('~', '', $bestlastanswers);
    $bestlalist = implode('~', $bestlastanswers);
    $bestlalist = addslashes(stripslashes($bestlalist));
    if ($noraw) {
        $scorelist = implode(',', $scores);
    } else {
        $scorelist = implode(',', $scores) . ';' . implode(',', $rawscores);
    }
    $attemptslist = implode(',', $attempts);
    $seedslist = implode(',', $seeds);
    $lastanswers = str_replace('~', '', $lastanswers);
    $lalist = implode('~', $lastanswers);
    $lalist = addslashes(stripslashes($lalist));
    $timeslist = implode(',', $timesontask);
    $reattemptinglist = implode(',', $reattempting);
    $questionlist = implode(',', $questions);
    $bestquestionlist = implode(',', $bestquestions);
    if ($questionlist != $bestquestionlist) {
        $questionlist .= ';' . $bestquestionlist;
    }
    $now = time();
    if ($isreview) {
        if ($limit) {
            $query = "UPDATE imas_assessment_sessions SET reviewlastanswers='{$lalist}' ";
        } else {
            $query = "UPDATE imas_assessment_sessions SET reviewscores='{$scorelist}',reviewattempts='{$attemptslist}',reviewseeds='{$seedslist}',reviewlastanswers='{$lalist}',";
            $query .= "reviewreattempting='{$reattemptinglist}' ";
        }
    } else {
        if ($limit) {
            $query = "UPDATE imas_assessment_sessions SET lastanswers='{$lalist}',timeontask='{$timeslist}' ";
        } else {
            $query = "UPDATE imas_assessment_sessions SET scores='{$scorelist}',attempts='{$attemptslist}',seeds='{$seedslist}',lastanswers='{$lalist}',";
            $query .= "bestseeds='{$bestseedslist}',bestattempts='{$bestattemptslist}',bestscores='{$bestscorelist}',bestlastanswers='{$bestlalist}',";
            $query .= "endtime={$now},reattempting='{$reattemptinglist}',timeontask='{$timeslist}',questions='{$questionlist}' ";
        }
        if (isset($lti_sourcedid) && strlen($lti_sourcedid) > 0 && $sessiondata['ltiitemtype'] == 0) {
            //update lti record.  We only do this for single assessment placements
            require_once "../includes/ltioutcomes.php";
            $total = 0;
            for ($i = 0; $i < count($bestscores); $i++) {
                if (getpts($bestscores[$i]) > 0) {
                    $total += getpts($bestscores[$i]);
                }
            }
            $totpossible = totalpointspossible($qi);
            $grade = round($total / $totpossible, 4);
            $res = updateLTIgrade('update', $lti_sourcedid, $testsettings['id'], $grade);
        }
    }
    if ($testsettings['isgroup'] > 0 && $sessiondata['groupid'] > 0 && !$isreview) {
        $query .= "WHERE agroupid='{$sessiondata['groupid']}' AND assessmentid='{$testsettings['id']}'";
    } else {
        $query .= "WHERE id='{$testid}' LIMIT 1";
    }
    mysql_query($query) or die("Query failed : {$query} " . mysql_error());
}
Exemplo n.º 2
0
 $query .= "JOIN imas_assessments AS ia ON ias.assessmentid=ia.id WHERE ias.id='{$_GET['asid']}' AND ia.courseid='{$cid}'";
 $result = mysql_query($query) or die("Query failed : {$query} " . mysql_error());
 if (mysql_num_rows($result) > 0) {
     //check that is the right cid
     //$whereqry = getasidquery($_GET['asid']);
     $qp = getasidquery($_GET['asid']);
     //deleteasidfilesbyquery(array($qp[0]=>$qp[1]),1);
     deleteasidfilesbyquery2($qp[0], $qp[1], $qp[2], 1);
     $whereqry = " WHERE {$qp[0]}='{$qp[1]}' AND assessmentid='{$qp[2]}'";
     $query = "SELECT seeds,lti_sourcedid FROM imas_assessment_sessions {$whereqry}";
     $result = mysql_query($query) or die("Query failed : " . mysql_error());
     $seeds = explode(',', mysql_result($result, 0, 0));
     $ltisourcedid = mysql_result($result, 0, 1);
     if (strlen($ltisourcedid) > 1) {
         require_once "../includes/ltioutcomes.php";
         updateLTIgrade('update', $ltisourcedid, $aid, 0);
     }
     $scores = array_fill(0, count($seeds), -1);
     $attempts = array_fill(0, count($seeds), 0);
     $lastanswers = array_fill(0, count($seeds), '');
     $scorelist = implode(",", $scores);
     $attemptslist = implode(",", $attempts);
     $lalist = implode("~", $lastanswers);
     $bestscorelist = implode(',', $scores);
     $bestattemptslist = implode(',', $attempts);
     $bestseedslist = implode(',', $seeds);
     $bestlalist = implode('~', $lastanswers);
     $query = "UPDATE imas_assessment_sessions SET scores='{$scorelist};{$scorelist}',attempts='{$attemptslist}',lastanswers='{$lalist}',reattempting='',";
     $query .= "bestscores='{$bestscorelist};{$bestscorelist};{$bestscorelist}',bestattempts='{$bestattemptslist}',bestseeds='{$bestseedslist}',bestlastanswers='{$bestlalist}' ";
     $query .= $whereqry;
     //"WHERE id='{$_GET['asid']}'";
Exemplo n.º 3
0
function calcandupdateLTIgrade($sourcedid, $aid, $scores)
{
    global $aidtotalpossible;
    if (!isset($aidtotalpossible[$aid])) {
        $query = "SELECT itemorder,defpoints FROM imas_assessments WHERE id='{$aid}'";
        $res = mysql_query($query) or die("Query failed : {$query}" . mysql_error());
        $aitems = explode(',', mysql_result($res, 0, 0));
        $defpoints = mysql_result($res, 0, 1);
        foreach ($aitems as $k => $v) {
            if (strpos($v, '~') !== FALSE) {
                $sub = explode('~', $v);
                if (strpos($sub[0], '|') === false) {
                    //backwards compat
                    $aitems[$k] = $sub[0];
                    $aitemcnt[$k] = 1;
                } else {
                    $grpparts = explode('|', $sub[0]);
                    $aitems[$k] = $sub[1];
                    $aitemcnt[$k] = $grpparts[0];
                }
            } else {
                $aitemcnt[$k] = 1;
            }
        }
        $query = "SELECT points,id FROM imas_questions WHERE assessmentid='{$aid}'";
        $result2 = mysql_query($query) or die("Query failed : {$query}: " . mysql_error());
        $totalpossible = 0;
        while ($r = mysql_fetch_row($result2)) {
            if (($k = array_search($r[1], $aitems)) !== false) {
                //only use first item from grouped questions for total pts
                if ($r[0] == 9999) {
                    $totalpossible += $aitemcnt[$k] * $defpoints;
                    //use defpoints
                } else {
                    $totalpossible += $aitemcnt[$k] * $r[0];
                    //use points from question
                }
            }
        }
        $aidtotalpossible[$aid] = $totalpossible;
    }
    $total = 0;
    for ($i = 0; $i < count($scores); $i++) {
        if (getpts($scores[$i]) > 0) {
            $total += getpts($scores[$i]);
        }
    }
    $grade = number_format($total / $aidtotalpossible[$aid], 4);
    return updateLTIgrade('update', $sourcedid, $aid, $grade);
}