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; }
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; }
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; }