if (scormcloud_hascapabilitytolaunch($scormcloud->course) && $USER->id == $reg->userid) { // Get the results from the cloud. $scormservice = scormcloud_get_service(); $regservice = $scormservice->getRegistrationService(); $resultsxml = $regservice->GetRegistrationResult($regid, 0, 'xml'); $results = simplexml_load_string($resultsxml); $score = $results->registrationreport->score; if ($score == 'unknown') { $score = 0; } $log->logDebug('Updating Moodle gradebook ' . $reg->userid . ' - ' . $scormcloud->course . ' - ' . $score); if (scormcloud_grade_item_update($reg->userid, $reg->scormcloudid, $score)) { $log->logInfo('Updated Moodle gradebook for course ' . $scormcloud->course); } else { $log->logWarn('Error updating Moodle gradebook for course ' . $scormcloud->course . '. Retrying.'); if (scormcloud_grade_item_update($reg->userid, $reg->scormcloudid, $score)) { $log->logInfo('Updated Moodle gradebook for course ' . $scormcloud->course . ' after successful retry.'); } else { $log->logError('Second attempt to update Moodle gradebook for course ' . $scormcloud->course . ' failed.'); } } $log->logDebug('Updating local scormcloud_registrations.'); $log->logDebug('registrationreport->complete = ' . $results->registrationreport->complete); $reg->completion = scormcloud_getcomp($results->registrationreport->complete); $log->logDebug('registrationreport->sucess = ' . $results->registrationreport->success); $reg->satisfaction = scormcloud_getsat($results->registrationreport->success); $reg->totaltime = (int) $results->registrationreport->totaltime; $reg->score = (int) $results->registrationreport->score; if ($result = $DB->update_record('scormcloud_registrations', $reg)) { $log->logInfo('Updated scormcloud_registration.'); } else {
if ($regid != null) { $log->logInfo('rollupregistration.php called : regid = ' . $regid); if ($reg = $DB->get_record("scormcloud_registrations", array("regid" => $regid))) { $log->logInfo('Found scormcloud_registration ' . $regid); if ($scormcloud = $DB->get_record("scormcloud", array("id" => $reg->scormcloudid))) { if (!scormcloud_hascapabilitytolaunch($scormcloud->course)) { error("You do not have permission to launch this course."); } $log->logInfo('Found scormcloud id ' . $reg->scormcloudid); // Get the results from the cloud. $scormservice = scormcloud_get_service(); $regservice = $scormservice->getRegistrationService(); $resultsxml = $regservice->GetRegistrationResult($regid, 0, 'xml'); $results = simplexml_load_string($resultsxml); $log->logInfo('updating Moodle gradebook ' . $reg->userid . ' - ' . $scormcloud->course . ' - ' . $results->registrationreport->score); scormcloud_grade_item_update($reg->userid, $reg->scormcloudid, $results->registrationreport->score); $log->logInfo('attempting to update local scormcloud_registrations table'); // Repopulate the $reg we got above to update it here. $reg->completion = scormcloud_getcomp($results->registrationreport->complete); $reg->satisfaction = scormcloud_getsat($results->registrationreport->success); $reg->totaltime = (int) $results->registrationreport->totaltime; $reg->score = (int) $results->registrationreport->score; if ($result = $DB->update_record('scormcloud_registrations', $reg)) { $log->logInfo('scormcloud_registrations updated'); } else { $log->logInfo('error updating scormcloud_registrations'); } } } else { $log->logInfo('ERROR : get_record("scormcloud_registrations", "regid", "' . $regid . '")'); }