SL2 & SL360 "Restricted" Menu Navigation and Next Button - Solution / Workaround
Nov 13, 2014
By
Bobbi Bailey
Many developers are having an issue with the new "restricted" menu navigation logic in SL2. I have come up with, what I think is a very quick, simple and viable solution. To re-cap the issue:
- In SL1 the Menu Navigation options include “restricted” which allows learners to view the current slide and any slide they've previously viewed, but not use the menu to jump ahead or skip over slides. This only restricts the learners' ability to click on menu items to navigate. If the slides included a Previous or Next button, users can still be click those to freely move forward and backward in the course at will. Content developers could add triggers/variables to control the previous/next buttons, as they saw fit.
- In SL2 the Menu Navigation “Restricted” logic was changed. The restricted option still allows learners to view the current slide and any slide they've previously viewed, but not use the menu to jump ahead or skip over slides. However, this now also disables the Next button and does not allow users to advance forward until the timeline ends. Triggers/variables do not work to over-ride this logic change.
Here’s what I have come up with:
- Create your .story project and set the navigation menu options to “Free”. This will ensure that the next and previous buttons are not restricted. (Don't worry, we will adjust the menu navigation itself in a bit). If needed, go ahead and create triggers/variables to control the previous/next button navigation as desired.
- Publish your .story project. Go ahead and “zip” if the course will be uploaded to an LMS.
- In the “publish successful” pop-up window, click “OPEN” to open the Storyline output directory.
- Double-click and open the story_content folder.
- Open the frame.xml file (this can be opened with Notepad)
- Find and replace the following:
<option name="flow" value="free" />
with
<option name="flow" value="restricted" /> - Save and close the frame.xml file.
- Launch and play your course. The navigation menu is now restricted, but the previous/next buttons can be used at will. (Any triggers/variables that were added to control the previous/next button navigation should work as developed.)
If uploading to an LMS, you have a couple more steps.
- In the file directory, right-click and "copy" the modified frame.xml file.
- Navigate to the story_content folder in the ZIPPED file.
- Right-click and "paste" (replace) the modified file here. You can now upload to your LMS.
This seems kind of tricky, but it is actually very easy! And once you’ve done it a couple of times, you will see that it literally only takes a few seconds to do!
Hope this helps,
Bobbi
Addendum for HTML 5 (added 10/11/2016)
If publishing to HTML 5, the frame.js file must also be changed. This can be done by following the below steps. (NOTE: These steps must be done prior to uploading to LMS, if launching through an LMS.)
- Open the frame.js file (recommend opening with Notepad)
- Find and replace the following:
|free|
with
|restricted| - Save and close the frame.js file.
192 Replies
Hi Christie, Jon's suggestion DID in fact work for me in HTML5 :)
So combining the very first suggestion of changing frame.xml and Jon's suggestion of changing frame.js, I had both flash and HTML5 output covered in restricting navigation via the Outline (without effecting the player controls) by changing the values from "free" to "restricted" in both files. It's worth noting that there are no common terms around where it says "free" in the frame.js file, so what I did was a "replace in files" in a text editor on "|free|" and changed it to "|restricted|" and that worked. Then the frame.xml change worked exactly as described in the first suggestion in this thread.
Very happy to have found this.
Great news, Eric! Thanks so much for stopping back in with an update and for sharing additional details that may help others, as well!
This just proved to be an absolute gem.
Thanks Bobbi!!!!!
Glad that this was able to assist you as well Todd :) Thanks for popping in to share.
Thank you so much. Sad that I'm still not done with this blasted course (just when you think all is well, you spend an hour trying to figure out why your bloomin' "next" buttons don't work). But hopefully after this, we'll be well on our way. You're a life saver, Bobbi. Or a hair saver at the very least. Perhaps a nail saver too.
My issues has been resolved now. Thank you so much Bobbi..Your approached helps me at right time..
Glad this thread helped you out Jazzmine and Gopinath!
I can confirm that on the HTML5 side - republishing the site with the menu set to "free"enabled the Next button triggers but a side effect was that the whole menu was now "free". Changing the frame.xml file did not seem to produce the desired effect. Once the change was made in the frame.js file the menu behaves in a restricted manner. Thanks ERIC!!
changed frame.js
"menuoptions|135|free|flow" to "menuoptions|135|restricted|flow"
Thanks Andrew. I have edited my original post and have added these additional steps for HTML5.
Thanks Bobbi, this workaround is great and pretty simple. The HTML hack works perfectly, but I ran into an issue with the HTML5 hack on the frame.js file. Maybe it's due to an update to SL2, but I can't find "menuoptions|135|free" all together. Instead I found each word separated by other code. However, there was only one "free" and when I changed it to "restricted" and tested it, that worked. Thanks again.
Hi everyone...
Where is the "file directory"? Is it before I zip the file or after?
After publishing, before you Zip it, in the "Publish Successful" dialog window that appears, click the "Open" icon. It will open the folder with the published files. Then go into the story_content folder. This is where you will find the "frame.xml" file (for flash) and the "frame.js" for html.
Michael! Fantastic! such a quick response!
Hi Bobbi, first of all, wonderful post, as I think I may have commented earlier on. One thing I want to note: I would replace the following instruction:
Find and replace the following:
menuoptions|135|free
with
menuoptions|135|restricted
with this:
Find and replace the following:
|free|
with
|restricted|
as the frame.js file does not seem to consistently put "|free|" next to any other options (i.e. "menuoptions|135").
And what exactly will this do? It'll unlock unrestrict the course, right? After the user takes it once already?
Eric, Great suggestion. Changes made to Original Post.
Hy Ryan,
This allows you to lock the menu navigation and still allow control of the next and previous buttons.
Thanks Dave,
So this won't lock the menu navigation once and the next time the user wants to access the course and navigate freely it won't allow them to, correct?
When the menu is locked, each menu item unlocks as the slide is visited. So if you have your options set to resume the course, the menu items that were previously unlocked will remain unlocked.
When resume is allowed, the student is given the option to resume or restart the course. If the student chooses restart, then the menu options will again be locked.
Ryan,
In SL2 the Menu Navigation “Restricted” logic was changed. The restricted option allows learners to view the current slide and any slide they've previously viewed, but cannot use the menu to jump or skip over slides (which is good). However, this also disables the Next button and does not allow users to advance forward until the timeline ends (which often, we don't want to require the user to be forced to wait for the timeline end). Triggers/variables do not work to over-ride this logic change.
This fix keeps the menu locked, but enables the next button (prior to timeline end).
Ryan,
Also keep in mind that we are talking about setting the menu to "Restricted". A "Restricted" menu will let learners navigate back to areas they already completed, but not forward. However, if you set the menu to "Locked", they cannot move back or forward. They must follow the course from beginning to end.
Right, however, there are triggers that "trigger" the next button from being enabled. How would I make it so if they already went through a screen with two triggers that when they go back the next button would still be enabled rather than disabled?
Sorry about this...
Hi Ryan,
There are several ways that you can do this. The way I do it, is I have a counter that tracks the last slide that the user visited. If my variable is greater than the slide number I'm currently on, then I don't disable the next button.
For my variable, I update it on every slide with the condition, if the variable is less than the my current slide number, I update the variable to match my current slide number.
Thanks Dave. Can you tell me exactly how to do that in SL2?
Sure,
here is an example with the triggers setup.
This discussion is closed. You can start a new discussion or contact Articulate Support.