Forum Discussion
Adding a text box for user input in Rise360
Hi Team,
I am experiencing difficulty in Articulate Rise 360, so I need your assistance and guidance throughout the development process.
- How can I add a text box for user input in Rise360? (any readily available templates from content library you can suggest). I tried the knowledge check option, but I don't want to see a result screen, therefore it's not a good fit.
- I also attempted to incorporate a quiz made in Storyline/Quizmaker 360 by going to Interactive > "Add a Storyline 360 interaction from Review 360," but I'm unsure of where the quiz's results and information are being saved in the LMS.
- The Multimedia > Embed > Pasted URL / iFrame Code feature in MS-Forms is really useful, however the embedded item still looks like MS-Forms.
In the meantime, the two paths I have taken so far, namely:
- Adding a web form as an embedded object and using that to get the learner's input is a good way to achieve this. However, the challenge is if you do not want the form to look like MS Forms or a Google form, you would need to create and code the custom form separately.
- Using a Storyline block will work to get the input, however, the input is not sent to the LMS. Only the Storyline block completion is reported to the LMS. A possible workaround would be to send the data manually from within the Storyline course using JavaScript.
Additionally, I wanted my learners to download a PDF file of the entire Rise 360 course. We've designated a digital journal in RISE 360 with several text inputs for the learners to fill out during the live classroom discussion. Our goal was to have the participant fill out text boxes (hard coded with JavaScript, not visible in Rise 360) with their responses and then have the page saved as a PDF.
Please DO NOT suggest the below mentioned workaround solution.
You can give the learners an option to download the PDF version of the course by doing the following:
1. Once you have finished your Rise 360 course, Select Export.
2. Export the entire course as PDF.
3. Edit your course again and add a Multimedia > Attachment block.
4. Edit the Attachment block and upload the PDF file you exported in step 2.
Any advice or feedback you can offer is much welcomed.
- Tim_Community Member
I would like see a text entry added natively to Rise. I am not going to hold my breath.
In a previous course I tried using an iframe embed and made a HTML page that can store the value in local storage.
https://frumbert.github.io/public/reflective_activity.html?source=mybucket
To get different values showing up I would then send in a 'source' parameter so that each text entry could be unique.
I would then have to modify the exported Rise package in order to embed the iframe source file into the Rise package (so that it could run on an intranet without internet access). I made myself a tool for re-packing externally referenced files into Rise:
https://www.frumbert.org/risefix/index.php
In my next project that required text entries the client required that the learner enter a value before Rise would let them navigate. I hadn't been able to get that working properly with my iframe based solution. I had reversed engineered the Rise player enough to see how other interactions work to set a complete flag so that the Continue button would then become active, and emulated that in my own code. But it doesn't work on iframes, so that prevented me from implementing anything there.
I now need learners to be able to write into a text entry and then, later in the course, have these entries show up again somehow. During output of the values, I'd like it to pop up or being something printable, since Rise doesn't save the value from a Storyline file. I had wanted to see if I could hook into the SCORM player of the Rise package and store a value there somehow, but cross-frame scripting gets in the way (and even after published when the package is in the same domain, the code didn't work).
So I'm stuck with Storyline, since when a Storyline file completes, Rise will see that completion and release the Continue button.
Here is as far as I am right now, and I've attached the storyline files that are loading for reference on that side.
https://360.articulate.com/review/content/1770286b-a109-49b1-95ce-a34e61e662fc/review
This reveals a couple of bugs in Storyline:
- You don't get scrollbars on text entry forms. So if the text is long, you might not know you have to click in it, then scroll using the mouse wheel / tap-drag.
- Depending on the font, the text crops on the last line of the text entry field and you have to know to press Enter afterwards so you can see what you typed.
The other thing it reveals is that Rise will re-use the same Storyline instance if you add it multiple times. This might be an efficient programming thing, but it sure is annoying when I want to add multiple text entries. I have to publish the same Storyline file multiple times to Review 360 for each text entry I want in the course.
On the summary page, I have a loader which is looking at my local storage and concatenating each entry into the text field. This is far from ideal - mainly because of the scrollbar bug.
I tried using a TextBox in Storyline too, but it doesn't have a variable and you can't set its value at runtime. This would have been great since you can add a TextBox to a Scrolling Panel to get the scrollbars showing up. But you can't add a TextEntry field to a Scrolling Pane (or at least I couldn't get mine in one). Executing javascript on form load could pop a window (if the user allows it) or throw up a PDF like in the previous users example - I haven't got that far myself yet.
I hope some other developers/creatives can chip-in with Text Entries in Rise and offer their own examples, because I don't think Articulate are ever going to add native Text Entry support to Rise.
- YanValdes-aea53Community Member
Hi Tim, could you tell us how the export button is built? Do you have an example .SL file?
- Tim_Community Member
My approach was always to use Storyline to do the text entry and embed that into Rise as an interaction, and then the problem was always storage and retrieval. Some people tried storing to local storage (browser), others to the comments field in SCORM, others have tried to send values to a LRS but then retrieval becomes tricky. My approach was to write an external service to load/store generic data, so that it's not reliant on scorm or specific browsers, and it remains compatible with the editor, with Review, Reach 360, and LMS's. I also needed to be able to generate a PDF with all the answers which could be picked up at the end of the course, so I made a separate storyline with a download button.
This is all demonstrated here, and the source code to a storage service and storyline files are available here.
I like the approach that Mighty have taken but wonder if updates to Rise will break it, and also it might break the terms of service which explicitly prohibits modifying the runtime code. I'd tried a similar idea except using a Storyline embed to inject the code (which self-deletes), an approach of having a notepad icon appear on all pages (example, appears on the top-right), but it wasn't a great experience and ended up abandoning that method. I'd also first approached the problem by using an iframe embed pointing to https://frumbert.s3.ap-southeast-2.amazonaws.com/courses/textarea.html which used the local storage approach
- PhilFossCommunity Member
The use of Storyline makes it a bit complicated, and not ideal on mobile. But its a cool solution. I use a modal popup that the user can access throughout the course in a persisting global menu. It also uses localstorage. The user can simply download/print the single text input, the text is 'saved' for the user but it doesn't get sent to the LMS.
- StefanLindstrmCommunity Member
- PhilFossCommunity Member
I'm uisng the Fancybox script for the modal functionality, and by editing the index file you can add your own html above where the Rise 'app' loads on the page. I'll plan on putting together a learning module with the source files.
- MaggieQuallsCommunity Member
Hi Phil, are you able to explain a little further how you did this?! This might be a solution for me.
- JohnCooper-be3cCommunity Member
Hi Saikat
I can't help with the first part of your question - i.e. the quiz - But we have been working on collecting data using a Storyline block in Rise and then outputting the data to a downloadable pdf.
This demo I posted a couple of weeks ago demonstrates where we have got to:
https://rise.articulate.com/share/CxNcomo7LqqWkBOahhImYPgO8E7PEeYG
Inside the Storyline we use text input boxes to collect the input from the learner. We then use a JavaScript library 'pdf-lib' in our JavaScript code to take this input and fill out a pdf 'form'. In the demo the pdf 'form' template is included inside an attachment block.
Using this technique, you could create the form to include part of the course itself with form fields where you want the learner input to appear.
This works fine BUT... and it's a big BUT... we cannot carry variables over from one Storyline Block to another i.e. we cannot accumulate variables and store them until the end of the course. RISE doesn't have variables. so as soon as the learner exits from the Storyline block the variables are lost.
You would have to store the data somewhere to get what I suspect you are trying to achieve. We have a client who has requested we work on this - we are going to try using local storage in the browser (not ideal - but viable). If we have success I will update this post.
- JohnCooper-be3cCommunity Member
John Cooper
Hi Saikat
I can't help with the first part of your question - i.e. the quiz - But we have been working on collecting data using a Storyline block in Rise and then outputting the data to a downloadable pdf.
This demo I posted a couple of weeks ago demonstrates where we have got to:
https://rise.articulate.com/share/CxNcomo7LqqWkBOahhImYPgO8E7PEeYG
Inside the Storyline we use text input boxes to collect the input from the learner. We then use a JavaScript library 'pdf-lib' in our JavaScript code to take this input and fill out a pdf 'form'. In the demo the pdf 'form' template is included inside an attachment block.
Using this technique, you could create the form to include part of the course itself with form fields where you want the learner input to appear.
This works fine BUT... and it's a big BUT... we cannot carry variables over from one Storyline Block to another i.e. we cannot accumulate variables and store them until the end of the course. RISE doesn't have variables. so as soon as the learner exits from the Storyline block the variables are lost.
You would have to store the data somewhere to get what I suspect you are trying to achieve. We have a client who has requested we work on this - we are going to try using local storage in the browser (not ideal - but viable). If we have success I will update this post.
I said I would update this post when we had created a downloadable pdf with data collected across a RISE course from several Storyline Blocks with text entry fields using local storage in the browser (similar to Cookies).
Just to say we did this and it works fine.
- AneikaAvery-b0cCommunity Member
This is fantastic. Just went through it and it works. I wasn't able to attend your course. Did you happen to record it?
- VanessaMiller-5Community Member
Thank you so much for this, John! How did you place the Storyline project form into the Rise project? Did you embed or link to it?
- JohnCooper-be3cCommunity Member
Hi @Vanessa Miller
I hope the workshop has been useful. In answer to your question, can I assume we are talking about the pdf template form you are using to create the learner notes download? If so...
In the Storyline version of this workshop, the pdf template is copied to the 'root' directory after the Storyline has been published.
In the RISE version - which is the one you ask about - the pdf template is included as a file attachment right at the end of the course:
BUT - you then have to open this attachment and copy the URL of the file in the RISE server and then insert that link in the JavaScript code triggered by the download button.
There are other ways of doing this and hiding the attachment or putting it somewhere else completely - but that is how it is done in the example.
Hope that answers the right question?
- norkao-alcocerCommunity Member
Wow, this is great guys. Thanks for sharing, although unsure how to implement with such a little time. Up for Rise text entry functionality being developed ASAP!
- MatBeecher-7731Community Member
+1 for this feature. We need learners to have the ability to enter freeform text to make our courses 'useful' as we are trying to assess critical thinking, not simply quiz 'level' of thinking.
Hi Mat!
Thanks for the feedback on the type of functionality you'd like to see in Rise 360!
I've included you in the feature report and will update this discussion as soon as we have news to share. If you'd like to stay up to date, you can bookmark our Feature Roadmap.
Have a great rest of your week!
- JohnCooper-be3cCommunity Member
OK - for Rachelle, Stefan, Angela, Erik and Digital Learning, and anyone else who is interested in registering. I will schedule a virtual 'live' session - FREE of charge. (although there is a space to donate the cost of a coffee on my website if you find the workshop useful!).
I'm looking at two weeks away - How about Tuesday 26th March??? - If enough people are interested I will run the session twice at 08:00 UK time (to catch those East of the Greenwich line and 15:30 UK time for those out West). (Numbers will be limited in case I get inundated).
I asked Chat GPT to create a short course which is now converted to RISE and is called "Pathways to Environmental Conservation". The course has four separate points at which the learner is asked to 'reflect' on a key issue and write their own notes like this:
In the workshop we will:
STEP 1 - convert the entire course content to a pdf course workbook and convert this workbook to a 'pdf form' with defined spaces where the learner's own notes will fit.
STEP 2 - we will replace the four 'Reflection' blocks in RISE (like the one above) with identical Storyline blocks that allow the learner to type their response into a text entry field. We will add JavaScript code to take the text entered and store it in local browser memory.
STEP 3 - we will then add a Storyline block at the end of the course and add JavaScript that will retrieve the user text notes from local memory, open the course notes pdf form, fill in the learner's own notes section, and then offer the completed pdf for download.
STEP 4 - we will demonstrate publishing the course to (a) an HTML5 page on a website and (b) as a SCORM zip file loaded to an LMS (probably I will demonstrate on Moodle). (This will deal with how to load the blank pdf form and how to call the JavaSCript libraries needed WITHOUT having to modify any HTML code).
That's it - plus Q&A and a brief discussion of how you would take the learner's input and send it via an xAPI call (but I won't be demonstrating that) and maybe how you could email the pdf to the course leader...
How does that sound???
You won't need JavaScript knowledge - the code will be provided and is easy to follow - you will just have to know how to create an 'Execute JavaScript' trigger.
If this is OK, I will post details of how to register for the FREE workshop on this thread...
- RachelleTullochCommunity Member
Hi John
You are AMAZEBALLS. Thank you so much and sign me up for the 8:00 am UK time as that will be 7:00 pm in Sydney, Australia. And I will donate more than a cup of coffee for you. :)
This is so very awesome and very generous of you. Thank you for making my Monday fab!
- DeanBijisCommunity Member
Hi John, thanks for this! Sign me up for 08:00 UK time. Cheers!
- StefanLindstrmCommunity Member
Hi John
That was generous of you. I am happy to participate at 08.00.
- mitchhorn-5ccb3Community Member
I came across a plugin for Rise called Mighty! which has added a text entry field block to Rise.
https://mighty.maestrolearning.com/home
Much easier than having to go and mess around with code after publishing
See screenshot below- JohnCooper-be3cCommunity Member
Hi Mitch - looks very promising - I will definitely check it out. Thanks for posting. (Bit expensive though at $47 per month!).
Just a small correction though, you don't have to make any changes to the code after publishing with the solution I use. The JavaScript library used is loaded dynamically at run time. You just need to be able to read the pdf course notes template from somewhere to create your course handout with the learner notes in it. But you could put that anywhere you like.
You can also change the template (and hence the content of the handout) without making changes to the published course code. You only have to re-publish if you add more fields for notes to the handout.
Actually, I've just realised that's a fairly simple enhancement to allow extra fields in case of expansion, or even read the number of fields in the document at run time! Maybe I will try that.
Best regards
John
- JohnPinkster-19Community Member
FYI The Mighty solution will also report learners answers to the LMS if you output to Scorm2004! It is being captured as a runtime interaction.
- PaulaBurleyCommunity Member
Free Form Text Entry fields are what's keeping us from using this platform. We need student responses that others can review in real time. Not quizzing responses. Open Text fields that stay in the lesson item please.
Hello Paula! I understand you are looking for text entry fields that you can view student responses in real-time.
We don't currently offer this feature in Rise. However, we are tracking requests for Freeform questions or text entry fields. I can add you to the list so that you'll get notified if this feature gets released or if we make any changes that will help.
Thanks for letting us know you need this feature.
- DorisSchibli-f0Community Member
Hi Angelo, we are very interested in such a text entry field feature in Rise, too. Could you add us to the list? We'd love to be notified if this feature gets released. Thank you very much!