function _opigno_tincan_api_set_result in Opigno TinCan API 7
16 calls to _opigno_tincan_api_set_result()
- opigno_tincan_api_cloze_statements_tincan_question_statement_cloze_alter in modules/
opigno_tincan_api_cloze_statements/ opigno_tincan_api_cloze_statements.module - opigno_tincan_api_in_house_training_statements_opigno_in_house_training_finished in modules/
opigno_tincan_api_in_house_training_statements/ opigno_tincan_api_in_house_training_statements.module - Implements hook_opigno_in_house_training_finished().
- opigno_tincan_api_opigno_scorm_statements_tincan_question_statement_opigno_scorm_quiz_question_alter in modules/
opigno_tincan_api_opigno_scorm_statements/ opigno_tincan_api_opigno_scorm_statements.module - opigno_tincan_api_opigno_statements_opigno_course_passed in modules/
opigno_tincan_api_opigno_statements/ opigno_tincan_api_opigno_statements.module - opigno_tincan_api_quizfileupload_statements_tincan_question_statement_quizfileupload_alter in modules/
opigno_tincan_api_quizfileupload_statements/ opigno_tincan_api_quizfileupload_statements.module
File
- includes/
opigno_tincan_api.statements_func.inc, line 155
Code
function _opigno_tincan_api_set_result(TinCan\Statement &$statement, $user_score = null, $score_max = null, $is_success = null, $response = null, $duration_s = null) {
if (!_opigno_tincan_api_tincanphp_is_installed()) {
return false;
}
$result = new TinCan\Result();
if ($user_score !== null) {
_opigno_tincan_api_set_score($result, $user_score, $score_max);
}
if ($is_success !== null) {
$result
->setSuccess($is_success);
}
$result
->setCompletion(true);
if ($response !== null) {
$result
->setResponse($response);
}
if ($duration_s !== null) {
$time_now = new DateTime();
$time_more = new DateTime();
$time_more
->add(new DateInterval('PT' . (int) $duration_s . 'S'));
$time = $time_now
->diff($time_more);
// Remove all the 0 in the formatted duration
$duration_string = $time
->format('P%yY%mM%dDT%hH%iM%sS');
$duration_string = preg_replace('/(\\D)0{1}\\D/i', '$1', $duration_string);
$duration_string == 'PT' ? $duration_string = 'PT0S' : null;
$result
->setDuration($duration_string);
}
$statement
->setResult($result);
}