*/
function get_scorm_default (&$userdata, $scorm, $scoid, $attempt, $mode) {
global $USER;
-
- $userdata->student_id = $USER->username;
+ $aiccuserid = get_config('scorm', 'aiccuserid');
+ if (!empty($aiccuserid)) {
+ $userdata->student_id = $USER->id;
+ } else {
+ $userdata->student_id = $USER->username;
+ }
$userdata->student_name = $USER->lastname .', '. $USER->firstname;
if ($usertrack = scorm_get_tracks($scoid, $USER->id, $attempt)) {
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
+ if ($oldversion < 2015031800) {
+
+ // Check to see if this site has any AICC packages - if so set the aiccuserid to pass the username
+ // so that the data remains consistent with existing packages.
+ $alreadyset = $DB->record_exists('config_plugins', array('plugin' => 'scorm', 'name' => 'aiccuserid'));
+ if (!$alreadyset) {
+ $hasaicc = $DB->record_exists('scorm', array('version' => 'AICC'));
+ if ($hasaicc) {
+ set_config('aiccuserid', 0, 'scorm');
+ } else {
+ // We set the config value to hide this from upgrades as most users will not know what AICC is anyway.
+ set_config('aiccuserid', 1, 'scorm');
+ }
+ }
+ // Scorm savepoint reached.
+ upgrade_mod_savepoint(true, 2015031800, 'scorm');
+ }
+
return true;
}
$string['aicchacptimeout_desc'] = 'Length of time in minutes that an external AICC HACP session can remain open';
$string['aicchacpkeepsessiondata'] = 'AICC HACP session data';
$string['aicchacpkeepsessiondata_desc'] = 'Length of time in days to keep the external AICC HACP session data (a high setting will fill up the table with old data but may be useful when debugging)';
+$string['aiccuserid'] = 'AICC pass numeric user id';
+$string['aiccuserid_desc'] = 'The AICC standard for usernames is very restrictive compared with Moodle so we pass the user->id instead. If disabled this passes the moodle username to the AICC package.
+The AICC standard allows for alpha-numeric characters with the two additional characters dash(-) and the underscore(_). Periods, spaces and the @ symbol are not permitted.';
$string['activation'] = 'Activation';
$string['activityloading'] = 'You will be automatically redirected to the activity in';
$string['activityoverview'] = 'You have SCORM packages that need attention';
get_string('aicchacpkeepsessiondata', 'scorm'), get_string('aicchacpkeepsessiondata_desc', 'scorm'),
1, PARAM_INT));
+ $settings->add(new admin_setting_configcheckbox('scorm/aiccuserid', get_string('aiccuserid', 'scorm'),
+ get_string('aiccuserid_desc', 'scorm'), 1));
+
$settings->add(new admin_setting_configcheckbox('scorm/forcejavascript', get_string('forcejavascript', 'scorm'),
get_string('forcejavascript_desc', 'scorm'), 1));
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2014111000; // The current module version (Date: YYYYMMDDXX).
+$plugin->version = 2015031800; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2014110400; // Requires this Moodle version.
$plugin->component = 'mod_scorm'; // Full name of the plugin (used for diagnostics).
$plugin->cron = 300;