本文整理汇总了PHP中Tsugi\Core\LTIX::getConnection方法的典型用法代码示例。如果您正苦于以下问题:PHP LTIX::getConnection方法的具体用法?PHP LTIX::getConnection怎么用?PHP LTIX::getConnection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tsugi\Core\LTIX
的用法示例。
在下文中一共展示了LTIX::getConnection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: gradeSend
/**
* Send a grade and update our local copy
*
* Call the right LTI service to send a new grade up to the server.
* update our local cached copy of the server_grade and the date
* retrieved. This routine pulls the key and secret from the LTIX
* session to avoid crossing cross tennant boundaries.
*
* @param $grade A new grade - floating point number between 0.0 and 1.0
* @param $row An optional array with the data that has the result_id, sourcedid,
* and service (url) if this is not present, the data is pulled from the LTI
* session for the current user/link combination.
* @param $debug_log An (optional) array (by reference) that returns the
* steps that were taken.
* Each entry is an array with the [0] element a message and an optional [1]
* element as some detail (i.e. like a POST body)
*
* @return mixed If this works it returns true. If not, you get
* a string with an error.
*
*/
public function gradeSend($grade, $row = false, &$debug_log = false)
{
global $CFG, $USER;
global $LastPOXGradeResponse;
$LastPOXGradeResponse = false;
$PDOX = LTIX::getConnection();
// Secret and key from session to avoid crossing tenant boundaries
$key_key = LTIX::sessionGet('key_key');
$secret = LTIX::sessionGet('secret');
if ($row !== false) {
$result_url = isset($row['result_url']) ? $row['result_url'] : false;
$sourcedid = isset($row['sourcedid']) ? $row['sourcedid'] : false;
$service = isset($row['service']) ? $row['service'] : false;
// Fall back to session if it is missing
if ($service === false) {
$service = LTIX::sessionGet('service');
}
$result_id = isset($row['result_id']) ? $row['result_id'] : false;
} else {
$result_url = LTIX::sessionGet('result_url');
$sourcedid = LTIX::sessionGet('sourcedid');
$service = LTIX::sessionGet('service');
$result_id = LTIX::sessionGet('result_id');
}
// Update result in the database and in the LTI session area and
// our local copy
$_SESSION['lti']['grade'] = $grade;
$this->grade = $grade;
// Update the local copy of the grade in the lti_result table
if ($PDOX !== false && $result_id !== false) {
$stmt = $PDOX->queryReturnError("UPDATE {$CFG->dbprefix}lti_result SET grade = :grade,\n updated_at = NOW() WHERE result_id = :RID", array(':grade' => $grade, ':RID' => $result_id));
if ($stmt->success) {
$msg = "Grade updated result_id=" . $result_id . " grade={$grade}";
} else {
$msg = "Grade NOT updated result_id=" . $result_id . " grade={$grade}";
}
error_log($msg);
if (is_array($debug_log)) {
$debug_log[] = array($msg);
}
}
if ($key_key == false || $secret === false || $sourcedid === false || $service === false || !isset($USER)) {
error_log("Result::gradeSend stored data locally");
return false;
}
// TODO: Fix this
$comment = "";
if (strlen($result_url) > 0) {
$status = LTI::sendJSONGrade($grade, $comment, $result_url, $key_key, $secret, $debug_log);
} else {
$status = LTI::sendPOXGrade($grade, $sourcedid, $service, $key_key, $secret, $debug_log);
}
if ($status === true) {
$msg = 'Grade sent ' . $grade . ' to ' . $sourcedid . ' by ' . $USER->id;
if (is_array($debug_log)) {
$debug_log[] = array($msg);
}
error_log($msg);
} else {
$msg = 'Grade failure ' . $grade . ' to ' . $sourcedid . ' by ' . $USER->id;
if (is_array($debug_log)) {
$debug_log[] = array($msg);
}
error_log($msg);
return $status;
}
return $status;
}