Forum Discussion
Need Help - Using Variables to Select Slides from a "Bank" Using Multiple Criteria Checks
Good morning!
I'm starting to work (for the first time) on an historically challenging project at my company. My boss wants me to solve our past issues, so I'm reaching out to the experts from the get-go.
Every year we distribute a training that highlights all of the significant changes to our policy and procedure documentation. It's like a shortcut "table of contents" so they know what has been updated without having to read through ALL of the policies and procedures and hope they recognize the change.
In the past, learners logged in and chose a "business area" that relates to their job role (there are 12). Sometimes they need to select more than one. I like to think of these "business areas" like metatags on the sea of documentation we are working with. For example, a procedure might related to only one of these "business areas" -- or it could related to five of them.
Bottom line is that I would love for a learner to click all of the business areas that related to their job role, and then go on a customized slide journey of all the relevant documentation. Keep in mind, some of these "business areas" might over overlap in the documentation. There is also a "view all" option. There are also links to policy and procedure docs that need to be embedded.
I am new to variables and more than a little intimidated. I can see it working in my head, but I don't know where to start.
Any and all help, advice, etc. would be GREATLY appreciated. I am just starting the project and trying to storyboard it out. Thank you!
- JudyNolletSuper Hero
About 4 years ago, I did a post about users following different-yet-sometimes-overlapping paths through the content. Unfortunately, posts >3 years old didn't get transferred to the new community. Yes, it involves using variables to track what the user needs to see. Those are used in conditions that control where the NEXT button takes them. I'll add a link as soon as I re-create the post and demo file.
In the meantime, it will definitely help if you storyboard the slides first. For example, determine the linear progression of slides to show all of the changes from the beginning of the policy to the end of the policy. Then determine which slides are needed for which roles. That will be invaluable when you actually start to program.
Also, you might want to get more familiar with variables and conditions. It’s worth the effort, because they provide the real power in Storyline. Here’s more information:
- This post provides an overview of variables. It also links to numerous resources. The Value of Variables | Articulate - Community
- The User Guide articles about triggers include some about conditions. Storyline 360: Working with Triggers | Articulate - Community
- TalGribbins-7eeCommunity Member
Thank you so much! I'm just getting started on storyboarding.
- JudyNolletSuper Hero
In a separate reply to this question, I did link to a post with a file that demonstrates how to do what you want. You might want to take a look at that; it may influence how you prep your storyboard.
- DavidPrice-D1Community Member
So this might not be technically possible to do in Storyline, unless someone with better knowledge of JS wants to jump in. What you're basically looking to do is create a custom index of slides, on the fly, based on user selection. From what I know of SL and the way the built in triggers work, it's simply not possible (to my knowledge).
My suggestion was going to be to use Javascript to do the job for you, however after a quick Google search I don't think this is possible from within SL as the navigation mechanics aren't accessible.We have developed something similar though to act as a language picker for one of our clients to combat the problem of selecting different SCORM files from a single page. Basically we built a HTML page with a dropdown on it which when submitted loads up a specific SCORM file relating to the language the learner selected. This HTML file along with the individual language SCORM files (about 12 of them) are all then wrapped inside another SCORM file so that it can be loaded onto an LMS. Technically its not the same as what you are doing but the principle of how it works could be applied to your situation. However, you will need a web developer who is familiar with SCORM that can build it for you.
The only way I can think of on how to achieve this in SL itself is to put all your content on layers, or at least have triggers on layers to assist with navigation. You can then use variables to dynamically display buttons. This could be achieved I suppose all on the base layer and using lightbox windows to display other slides/scenes. The problem you have though is the placement of the buttons. It's not possible to dynamically move buttons on the screen based on variables/user selection, so what you would end up with it gaps in your layout. For example you have 6 buttons in a row and you only want to show buttons 1 and 6. You'd have a massive gap in the middle.
There is a way around this and have multiple buttons in each position but you would potentially end up with 144 buttons and triggers (probably more than 144) to go with them. You'd probably end up a floppy mess by the time you got to the end of it, and then if something breaks....well I wouldn't want to be in your shoes. If you can find a way around the design issue then this method could potentially work.
You'd have 12 variables, 1 for each area. They could be True/False variables, or if you want they could be numeric, but T/F will probably do the job. When the user selects a job area it switches the associated variable to True. This would then activate the button for that corresponding area which you could then use to display layers or slides via a lightbox (or even jump to the slides itself).
There is probably a lot more to think about on this one as to how you deal with overlaps, etc but hopefully this might give you a starting point. Give me a shout if you want to chat over anything.
- JudyNolletSuper Hero
As promised in my earlier reply, here's a link to my post about branching: TIP: Let the user choose their path | Articulate - Community
My original demo file only showed how to branch when someone selects just 1 option. I expanded it to also show how to branch when someone can select 1 or more options.
As I said above, it's important to plan the overall sequence of slides and to storyboard the potential paths before you start programming. The more options there are, the more complicated the triggers get.
Good luck!
- Nathan_HilliardCommunity Member
There is a way to do this with JavaScript. From JS, you cam jump directly to any slide, with the slide ID. You need to know the slide IDs however. To get these, you can either
- Manually record them and store them in a text array
- Or, you can setup a special layer on the master slide that iterates through all of your slides and builds the list dynamically.
Manual is tedious but fast to execute in the published project. It could be prone to unexpected slide ID changes, possibly due to a Storyline update or structural changes to your project.
Automatic is easier and more robust, but slower. Depending upon the number of slides, it could take a few to several seconds upon module start. You could also limit it to only the slides you need to generate a dynamic list for.
Once you have the list of slide IDs, you can use some logic to build your custom list of slides based upon the learner's selections. Then you can jump to each of the slides by ID as needed.
I can put together a basic example if you are interested. It may require more work than you are interested in doing however.
- WaltHamiltonSuper Hero
Here is a pretty simple method. It only has 4 paths, but some of them overlap at different points, and it would be pretty easy to combine them. It doesn't have an option to view all, but that, too, would be pretty simple to add. It may at least give you some ideas as you start storyboarding.
Sample 2 may be more like what you are trying to do. For each new slide, simply go to the Navigation layer and click which path it should show up for.
I believe it can be done with navigation triggers, and without JS.
The original version will probably change from slide to slide faster, but designing the triggers next year may take forever. With Version 2, all you have to do is check which path you want a slide to show up on.