Ejemplo n.º 1
0
function GetCourseAbbreviations()
{
    $dbh = GetCachedDBConnection();
    $abbrevs = $dbh->SelectAll("SELECT a.abbrev FROM or_abbrev_map a, \n    or_dept d WHERE d.campusid = 1 and d.deptid=a.deptid ORDER BY a.abbrev");
    $retAbbrevs = array();
    foreach ($abbrevs as $a) {
        array_push($retAbbrevs, $a['abbrev']);
    }
    return $retAbbrevs;
}
Ejemplo n.º 2
0
function SearchByKeyword($criteria, $sortOrder)
{
    assert(isValidSortOrder($sortOrder));
    $terms = $criteria['terms'];
    $dbHandle = GetCachedDBConnection();
    $keywords = $dbHandle->Quote($terms);
    if ($sortOrder == "date") {
        $profids = $dbHandle->SelectAll("SELECT DISTINCT c.profid, \n       round(max(MATCH(ct.comment) AGAINST ('{$keywords}')), \n       " . NLS_ROUND_DIGITS . ") as score, max(o.created) as lastrating \n       FROM or_comment c, or_comment_text ct, or_professor p, or_objects o \n       WHERE c.commentid = ct.commentid AND MATCH(ct.comment) AGAINST \n       ('{$keywords}') > 0 AND c.profid = p.profid AND p.status NOT IN \n       " . PROFESSOR_INVISIBLE_STATES . " AND c.status \n       NOT IN " . COMMENT_INVISIBLE_STATES . " AND c.objectid = o.objectid \n       GROUP BY c.profid ORDER BY lastrating DESC, p.lname, p.fname");
    } else {
        if ($sortOrder == "rating") {
            $profids = $dbHandle->SelectAll("SELECT DISTINCT c.profid, \n       round(max(MATCH(ct.comment) AGAINST ('{$keywords}')), \n       " . NLS_ROUND_DIGITS . ") as score FROM or_comment c, \n       or_comment_text ct, or_professor p WHERE c.commentid = ct.commentid \n       AND MATCH(ct.comment) AGAINST ('{$keywords}') > 0 AND c.profid = \n       p.profid AND p.status NOT IN " . PROFESSOR_INVISIBLE_STATES . " \n       AND c.status NOT IN " . COMMENT_INVISIBLE_STATES . " GROUP BY \n       c.profid ORDER BY score DESC, p.lname, p.fname");
        } else {
            $profids = $dbHandle->SelectAll("SELECT DISTINCT c.profid, \n       round(max(MATCH(ct.comment) AGAINST ('{$keywords}')), \n       " . NLS_ROUND_DIGITS . ") as score FROM or_comment c, or_comment_text \n       ct, or_professor p WHERE c.commentid = ct.commentid and \n       MATCH(ct.comment) AGAINST ('{$keywords}') > 0 and c.profid = p.profid \n       AND p.status NOT IN " . PROFESSOR_INVISIBLE_STATES . " AND c.status \n       NOT IN " . COMMENT_INVISIBLE_STATES . " GROUP BY c.profid ORDER BY \n       p.lname, p.fname");
        }
    }
    return $profids;
}
Ejemplo n.º 3
0
function RecordEvaluation($input)
{
    assert(EVAL_WELLFORMED == VerifyEvaluationInput($input));
    $dbh = GetCachedDBConnection();
    $packedIP = PackIPAddress(getenv('REMOTE_ADDR'));
    $pid = $input['profid'];
    $blackout = EVALS_DUPLICATE_BLACKOUT * SECONDS_PER_MINUTE;
    $oldPosts = $dbh->SelectAll("SELECT t.eventid FROM or_transactions t,\n    or_comment c WHERE c.profid='{$pid}' AND t.ipaddr='{$packedIP}' AND\n    UNIX_TIMESTAMP(t.endtime) > (UNIX_TIMESTAMP(NOW()) - {$blackout}) AND\n    c.objectid=t.objectid");
    if (count($oldPosts) != 0) {
        return RECORDEVAL_BLOCKED_DUPBLACKOUT;
    }
    $transactionID = $dbh->BeginTransaction('evaluation-new');
    assert(!is_null($transactionID));
    $oid = $dbh->GetObjectID();
    $rows = $dbh->DoOp("INSERT INTO or_comment (profid, courseid, \n    studentclass, coursetype, grade, ques1, ques2, ques3, objectid) \n    VALUES ('" . $input['profid'] . "', '" . $input['courseid'] . "', '" . $input['studentclass'] . "', '" . $input['studentcoursetype'] . "', '" . $input['grade'] . "', '" . $input['ques1'] . "', '" . $input['ques2'] . "', '" . $input['ques3'] . "', '{$oid}')");
    assert($rows == 1);
    $commentid = $dbh->LastInsertID();
    $quotedComment = $dbh->Quote($input['comments']);
    $rows = $dbh->DoOp("INSERT INTO or_comment_text (commentid, comment)\n    VALUES ({$commentid}, '{$quotedComment}')");
    assert($rows == 1);
    $rows = $dbh->DoOp("UPDATE or_comment SET status='pending' WHERE \n    objectid={$oid}");
    assert($rows == 1);
    $transactionStatus = $dbh->EndTransaction();
    assert($transactionStatus);
    return RECORDEVAL_SUCCESS;
}