Forum Discussion
Retrieve LMS User Name as Variable
I know you can have a user fill in a text box with their name and then later use that variable for personalization. What we would like to do is programmatically retrieve the user name from the LMS. Is there a way to set a variable with data from the LMS when the course is loaded instead of having the user enter their name?
Thx
- OwenHoltSuper Hero
Can you use javascript to:
1) analyze the native string pulled from the LMS to detect if it ends with a space followed by a letter
2) if it does, remove the space and the letter
and then 3) perform the split string operation as described in this thread.
Would this work to get rid of those pesky middle initials in those cases where the name is listed as Last, First + Initial ????
- SteveFlowersCommunity Member
Yep. This should work. Looks for the last space. If the last space is the next to last character, strip it off. Otherwise, keep it.
var LMSName="flowers, steve t";
if(LMSName.lastIndexOf(" ")==LMSName.length-2){
//has an initial
LMSName=LMSName.substring(0,LMSName.length-2).split(",");
nameOut=LMSName[1]+" "+LMSName[0];
}else{
//no initial
LMSName=LMSName.split(",");
nameOut=LMSName[1]+" "+LMSName[0];
}
document.write(nameOut);
- OwenHoltSuper Hero
Thank you Steve; that works perfectly.
- DietmarGrasböckCommunity Member
Thanks a lot for all of your work
One question regarding the Name variable. Once it has been grabed from LMS, it can simply be displayed in the content slide with a code like %newName%.
My question: is there a way, to show the text variable in the player menu, for example in the upper left or right area of the player?
I tried a few things, but unfortunately without success...
maybe some tips from the experts here?
best regards, Didi
- RobertDenteCommunity Member
Steve Flowers said:
Haha, that's what I get for multi-tasking. Phil's example demonstrates it the rearrangement. lmsAPI.GetStudentName() and SCORM_GetStudentName() should return identical values.
var player = GetPlayer();
var myName = lmsAPI.GetStudentName();
var array = myName.split(',');
var newName = array[1] + ' ' + array[0];
player.SetVar("newName", newName);
I have this working from the SCORM cloud and the same code does not work in the ArticulateOnline environment. Thoughts? - SteveFlowersCommunity Member
Articulate Online uses xAPI not SCORM. Getting the username through the AO implementation is a little more challenging. You can grab a username from AO using DOM in JavaScript to grab the username displayed on the screen. However, this is rarely usable in a Firstname Lastname format. Depending on what you're trying to do, you may be out of luck.
Consider engaging support with a request. Maybe there's something in AO that you can employ that I'm not aware of.
- robcondonCommunity Member
Are the only options lmsAPI.GetStudentName(); and lmsAPI.GetStudentID(); . Is it possible to pull any other fields from Moodle like if you had a custom company field set-up. Has anyone managed to pull any other data from an LMS?
- AnnetteDowningCommunity Member
You’ll need a variable to hold the username; I choose “username”. I set the default value to “Guest” just in case anything went wrong.
Then set up a trigger to run the JavaScript that will fetch the name and stuff it in our variable. I am using a Slide Trigger set to run when the timeline starts.
And now put the following code in the Javascript section of your trigger.
//grab the LMS object
var lmsAPI = parent
//ask the LMS object to get the name
var rawName = lmsAPI.GetStudentName();
//the name comes very formal "Last, First"
//we will fix that by sticking the name into an array
var nameArray = rawName.split(",")
//then we save it the other way round "First Last"
var niceName = nameArray[1] +" "+nameArray[0];
//now we grab the Articulate player
var p = GetPlayer();
//finally we set our Articulate var to our username
p.SetVar("username",niceName); - JulioOrdonezCommunity Member
Hi all,
Has anyone tried using this code to get the student's name from SumTotal LMS? I used it for one of my clients that works with SumTotal, but they are telling me they are not getting the name in the certificates.
I've tried searching info on google, but no success.
Thanks!
- BrianAllenCommunity Member
Julio, we use SumTotal LMS and the code is working great for us. PM me with your email address and I'll forward you a sample .story file we've tested.
- StephanieLongCommunity Member
Brian, I would love a copy of this as well... Any way that you can send it to me? I am at my wits end. Thanks!